Y29tbWl0IGY0MzE3ZWE5MTk0MmY0NGNjMWM0MzMyNzc5MjdiNjE2MThlOWIwYTUKQXV0aG9yOiBEYW5pZWwgTWFjayA8ZGFuaWVsQGNhaWFxLmRlPgpEYXRlOglUdWUgTWF5IDUgMTI6NDg6MjkgMjAwOSArMDIwMAoKICAgIEFSTTogZml4IFBYQSBidWlsZCBieSBkZWZpbmluZyBVUDJPQ1IKCiAgICBVLUJvb3QgZG9lcyBub3QgY3VycmVudGx5IGJ1aWxkIGZvciBQWEEgcGxhdGZvcm1zIHdpdGggVVNCIHN1cHBvcnQKICAgIGVuYWJsZWQ6CgogICAgdXNiLmM6NDY6IGVycm9yOiAnVVAyT0NSJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgTWFjayA8ZGFuaWVsQGNhaWFxLmRlPgogICAgQ2M6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CgogICAgRWRpdGVkIGNvbW1pdCBtZXNzYWdlLgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMjZhZDBlYWJkMTBhOGNkYTUxOTIwZmJjZmU0ZGE1YjRjY2YwYzk4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE1heSAxNSAyMjozMjo1NyAyMDA5ICswMjAwCgogICAgTWlub3IgQ29kaW5nIFN0eWxlIGZpeDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFmNzVhNDVkMjNiNzJhNTlhYzVjYzA0Mjc2OTZjN2Y2MzRmZGM5NGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDE1IDA5OjI3OjU4IDIwMDkgKzAyMDAKCiAgICBJREU6IGJhaWwgb3V0IG9mIGRldl9wcmludCgpIGZvciB1bmtub3duIGRldmljZSB0eXBlcwoKICAgIENvbW1pdCA1NzRiMzE5NTEyIGludHJvZHVjZWQgYSBzdWJ0bGUgYnVnIGJ5IG1peGluZyBhIGxpc3Qgb2YgdGVzdHMKICAgIGZvciAiZGV2X2Rlc2MtPnR5cGUiIGFuZCAiZGV2X2Rlc2MtPmlmX3R5cGUiIGludG8gb25lIHN3aXRjaCgpLCB3aGljaAogICAgdGhlbiBtb3N0bHkgZGlkIG5vdCB3b3JrIGJlY2F1c2UgImRldl9kZXNjLT50eXBlIiBjYW5ub3QgdGFrZSBhbnkKICAgICJJRl8qIiB0eXBlIHZhbHVlcy4gQSBsYXRlciBmaXggaW4gY29tbWl0IDhlYzZlMzMyZWEgY2hhbmdlZCB0aGUKICAgIHN3aXRjaCgpIGludG8gdGVzdGluZyAiZGV2X2Rlc2MtPmlmX3R5cGUiLCBidXQgYXQgdGhpcyBwb2ludCB0aGUKICAgIGluaXRpYWwgdGVzdCBmb3IgdW5rbm93biBkZXZpY2UgdHlwZXMgd2FzIGNvbXBsZXRlbHkgbG9zdCwgd2hpY2gKICAgIHJlc3VsdGVkIGluIG91dHB1dCBsaWtlIHRoYXQgZm9yIElERSBwb3J0cyB3aXRob3V0IGRldmljZSBhdHRhY2hlZDoKCiAgICAgIERldmljZSAxOiBNb2RlbDoJRmlybTogIFNlciM6CgkJVHlwZTogIyAxRiAjCgkJQ2FwYWNpdHk6IG5vdCBhdmFpbGFibGUKCiAgICBUaGlzIHBhdGNoIHJlLWludHJvZHVjZXMgdGhlIG1pc3NpbmcgdGVzdCBmb3IgdW5rbm93biBkZXZpY2UgdHlwZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIENjOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBDYzogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CiAgICBUZXN0ZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMjFmNjJkODQ4M2ZiYWI0NGNkOThkOTNmZjJlOTM1NWEzMzBkMjI1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDE0IDA3OjI1OjEzIDIwMDkgKzAyMDAKCiAgICA3NHh4Xzd4eDogRml4IHJvdW5kaW5nIHByb2JsZW0gaW4gQ1BVIGZyZXF1ZW5jeSBjYWxjdWxhdGlvbgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIGluIHRoZSBDUFUgZnJlcXVlbmN5IGNhbGN1bGF0aW9uLiBXaXRob3V0IGl0CiAgICBhIDc5OE1IeiBDUFUgaXMgZGlzcGxheWVkIGFzIDM2OC41MDMgTUh6LiBBbmQgd2l0aCBpdCBpdCdzIDc5OCBNSHouCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhZDhhMDUxN2I3MjQ3ODJhYjM2ZjJiNTU0YTk0ZGU0YzAwYzFhZGIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTWF5IDEzIDIyOjI0OjEyIDIwMDkgKzAyMDAKCiAgICBjb25zb2xlLmg6IHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlICdjb25zb2xlX3JlYWxsb2MnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4NGJmN2NhNTIyZTk0ZWM0MDJhMTI2NGIwMTk3MWI5MjRiN2UyNjhmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE1heSAxMyAyMjoxNjozMSAyMDA5ICswMjAwCgogICAgYXBpOiByZW1vdmUgdW4tbmVlZGVkIGlmZGVmIENPTkZJR19BUEkgYWxyZWFkeSBoYW5kbGUgYnkgdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3OTJhMDllYjlkNWQ4YzRmNzRiN2U5ZjJlODg3MzE2ZDUxMWE0ZTgwCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTMgMTA6NTQ6MTAgMjAwOSArMDIwMAoKICAgIEZpeCBlLW1haWwgYWRkcmVzcyBvZiBHYXJ5IEplbm5lam9obi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA1ZTJjMDhjM2FjOTA4MDhlOWJlNjQ4NTY5MTZiZmQ2ZGY5ODQ4MjNjCkF1dGhvcjogRW1pbCBNZWR2ZSA8RW1pbGlhbi5NZWR2ZUBGcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDEyIDEzOjQ4OjMyIDIwMDkgLTA1MDAKCiAgICBSZW1vdmUgaW5saW5lIHF1YWxpZmllciBmcm9tIHNob3dfYm9vdF9wcm9ncmVzcygpCgogICAgVGhlICdpbmxpbmUnIGlzIGNvbmZsaWN0aW5nIHdpdGggdGhlIHNlbWFudGljIG9mICd3ZWFrJyBhdHRyaWJ1dGUgYW5kIHdpdGggdGhlCiAgICB3YXkgdGhlIHNob3dfYm9vdF9wcm9ncmVzcygpIGZ1bmN0aW9uIGlzIHVzZWQuCgogICAgQWxzbyBnY2MgNC40IGlzIGNvbXBsYWluaW5nIGFib3V0IGl0OgoKICAgIG1haW4uYzo1MTogZXJyb3I6IGlubGluZSBmdW5jdGlvbiAnc2hvd19ib290X3Byb2dyZXNzJyBjYW5ub3QgYmUgZGVjbGFyZWQgd2VhawoKICAgIFNpZ25lZC1vZmYtYnk6IEVtaWwgTWVkdmUgPEVtaWxpYW4uTWVkdmVARnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZTZkYTQ4MzczMDhhYTMzZDUzN2FjM2U3ZjM2YzJkNjZlM2Q5YTM2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAxMiAxNToxNzozNSAyMDA5ICswMjAwCgogICAgTVBDODI2MDogZml4dXAgZGV2aWNlIHRyZWUgYnkgcHJvcGVydHkgaW5zdGVhZCBvZiBwYXRoCgogICAgY3B1L21wYzgyNjAvY3B1LmMgdXNlZCB0byB1c2UgZG9fZml4dXBfYnlfcGF0aF91MzIoKSB0byB1cGRhdGUgdGhlCiAgICBjbG9jayBmcmVxdWVuY2llcyBpbiB0aGUgZGV2aWNlIHRyZWUsIHVzaW5nIGEgQ1BVIHBhdGgKICAgICIvY3B1cy9PRl9DUFUiLCB3aXRoIE9GX0NQVSBiZWluZCBkZWZpbmVkIGluIHRoZSBib2FyZCBjb25maWcgZmlsZS4KCiAgICBIb3dldmVyLCB0aGlzIGRvZXMgbm90IHdvcmsgd2hlbiBvbmUgYm9hcmQgY29uZmlnIGZpbGUgKGhlcmU6CiAgICBNUEM4MjYwQURTLmgpIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHNldmVyYWwgZGlmZnJlbnQgQ1BVcyBhbmQKICAgIHRoZXJlZm9yIGNvbnRhaW5zIGEgZ2VuZXJpYyBkZWZpbml0aW9uIGxpa2UgImNwdUAwIiwgYXMgdGhlIGRldmljZQogICAgdHJlZXMgdGhhdCB3aWxsIHRoZW4gYmUgbG9hZGVkIHdpbGwgY29udGFpbiBzcGVjaWZpYyBuYW1lcyBsaWtlCiAgICAiUG93ZXJQQyw4MjcyQDAiLgoKICAgIFdlIHN3aXRjaCB0byB1c2luZyBkb19maXh1cF9ieV9wcm9wX3UzMigpIGluc3RlYWQsIHNvIHdlIGNhbiBzZWFyY2gKICAgIGZvciBkZXZpY2VfdHlwZT0iY3B1IiwgYXMgaXQgaXMgZG9uZSBpbiBvdGhlciBhcmNoaXRlY3R1cmVzLCB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIENjOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFRlc3RlZC1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMTJhNjc1MzE1NTcxNmU1YzNjMTgxYThmNDBlOGIyZDNkNjY5YWVmZApBdXRob3I6IFJvaGl0IEhhZ2FyZ3VuZGdpIDxoLnJvaGl0QHNhbXN1bmcuY29tPgpEYXRlOglNb24gTWFyIDkgMTk6NDU6NDYgMjAwOSArMDUzMAoKICAgIEZpeCBPbmVOQU5EIGlwbCB0byByZWFkIENPTkZJR19TWVNfTU9OSVRPUl9MRU4KCiAgICBBZGQgQ09ORklHX1NZU19NT05JVE9SX0xFTiBtYWNybyB0byBhcG9sbG9uIGJvYXJkIGNvbmZpZy4KICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gZGVmaW5lcyB0aGUgVS1Cb290IGltYWdlIHNpemUuCiAgICBhbmQgaXMgdXNlZCBieSBPbmVOQU5EIGlwbCB3aGVuIHJlYWRpbmcgVS1Cb290IGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvaGl0IEhhZ2FyZ3VuZGdpIDxoLnJvaGl0IGF0IHNhbXN1bmcuY29tPgogICAgQWNrZWQtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYzQwNGNjNTg4NGIwYzgyZmQ4MmQ3NTFkYmQ4ZThiM2Y4OTE5YTIzYQpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVR1ZSBBcHIgMjggMTc6MDQ6NTEgMjAwOSAtMDcwMAoKICAgIFNjaGVkdWxlIHJlbW92YWwgb2Ygbm9uLUNPTkZJR19ORVRfTVVMVEkgbmV0IGRyaXZlciBBUEkKCiAgICBUaGlzIHdpbGwgbWFrZSBDT05GSUdfTkVUX01VTFRJIHRoZSBvbmx5IG5ldCBkcml2ZXIgY29uZmlndXJhdGlvbiBhbmQKICAgIHdlJ2xsIGJlIGFibGUgdG8gcmVtb3ZlIHRoaXMgb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNjBiYmNmMGNjNmU1NTA5NWRkMTg2ZTU5YTU1N2Q1ODRiOWI1NmViMQpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDUgMTY6MDQ6MDYgMjAwOSArMDIwMAoKICAgIHBvd2VycGMvaW5rYTR4MDogUmVtb3ZlIGxlZnQtb3ZlciBpZGUgcmVzZXQgY29kZS4KCiAgICBUaGUgcGluIHdoaWNoIHdhcyB1c2VkIGluIHByZWxpbWluYXJ5IHZlcnNpb25zIG9mIHRoZSBib2FyZCBmb3IgaWRlCiAgICByZXNldCBpcyByZWFsbHkgY29ubmVjdGVkIHRvIHRoZSBydGMgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZjU3OGEyZGE2NzcwOTUxMjM5YWQ5MWVlOWExODc1ZmRjNzFkYmU0OApBdXRob3I6IE1hcmNvIFN0b3JuZWxsaSA8bWFyY28uc3Rvcm5lbGxpQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEFwciAyOCAxOTowNDowMiAyMDA5ICswMjAwCgogICAgQWRkIGltbHMgdXRpbGl0eSBjb21tYW5kCgogICAgVGhpcyBwYXRjaCBhZGRzLCB1bmRlciB0b29scyBmb2xkZXIsIGEgbmV3IGNvbW1hbmQgY2FsbGVkIGltbHMuIEl0cwogICAgZ29hbCBpcyB0aGUgc2FtZSBvZiBVQm9vdCdzIGltbHMgYnV0IGl0IGNhbiBiZSB1c2VkIGFzIExpbnV4IHNoZWxsCiAgICBjb21tYW5kLiBJdCByZWFkcyBmcm9tIHJhdyBtdGQgcGFydGl0aW9uIGFuZCBwcmludHMgdGhlIGxpc3Qgb2YgdGhlCiAgICBzdG9yZWQgaW1hZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNvIFN0b3JuZWxsaSA8bWFyY28uc3Rvcm5lbGxpQGdtYWlsLmNvbT4KCmNvbW1pdCBkYTk1NDI3Y2U0MzE5MDg3MTRhZTVlOWY2NjNlZTZlMmJjM2JjYzMzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjggMDg6MzY6MTEgMjAwOSArMDIwMAoKICAgIG5ldGxvb3A6IHVwZGF0ZXMgZm9yIE5ldExvb3AKCiAgICBGaXggc29tZSBpc3N1ZXMgaW50cm9kdWNlZCBmcm9tIGNvbW1pdDoKICAgIDJmNzBjNDllNWI5ODEzNjM1YWQ3MzY2NmFhMzBmMzA0YzdmZGVkYTkKICAgIHN1Z2dlc3RlZCBieSBNaWtlIEZyeXNpbmdlci4KCiAgICAtIGFkZGVkIHNvbWUgY29tbWVudCBmb3IgdGhlIGVudl9pZCB2YXJpYWJsZSBpbiBjb21tb25fY21kX252ZWRpdC5jCiAgICAtIG1vdmVkIHNvbWUgdmFyaWFibGVzIGluIGZuIHNjb3BlIGluc3RlYWQgb2YgZmlsZSBzY29wZQogICAgLSBOZXRJbml0TG9vcCBub3cgc3RhdGljIHZvaWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNjMWQ4OTU0NWRlMTE4MjJmOGI1YWZiNTY0NmE1Nzc1NzYyMGJkOTUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOCAwNzo0ODozOSAyMDA5ICswMjAwCgogICAgODJ4eCwgaWRzODI0NzogYWRkZWQgaWRzODI0NyBib2FyZCB0byBNQUtFQUxMIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDg5MGEwMTdhOGE5OTVjOTIxZDFlODg5ZDM2MGU4ZDY1MzhjZWVjZmUKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA3IDEzOjA4OjU1IDIwMDkgKzAyMDAKCiAgICBhcm0vaW14MzFfcGh5Y29yZTogRml4IGJpX2FyY2hfbnVtYmVyCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CiAgICBDYzogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgoKY29tbWl0IGVlNDdiZmFiZWZlYjI1YmRmYzgzZjQ5ZWYzYmFlMGYzMjVkM2U2OWUKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CUZyaSBNYXkgMTUgMTA6MjE6MzMgMjAwOSArMDIwMAoKICAgIHJlbW92ZSBteXNlbGYgYXMgcGh5Y29yZS9saXRla2l0IE1haW50YWluZXIKCiAgICBJIG5ldmVyIGFja2VkIGEgcGF0Y2ggdGhhdCBhZGRzIG1lIGFzIHBoeWNvcmUgaS5NWDMxIG1haW50YWluZXIgbm9yIHdhcwogICAgaXQgbWUgd2hvIHB1c2hlZCB0aGUgcGF0Y2hlcywgc28gcmVtb3ZlIG15c2VsZiBmcm9tIHRoZSBtYWludGFpbmVyIGxpc3QKICAgIHNvIHRoYXQgb3RoZXIgcGVvcGxlIGRvIG5vdCBsb25nZXIgd2FpdCBmb3IgbXkgYWNrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KCmNvbW1pdCBjNjMyNTRlZjU2MjhlZmUxYzc3Y2IyZmRiYTIwNzUzZjk2NjZmNTVkCkF1dGhvcjogU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+CkRhdGU6CVR1ZSBNYXkgMTIgMTI6MjU6MTQgMjAwOSArMDQwMAoKICAgIEFGRUI5MjYwIG5ldHdvcmsgZml4CgogICAgQUZFQjkyNjAgdXNlcyBQQTEwLCBQQTExIGZvciBFVFgyIGFuZCBFVFgzLgogICAgQWxzbywgZHVlIHRvIGV4dGFybmFsIHB1bGwtdXAgb24gSVJRIGxpbmUsIE1pY3JlbCBQSFkgSUQgaXMgMSBhZnRlciByZXNldCBzZXF1ZW5jZSwKICAgIG5vdCAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBMYXBpbiA8c2xhcGluQG9zc2ZhbnMub3JnPgoKY29tbWl0IGY4ZGRjZDU4MjIxY2FiNjNkZDI1YzIzMjRkZDIwMzI0ODdmNzQ4YjEKQXV0aG9yOiBHcmFmIFlhbmcgPGdyYWYueWFuZ0BhbmFsb2cuY29tPgpEYXRlOglUdWUgTWF5IDUgMDI6MjY6MjcgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUxOGYtZXpicmQ6IHJlc2V0IGV0aGVybmV0IFBIWSBkdXJpbmcgaW5pdAoKICAgIFdlIGRvbid0IGtub3cgd2hhdCBzdGF0ZSB0aGUgZXRoZXJuZXQgUEhZIGlzIGluIHdoZW4gc3RhcnRpbmcgdXAsIHNvIG1ha2UKICAgIHN1cmUgd2Ugc2V0IGl0IHRvIGEgc2FuZSBzdGF0ZS4gIFRoaXMgZml4ZXMgdHJvdWJsZXMgc2VlbiB3aGVuIExpbnV4IGJvb3RzCiAgICB1cCwgY29uZmlndXJlcyB0aGUgUEhZIGlzIGEgbm9uLWRlZmF1bHQgc3RhdGUsIGFuZCB0aGVuIHRoZSBzeXN0ZW0gcmVib290cwogICAgaW50byBVLUJvb3Qgd2hpY2ggcHJldmlvdXNseSBleHBlY3RlZCBhIHJlc2V0IHN0YXRlIG9ubHkuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZiBZYW5nIDxncmFmLnlhbmdAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1MzMxMGI4OGVhYTI3ZmI1Y2I4MzE0NGQwYjIyMzg5MTkwYWQ4N2ExCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgTWF5IDUgMDE6MzU6NDEgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUyNy1lemtpdDogZml4IFNQSSBmbGFzaCBlbnYgcGFyYW1zCgogICAgVGhlIEJGNTI3LUVaS0lUIHNldHRpbmdzIGZvciBzdG9yaW5nIHRoZSBlbnZpcm9ubWVudCBpbiBTUEkgZmxhc2ggd2Fzbid0CiAgICB1c2luZyB0aGUgY29ycmVjdCBzZWN0b3Igc2V0dGluZ3MgZm9yIHRoZSBTUEkgZmxhc2ggcGFydCB0aGF0IGlzIGFjdHVhbGx5CiAgICBvbiB0aGUgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGY1OGJmODA0YTE0MzI0YzZjOTE4NmE3YTY2NGZhMjMyODE3ODBlOGIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBBcHIgMjQgMjM6NTQ6MTkgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBhdm9pZCBnZXRfc2NsaygpIHdpdGggZWFybHkgc2VyaWFsIGRlYnVnCgogICAgV2hlbiB0aGUgY2xvY2sgZnVuY3Rpb25zIHdlcmUgY2hhbmdlZCB0byB1c2UgY2FjaGVkIHZhbHVlcyAoYW5kIHRoZXJlYnkKICAgIGF2b2lkaW5nIGV4cGVuc2l2ZSBtYXRoIGZ1bmN0aW9ucyksIGVhcmx5IHNlcmlhbCBkZWJ1ZyBicm9rZSBiZWNhdXNlIHRoZQogICAgYmF1ZCBwcm9ncmFtbWluZyBpcyBjYWxsZWQgYmVmb3JlIGV4dGVybmFsIG1lbW9yeSBpcyBhdmFpbGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDAyNzc4ZjJmMWI0YjFhMjhiNDkyMzY3NDc3ZGIyN2M1OGQ0NWFlMzUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBBcHIgMjQgMjM6Mzk6NDEgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggYm9vdGluZyB3aXRoIG9sZGVyIGJvb3Ryb21zIChubyBFVlQxKQoKICAgIFdoZW4gZHJvcHBpbmcganVtcCBibG9jayBzdXBwb3J0LCB0aGUgYXNzdW1wdGlvbiB3YXMgdGhhdCBhbGwgYm9vdHJvbXMKICAgIHN1cHBvcnRlZCBlbnRyeSBwb2ludCByZWRpcmVjdGlvbiB2aWEgdGhlIEVWVDEgcmVnaXN0ZXIuICBVbmZvcnR1bmF0ZWx5LAogICAgdGhpcyB0dXJuZWQgb3V0IHRvIGJlIGluY29ycmVjdCBmb3IgdGhlIG9sZGVzdCBCbGFja2ZpbiBwYXJ0cyAoQkY1MzMtMC4yCiAgICBhbmQgb2xkZXIgYW5kIEJGNTYxKS4gIE5vIG9uZSByZWFsbHkgbm90aWNlZCBlYXJsaWVyIGJlY2F1c2UgdGhlc2UgcGFydHMKICAgIHVzdWFsbHkgYXJlIGJvb3RlZCBieSBieXBhc3NpbmcgdGhlIGJvb3Ryb20gZW50aXJlbHksIGFuZCBvbGRlciBCRjUzMwogICAgcGFydHMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgYWxsICh0b28gbWFueSBhbm9tYWxpZXMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhZjJjMzczNzhmMjAzODU3ZDVlNmM5NTdlNzdhMTRjMmRhNWI1OWQyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgQXByIDI0IDIzOjIyOjQ4IDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogcmVjdXJzZSB3aXRoIGVhcmx5IHNlcmlhbCBpbml0Y29kZQoKICAgIE1ha2Ugc3VyZSB3ZSByZWN1cnNlIHRocm91Z2ggc2VyaWFsX3B1dGMoKSByYXRoZXIgdGhhbiBiYW5nIG9uIHRoZSBVQVJUCiAgICB0cmFuc21pdCByZWdpc3RlciBkaXJlY3RseSB0byBhdm9pZCBoYXJkd2FyZSBvdmVyZmxvd3Mgd2hlbiB1c2luZyBcbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmI4ZWRmZGUyMmFjYzU3NGI1NTMyZTlmMDg2ZTZhNzI4N2E5YmM3OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMSAyMTo1OToxMiAyMDA5ICswMjAwCgogICAgUHJlcGFyZSB2MjAwOS4wNi1yYzEKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmIyYmViNTYyNmExNDNjYTUzNDdlN2QyYzYwMDViZTk5MzZjMWZiYgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBNYXkgMSAxNTozODowNiAyMDA5ICswMjAwCgogICAgYXQ5MTogcmVtb3ZlIGxvd2xldmVsX2luaXQuUwoKICAgIGxvd2xldmVsX2luaXQuUyBpcyBub3QgdXNlZCBhbnkgbW9yZSBzbyByZW1vdmUgaXQuCiAgICBBcyBjb25zZXF1ZW5jZSwgd2UgYWxzbyBkb24ndCBoYXZlIHRvIGdlbmVyYXRlIHUtYm9vdC5sZHMKICAgIGJ1dCBjYW4gdXNlIGEgc3RhdGljIHZlcnNpb24gYXMgYmVmb3JlLgoKICAgIFRoaXMgYWxzbyBmaXhlcyB0aGUgb3V0LW9mLXRyZWUgYnVpbGQgcHJvYmxlbSBpbnRyb2R1Y2VkCiAgICB3aXRoIGNvbW1pdCBmMGEyYzdiNCAiYXQ5MTogYWRkIHN1cHBvcnQgZm9yIHRoZSBQTTkyNjMgYm9hcmQiCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGVlN2EzMTA0Nzk2NDBlZjE3Y2UyZmMwZjZjMTNjZjc5NjFkMjMzMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMSAwMDoxNjoxMSAyMDA5ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRzsgbWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkM2E1MTNjMjNiYTQxMDBkNjk4MzE2MWNkYzFmNzQ3ZGZkMDg3YmJkCkF1dGhvcjogTWFuaWthbmRhbiBQaWxsYWkgPG1hbmkucGlsbGFpQHRpLmNvbT4KRGF0ZToJVHVlIEFwciAyMSAxNzoyOTowNSAyMDA5ICswMjAwCgogICAgT01BUDM6IEZpeCB0aW1lciBoYW5kbGluZyB0byAxbXMgYW5kIENPTkZJR19TWVNfSFogdG8gMTAwMAoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYW5pa2FuZGFuIFBpbGxhaSA8bWFuaS5waWxsYWlAdGkuY29tPgoKY29tbWl0IGFjOTE0MDAzN2E4NDYyOWM1NTgzMDY2ZmYxYTE3NzM5NmM0N2Q4OWQKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglGcmkgQXByIDE3IDE0OjI3OjU2IDIwMDkgKzAyMDAKCiAgICBPTUFQMzogQmVhZ2xlOiBTZXQgcGlubXV4IGNvbmRpdGlvbmFsbHkgZm9yIFJldiBDIGJvYXJkcwoKICAgIFRoZSBCZWFnbGUgUmV2IEMgYm9hcmRzIHB1bGwgVUFSVDIgZnJvbSBhbiBhbHRlcm5hdGUgc2V0IG9mIGJhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlIFNha29tYW4gPHN0ZXZlQHNha29tYW4uY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCBjMWEwZmQ1ZjI4NjRlOWQzODFmNGEzZGM5NDg5NDJjYWM5NzRlODlhCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CU1vbiBBcHIgMjcgMTg6MzM6MzMgMjAwOSArMDIwMAoKICAgIHViaWZzOiBCVUc6IEJsb2NrcyBjb21tcHJlc3NlZCB3aXRoIHpsaWIKCiAgICBCbG9ja3MgY29tcHJlc3NlZCB3aXRoIHpsaWIgZG9udCBoYXZlIHRoZSBmdWxsIGd6aXAgaGVhZGVyLgoKICAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgYmxvY2sgY29tcHJlc3NlZCB3aXRoIHpsaWIgY2Fubm90IGJlIHJlYWRlZCEKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KCmNvbW1pdCAzNWY2YTk0M2Y3ZDkyMTQ1ZDYwN2MxZDU1ZjVjMmUyZWFlNWJlNjMwCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CU1vbiBBcHIgMjcgMTg6MzM6MzIgMjAwOSArMDIwMAoKICAgIGxpYl9nZW5lcmljOiBndW56aXA6IE5ldyBmdW5jdGlvbiB6dW56aXAKCiAgICBTZXBhcmF0ZSBndW56aXAgaW4KCiAgICBndW56aXA6IEZpbmQgdGhlIGVuZCBvZiB0aGUgaGVhZGVyIGFuZCBjYWxsIHp1bnppcC4KICAgIHp1bnppcDogSW5mbGF0ZSBndW56aXAgYmxvY2sgd2l0aG91dCBoZWFkZXIuCgogICAgVUJJIGZzIGJsb2NrcyBjYW4gYmUgY29tcHJlc2VkIGluIGx6bywgemxpYiBvciBuby1jb21wcmVzc2lvbi4gVGhlCiAgICBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIHUtYm9vdCBzdXBwb3J0ZWQgYWxsIHRoZSBjb21wcmVzc2lvbnMgYnV0CiAgICB0aGVyZSB3YXMgYSBidWcgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSB6bGliIGJsb2Nrcy4KCiAgICBVQklGUydzIFpsaWIgYmxvY2tzIGRvIG5vdCBoYXZlIGhlYWRlciBidXQgdGhleSB3ZXJlIGNvbXByZXNzZWQgdXNpbmcKICAgIGd1bnppcCwgYSBmdW5jdGlvbiB1c2VkIHRvIGRlY29tcHJlc3MgZ3VuemlwIGZpbGVzL3NlY3RvcnMgd2l0aCBhCiAgICBoZWFkZXIuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIHp1bnppcCB0aGF0IHVuY29tcHJlc3MgYSB6bGliIGJsb2NrIHdpdGgKICAgIG5vIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KCmNvbW1pdCBhMWU1ZjkzMTg1ZDBkODVhNGIzZmFkM2I2Yzc0M2NkZGNkMzczYjBjCkF1dGhvcjogRGFuaWVsIEdvcnN1bG93c2tpIDxEYW5pZWwuR29yc3Vsb3dza2lAZXNkLmV1PgpEYXRlOglUaHUgQXByIDIzIDE1OjM3OjE2IDIwMDkgKzAyMDAKCiAgICBhdDkxOiBmaXhlZCBwbGxhIGNhbGMgd2hlbiBubyBVU0Igc3VwcG9ydCBpcyBhY3RpdmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgR29yc3Vsb3dza2kgPERhbmllbC5Hb3JzdWxvd3NraUBlc2QuZXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM3OTFhMTE4N2MxNDAxYzMzYzk1MTI1OTVlNmU4OWRiYjQ2MjMwYzUKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CVdlZCBBcHIgMjIgMDE6MTI6MDQgMjAwOSArMDIwMAoKICAgIGFybTkyNXQ6IEZpeCBDT05GSUdfU1lTX0haIHRvIDEwMDAKCiAgICBMZXQgQ09ORklHX1NZU19IWiB0byBoYXZlIHZhbHVlIG9mIDEwMDAgZWZmZWN0aXZlbHkgZml4aW5nIGFsbCB1c2VycyBvZgogICAgZ2V0X3RpbWVyLgoKICAgIENoYW5nZXMgc2luY2Ugb3JpZ2luYWwgdmVyc2lvbjoKICAgICogU2V0IFBUVj0yIChkaXZpc29yIDgpIGZvciBib2FyZHMgdXNpbmcgMTJNSHogdGltZXIgY2xvY2sgc291cmNlIHRvCiAgICAgIGltcHJvdmUgdGltZXIgcmVzb2x1dGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgNDJiZjRiMjI0ODE0NmFiZGM1OTJiZGUwMDA5YzZlYTQyMDY3ZjQzNwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVR1ZSBBcHIgMTQgMjA6MTU6MTcgMjAwOSArMDIwMAoKICAgIE9NQVAzOiBSZW1vdmUgbGVnYWN5IE5BTkQgZGVmaW5lcwoKICAgIFJlbW92ZSByZW1haW5pbmcgbGVnYWN5IE5BTkQgZGVmaW5lcyBmb3IgQmVhZ2xlLCBFVk0sIE92ZXJvIGFuZCBQYW5kb3JhLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgY2JhMGI3NzhkZDVmMWVhMzI5NTliNjgyNWM3ZjBhMzE1MDFhOTlkNQpBdXRob3I6IFNhbmplZXYgUHJlbWkgPHByZW1pQHRpLmNvbT4KRGF0ZToJTW9uIEFwciAyNyAyMToyNzo1NCAyMDA5ICswNTMwCgogICAgT01BUDM6IFByaW50IGNvcnJlY3Qgc2lsaWNvbiByZXZpc2lvbgoKICAgIFRoZSBmdW5jdGlvbiBkaXNwbGF5X2JvYXJkX2luZm8oKSBkaXNwbGF5cyBpbmNvcnJlY3QKICAgIHNpbGljb24gcmV2aXNpb24gLSBiYXNlZCBvbiB0aGUgcmV0dXJuIHZhbHVlIGZyb20KICAgIGZ1bmN0aW9uIGdldF9jcHVfcmV2KCkuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW5qZWV2IFByZW1pIDxwcmVtaUB0aS5jb20+Cgpjb21taXQgOTAwMDZlOWIzM2JjZGJmMjQxYjAyOTVkMTg2ZTM2MzQxMzc5MDdhOQpBdXRob3I6IFNhbmplZXYgUHJlbWkgPHByZW1pQHRpLmNvbT4KRGF0ZToJTW9uIEFwciAyNyAyMToyNzo0NCAyMDA5ICswNTMwCgogICAgT01BUDM6IFJlbW92ZSB1bnVzZWQgYm9hcmQtdHlwZXMKCiAgICBUaGUgYm9hcmQtdHlwZXMgZGVmaW5lZCBpbiBzdHJ1Y3Qgb21hcDNfc3lzaW5mbyBzZWVtIHRvIGJlCiAgICB1bnVzZWQuIFRoZSBmdW5jdGlvbiBkaXNwbGF5X2JvYXJkX2luZm8oKSBpcyBwYXNzZWQKICAgIGJvYXJkIHR5cGUgYXMgYW4gYXJndW1lbnQ7IHdoaWNoIGlzIGlnbm9yZWQuCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIGFsbCB1c2VzIG9mIGJvYXJkLXR5cGUsIHJlbGF0ZWQgZGVmaW5pdGlvbnMKICAgIGFuZCBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2FuamVldiBQcmVtaSA8cHJlbWlAdGkuY29tPgoKY29tbWl0IDZhNmI2MmUzYWE0YjM0MGM0ZjhmYzY3YjE0ODdkZGI1NDM2YzY4NGQKQXV0aG9yOiBTYW5qZWV2IFByZW1pIDxwcmVtaUB0aS5jb20+CkRhdGU6CU1vbiBBcHIgMjcgMjE6Mjc6MjcgMjAwOSArMDUzMAoKICAgIE9NQVAzOiBVc2UgZnVuY3Rpb25zIHByaW50X2NwdWluZm8oKSBhbmQgY2hlY2tib2FyZCgpCgogICAgVXNlIHRoZSBmdW5jdGlvbnMgcHJpbnRfY3B1aW5mbygpIGFuZCBjaGVja2JvYXJkKCkgdG8KICAgIGRpc3BsYXkgdGhlIGNwdSBhbmQgYm9hcmQgc3BlY2lmaWMgaW5mb3JtYXRpb24uCgogICAgVGhlc2UgZnVuY3Rpb25zIHJldXNlIGNvbnRlbnQgZnJvbSB0aGUgZXhpc3RpbmcgZnVuY3Rpb24KICAgIGRpc3BsYXlfYm9hcmRfaW5mbygpIC0gd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZC4KCiAgICBBbHNvLCB1cGRhdGVkIHRoZSBleGlzdGlnIE9NQVAzIGNvbmZpZ3VyYXRpb25zIHRvCiAgICBkZWZpbmU6CiAgICAgLSBDT05GSUdfRElTUExBWV9DUFVJTkZPCiAgICAgLSBDT05GSUdfRElTUExBWV9CT0FSRElORk8KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW5qZWV2IFByZW1pIDxwcmVtaUB0aS5jb20+Cgpjb21taXQgZjhlMmIzMTA3ZWUwMGYyNzgyZjhlYmY0N2UzZjA5Y2RhNGUyMzUzYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOCAxMToxNzozNyAyMDA5ICswMTAwCgogICAgTVREOiBDaGFuZ2UgY2ZpLW10ZCB0byBhY2NlcHQgbm9uLXVuaWZvcm0gc2VjdG9yIHNpemVzCgogICAgV2l0aCB0aGlzIHBhdGNoIG5vbi11bmlmb3JtIE5PUiBGTEFTSCBjaGlwcyAoY2hpcHMgd2l0aCBtdWx0aXBsZSBlcmFzZQogICAgcmVnaW9ucykgY2FuIGJlIGV4cG9ydGVkIHZpYSB0aGUgY2ZpLW10ZCBsYXllciBhbmQgdGhlcmVmb3IgdXNlZCBieSBVQkkuCiAgICBXZSBzZWxlY3QgdGhlIGxhcmdlc3Qgc2VjdG9yIHNpemUgYXMgZXJhc2VzaXplLiBUaGUgY2ZpIGRyaXZlciB3aWxsIG1ha2UKICAgIHN1cmUgdGhhdCB0aGUgc21hbGxlciBzZWN0b3JzIGFyZSBoYW5kbGVkIGNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2RjYmU2MjhkNjZiNjQ4ZTk1NGJjODE0N2Q0ZmFmZjI5ODMyMDZkOQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAyMyAxMjozNToyMiAyMDA5ICswMjAwCgogICAgdmlkZW86IGZpeCBidWcgaW4gY2ZiX2NvbnNvbGUuYyBjb2RlCgogICAgRml4IGJ1ZyBpbiBkcmF3aW5nIGxvbmcgdmVyc2lvbi9pbmZvIHN0cmluZ3M6CiAgICBVLUJvb3QgdmVyc2lvbiBzdHJpbmcgbGlrZQogICAgIlUtQm9vdCAyMDA5LjAzLTA1NjQ3LWc3YzUxZTA2IChBcHIgMjMgMjAwOSAtIDEyOjQwOjAwKSBNUEM4M1hYIgogICAgaXMgbG9uZyBhbmQgZG9lc24ndCB3cmFwIGFyb3VuZCBjb3JyZWN0bHkgd2hpbGUgZHJhd2luZwogICAgYmVzaWRlIHRoZSBsb2dvLiBTdWNoIGxvbmcgc3RyaW5ncyBwYXJ0aWFsbHkgb3ZlcndyaXRlCiAgICB0aGUgbG9nby4gVGhpcyBwYXRjaCBpcyBhbiBhdHRlbXB0IHRvIGZpeCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNGQ5ZWFiODliM2IyYzJlZDQzMmIxNGQzNTVhNTZmMjc0ZDhhYWM3NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjggMDg6NTA6MzEgMjAwOSArMDIwMAoKICAgIGNtZF9leHQyLmM6IGZpeCBjb21waWxlIHdhcm5pbmdzCgogICAgR2V0IHJpZCBvZiB0aGVzZSB3YXJuaW5nczoKCiAgICBjbWRfZXh0Mi5jOjI0Nzogd2FybmluZzogZm9ybWF0ICclbGQnIGV4cGVjdHMgdHlwZSAnbG9uZyBpbnQnLCBidXQgYXJndW1lbnQgMiBoYXMgdHlwZSAnaW50JwogICAgY21kX2V4dDIuYzoyNDg6IHdhcm5pbmc6IGZvcm1hdCAnJWxYJyBleHBlY3RzIHR5cGUgJ2xvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDMgaGFzIHR5cGUgJ2ludCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDI4YWZlMDE2MGY4N2ZmNzQ1NzQxNTBkNzAzMDU1YTk2NWY5MTQyMmEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyNyAxMDo0ODoyMCAyMDA5ICswMjAwCgogICAgaWRzODI0NzogUmVtb3ZlIGxlZ2FjeSBOQU5EIGRlZmluZXMKCiAgICBiZWNhdXNlIGxlZ2FjeSBOQU5EIHN1cHBvcnQgaXMgZGVwcmVjYXRlZCBjb252ZXJ0aW5nIHRvIGN1cnJlbnQKICAgIE5BTkQgaW50ZXJmYWNlLiAhVGhpcyBqdXN0IGNvbXBpbGUsIGJlY2F1c2UgSSBoYXZlIG5vIG1vcmUgdGhlCiAgICBoYXJkd2FyZSB0byB0ZXN0IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGRiZDMzNjE0NDA0YjY1YWE0NDFjNTYyMGMzZGJkNTYwYzQ0NjBjMDkKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJTW9uIEFwciAyNyAwOToxMzozMSAyMDA5ICswMjAwCgogICAgdWJpZnM6IEJVRyByZWFscGF0aCBzdHJpbmcgbXVzdCBiZSBlbmRlZCB3aXRoIE5VTEwKCiAgICBJZiB0aGUgbWVtb3J5IHVzZWQgdG8gY29weSB0aGUgbGlua19tYWtlIGlzICJkaXJ0eSIgdGhlIHN0cmluZyB3b250CiAgICBiZSBlbmRlZCB3aXRoIE5VTEwsIHRocm93aW5nIG91dCBtdWx0aXBsZSBtZW1vcnkgYnVncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjUzNTFhODc5M2M1MWYzNzg3ZWZiYmNmM2FhMWRmMGFkNTQzYzEyNwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBBcHIgMjQgMTU6NTk6NTYgMjAwOSAtMDUwMAoKICAgIGJtcF9sb2dvOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZnJlYWQoKQoKICAgIEFkZCBiYXNpYyBlcnJvciBoYW5kbGluZyB0byBmcmVhZCgpIGZ1bmN0aW9uIGNhbGxzLiAgVGhpcyBwcmV2ZW50cwogICAgY29tcGlsaWxhdGlvbiB3YXJuaW5ncyBzdWNoIGFzOgoKICAgIGJtcF9sb2dvLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CiAgICBibXBfbG9nby5jOjcxOiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUgb2Yg4oCYZnJlYWTigJksIGRlY2xhcmVkIHdpdGgKICAgIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQKICAgIC4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZWVhOGJlODZkMWMyYjU3MDY2MGQxZjZjNTUzODQ1ZTEzMTY0MjMxYQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBBcHIgMjQgMTU6NTk6NDYgMjAwOSAtMDUwMAoKICAgIG5jYjogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkKCiAgICBUaGlzIHByZXZlbnRzIHRoZSBjb21waWxhdGlvbiB3YXJuaW5nOgoKICAgIG5jYi5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CiAgICBuY2IuYzozMjogd2FybmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mIOKAmHdyaXRl4oCZLCBkZWNsYXJlZCB3aXRoCiAgICBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0CgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBkYmUyOWUzNmE0YzI3NzViNjliNWE2M2IwY2UyYmFjODljMDhlNjkxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDI0IDE1OjU5OjM1IDIwMDkgKzAyMDAKCiAgICBtdGQ6IG5hbmQvb25lbmFuZDogUmVnaXN0ZXIgbXRkIGRldmljZSB1cG9uIGRldmljZSBzY2FubmluZwoKICAgIFdpdGggdGhpcyBwYXRjaCB0aGUgTkFORCBhbmQgT25lTkFORCBkZXZpY2VzIGFyZSByZWdpc3RlcmVkIGluIHRoZSBNVEQKICAgIHN1YnN5c3RlbSBhbmQgY2FuIHRoZW4gYmUgcmVmZXJlbmNlZCBieSB0aGUgbXRkY29yZSBjb2RlIChlLmcuCiAgICBnZXRfbXRkX2RldmljZV9ubSgpKS4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBuZXcgInViaSBwYXJ0IiBjb21tYW5kCiAgICBzeW50YXggd2l0aG91dCB0aGUgZmxhc2ggdHlwZSBwYXJhbWV0ZXIgKG5vcnxuYW5kfG9uZW5hbmQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMGJiNjJkODVhMDg1MGRiYWQxZmRkMzQxMjMzNzg2ODYzNzNmMTY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDI0IDE1OjU4OjMzIDIwMDkgKzAyMDAKCiAgICBtdGQ6IG5hbmQ6IEluY2x1ZGUgbGludXgvbXRkL3BhcnRpdGlvbnMuaCBpbiBuYW5kX2Jhc2UuaAoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGlzIGNvbXBpbGF0aW9uIHdhcm5pbmcgd2hlbiBDT05GSUdfTVREX1BBUlRJVElPTlMgaXMKICAgIGRlZmluZWQ6CgogICAgbmFuZF9iYXNlLmM6IEluIGZ1bmN0aW9uICduYW5kX3JlbGVhc2UnOgogICAgbmFuZF9iYXNlLmM6MjkyMjogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2RlbF9tdGRfcGFydGl0aW9ucycKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmQ1NzllNTA2MDQxM2FmNWE3NDBjYjM5NmRjODdlMWZmMzFiZjVhOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyNCAyMDoyNDoxOSAyMDA5ICswMjAwCgogICAgdWJpOiBSZW1vdmUgZmxhc2ggc2VsZWN0aW9uIHBhcmFtZXRlciAobm9yfG5hbmR8b25lbmFuZCkgZnJvbSAidWJpIHBhcnQiCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBub3cgdW5uZWNlc3NhcnkgZmxhc2ggdHlwZSBwYXJhbWV0ZXIgZnJvbSB0aGUKICAgICJ1YmkgcGFydCIgY29tbWFuZC4gQ3VycmVudGx5IHRoZSB1c2VyIGhhcyB0byBkZWZpbmUgdGhlIHR5cGUgb2YgZmxhc2gKICAgIGhlIHdpbGwgYmUgdXNpbmcgVUJJIG9uLiBFeGFtcGxlOgoKICAgID0+IHViaSBwYXJ0IG5vciBwYXJ0aXRpb24xCgogICAgV2l0aCB0aGlzIHBhdGNoIHRoaXMgdHlwZSBwYXJhbWV0ZXIgaXMgbm90IG5lZWRlZCBhbnltb3JlLiBUaGUgdXNlciBjYW4KICAgIG5vdyBzZWxlY3QgdGhlIHBhcnRpdGlvbiBkaXJlY3RseSB3aXRob3V0IHRoZSBmbGFzaCB0eXBlIHBhcmFtdGVyLgogICAgRXhhbXBsZToKCiAgICA9PiB1YmkgcGFydCBwYXJ0aXRpb24xCgogICAgVGhpcyBicmVha3MgYmFja3dhcmQgY29tcGF0aWJpbGl0eSByaWdodCBub3cgYmVjYXVzZSBvZiB0aGUgY2hhbmdlIGluIHRoZQogICAgY29tbWFuZCBzeW50YXguIEJ1dCBVQkkgc3VwcG9ydCBpcyBzdGlsbCBxdWl0ZSBmcmVzaCBhbmQgdGhlIGFkdmFudGFnZSBvZgogICAgdGhpcyBuZXcgY29tbWFuZCBpcyBzeW50YXggYmlnIGVub3VnaCBmb3IgdGhpcyBjaGFuZ2UuIEFkZGl0aW9uYWxseSB0aGUKICAgIGNvZGUgaXMgbXVjaCBjbGVhbmVyIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBDQzogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAyOTRmMTBjYTllYTgyYTE1ZTEzNWRjYjBmYzY1ODM4MmFiMjA2OTQwCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMjMgMTM6MTQ6MjAgMjAwOSArMDIwMAoKICAgIG1pcHMvdmN0aDogVXNlIGdlbmVyaWMgMTY1NTAgdWFydCBkcml2ZXIKCiAgICBBcyB0aGUgY29tbW9uIGNvZGUgYWxzbyBoYW5kbGVzIGJhdWRyYXRlIHN3aXRjaGluZywgd2hpY2ggdGhlIGJvYXJkCiAgICBzcGVjaWZpYyB2Y3QuYyBkcml2ZXIgZGlkIG5vdCBzdXBwb3J0LCB0aGlzIGlzIG9uZSBvZiB0aGUgcmFyZQogICAgb2NjYXNzaW9ucyB3aGVyZSBkZWxldGluZyBjb2RlIGFjdHVhbGx5IGFkZHMgYSBmZWF0dXJlIDopCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAwYzhhODQ5MTZjNWRhY2NjZGM1YjI3YjYzZmM0NjNlOWYzYjA0ZjA3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglUdWUgQXByIDIxIDAyOjI2OjMxIDIwMDkgKzAyMDAKCiAgICBTZXBhcmF0ZSBtdGRwYXJ0cyBjb21tYW5kIGZyb20gamZmczIKCiAgICBPbiBUaHUsIE1hciAxOSwgMjAwOSBhdCAwMTozMDozNlBNICswMTAwLCBTdGVmYW4gUm9lc2Ugd3JvdGU6CiAgICA+IEN1cnJlbnRseSB0aGUgbXRkcGFydHMgY29tbWFuZHMgYXJlIGluY2x1ZGVkIGluIHRoZSBqZmZzMiBjb21tYW5kIHN1cHBvcnQuCiAgICA+IFRoaXMgZG9lc24ndCBtYWtlIHNlbnNlIGFueW1vcmUgc2luY2Ugb3RoZXIgY29tbWFuZHMgKGUuZy4gVUJJKSB1c2UgdGhpcwogICAgPiBpbmZyYXN0cnVjdHVyZSBhcyB3ZWxsIG5vdy4gVGhpcyBwYXRjaCBzZXBhcmF0ZXMgdGhlIG10ZHBhcnRzIGNvbW1hbmRzIGZyb20KICAgID4gdGhlIGpmZnMyIGNvbW1hbmRzIG1ha2luZyBpdCBwb3NzaWJsZSB0byBvbmx5IHNlbGVjdCBtdGRwYXJ0cyB3aGVuIG5vIEpGRlMyCiAgICA+IHN1cHBvcnQgaXMgbmVlZGVkLgoKICAgIE9uZSBtb3JlIGxlZnRvdmVyLi4uIExldCBuYm9vdCBjb21tYW5kIGtub3cgYWJvdXQgcGFydGl0aW9ucyBldmVuIGlmIEpGRlMyCiAgICBzdXBwb3J0IGlzIG5vdCBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjdjMmU1N2MwODc1MTM5ZGJmY2Q2ZjQxYzQzZTZhZDBjYjJlNDBjOQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBBcHIgMjAgMTE6MjI6MTMgMjAwOSAtMDUwMAoKICAgIGNtZF9pZGU6IFJlbW92ZSB1bnVzZWQgQW1pZ2FPbmVHM1NFIGNvZGUKCiAgICBUaGUgb3V0cHV0X2RhdGFfc2hvcnQoKSBhbmQgaW5wdXRfZGF0YV9zaG9ydCgpIGZ1bmN0aW9ucyBmb3IgdGhlCiAgICBBbWlnYU9uZUczU0UgYXJlIHVudXNlZCBhbmQgcmVzdWx0IGluIGNvbXBpbGVyIHdhcm5pbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgYzkzYzEwMmFjZTAwNzY0YTU2ZGJkZjc4YmFjMTM0YTIzOTA2NzIxZQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBBcHIgMjAgMTE6MjE6NDAgMjAwOSAtMDUwMAoKICAgIEFtaWdhT25lRzNTRTogRml4IENPTkZJR19DTURfQ09OU09MRSBkZWZpbml0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA1NGU4MjJmOTU5MGNjNmM3MDQxMWJkOGNhYmQ0MjIzNmUwN2EyYWE3CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIEFwciAyMCAxMTowOTowNSAyMDA5IC0wNTAwCgogICAgUmVwbGFjZSBfX2FzbSByZWZlcmVuY2VzIHdpdGggX19hc21fXwoKICAgIF9fYXNtX18gZm9sbG93cyBnY2MncyBkb2N1bWVudGVkIHN5bnRheCBhbmQgaXMgZ2VuZXJhbGx5IG1vcmUgY29tbW9uCiAgICB0aGFuIF9fYXNtLiAgVGhpcyBjaGFuZ2UgaXMgb25seSBhc3RoZXRpYyBhbmQgc2hvdWxkIG5vdCBhZmZlY3QKICAgIGZ1bmN0aW9uYWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBmOWExMDliM2FkYzVlODY0NzUzNTM1NzUwMGUyYTM4ZjA1NThiNWMyCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIEFwciAyMCAxMTowODo0NiAyMDA5IC0wNTAwCgogICAgUmVwbGFjZSBfX2F0dHJpYnV0ZSByZWZlcmVuY2VzIHdpdGggX19hdHRyaWJ1dGVfXwoKICAgIF9fYXR0cmlidXRlX18gZm9sbG93cyBnY2MncyBkb2N1bWVudGVkIHN5bnRheCBhbmQgaXMgZ2VuZXJhbGx5IG1vcmUKICAgIGNvbW1vbiB0aGFuIF9fYXR0cmlidXRlLiAgVGhpcyBjaGFuZ2UgaXMgb25seSBhc3RoZXRpYyBhbmQgc2hvdWxkIG5vdAogICAgYWZmZWN0IGZ1bmN0aW9uYWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCAwOGYwNzdkYTkyOThmZjY1Y2M2Zjg1ZjkwZDI3NzAwMDBhMWJlZWU5CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6CVRodSBBcHIgMTYgMTk6NTU6NDggMjAwOSAtMDcwMAoKICAgIG10ZHBhcnQgY29tbWFuZDogYWxpZ24gb3V0cHV0IGNvbHVtbnMKCiAgICBNYWtlIHRoZSBoZWFkZXJzIGluIHRoZSAibXRkcGFydHMiIGNvbW1hbmQgb3V0cHV0IGxpbmUgdXAKICAgIHdpdGggdGhlaXIgY29sdW1ucyAuLi4gc3RyaWtlIHRoZSBleHRyYSBUQUIgY2hhcmFjdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEJyb3duZWxsIDxkYnJvd25lbGxAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDA2ZjQxZjgyNWMyMzM0NGQ4ODlkNTQxOWJiNWVhZWNlYjNlZDJhMDIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVRodSBBcHIgMTYgMTA6NTE6MDMgMjAwOSArMDkwMAoKICAgIFJlbW92ZSBzYTExMDAuaAoKICAgIHNhMTEwMC5oIGlzIG5vdCB1c2VkIGFueXdoZXJlLCB0aGVuIHJlbW92ZSBpdC4KCiAgICAkIGZpbmQgLiAtbmFtZSAnKi5oJyAtZW1wdHkgLXByaW50CiAgICAuL2luY2x1ZGUvc2ExMTAwLmgKICAgICQgZ2l0IGdyZXAgJ3NhMTEwMC5oJyAuCiAgICAkCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2QzZDMwYjFiM2ZiZDBhMDdkYjI1NGVhZDk5ZmE2ZmZmNGY0ZDk5MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAxNCAxNzo1MToyMSAyMDA5ICswMjAwCgogICAgVUJJRlM6IFJlbW92ZSB0bmNfY29tbWl0LmMgd2hpY2ggaXMgbm90IHVzZWQgaW4gdGhlIHJlYWQtb25seSB2ZXJzaW9uCgogICAgSSBtaXNzZWQgcmVtb3ZpbmcgdGhpcyBmaWxlIHdoaWxlIGltcGxlbWVudGluZyB0aGUgVUJJRlMgc3VwcG9ydC4gSXQncwogICAgbm90IHJlZmVyZW5jZWQgYXQgYWxsLCBzbyBsZXQncyByZW1vdmUgaXQuIFRoYW5rcyB0byBBcnRlbSBCaXR5dXRza2l5CiAgICBmb3Igc3BvdHRpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzNTZkYWZmNzA4Njc4MjJiZGIyM2NlYTQ5Zjk4ZTY1NDIxYTI1YjgKQXV0aG9yOiBBZHJpYW4gSHVudGVyIDxhZHJpYW4uaHVudGVyQG5va2lhLmNvbT4KRGF0ZToJVHVlIEFwciAxNCAxNzo1MDozOCAyMDA5ICswMjAwCgogICAgVUJJRlM6IGZpeCByZWNvdmVyeSBidWcKCiAgICBVQklGUyBkaWQgbm90IHJlY292ZXJ5IGluIGEgc2l0dWF0aW9uIGluIHdoaWNoIGl0IGNvdWxkCiAgICBoYXZlLiBUaGUgcmVsZXZhbnQgZnVuY3Rpb24gYXNzdW1lZCB0aGVyZSBjb3VsZCBub3QgYmUKICAgIG1vcmUgbm9kZXMgaW4gYW4gZXJhc2VibG9jayBhZnRlciBhIGNvcnJ1cHRlZCBub2RlLCBidXQKICAgIGluIGZhY3QgdGhlIGxhc3QgKE5BTkQpIHBhZ2Ugd3JpdHRlbiBtaWdodCBjb250YWluIGFueXRoaW5nLgogICAgVGhlIGNvcnJlY3QgYXBwcm9hY2ggaXMgdG8gY2hlY2sgZm9yIGVtcHR5IHNwYWNlICgweEZGIGJ5dGVzKQogICAgZnJvbSB0aGVuIG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFkcmlhbiBIdW50ZXIgPGFkcmlhbi5odW50ZXJAbm9raWEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1MWY0MGNhZjJmNzgwNmIyY2VmYjkzZTA3N2VhNjE5YjlmNjg0ZTgKQXV0aG9yOiBHYW8gR3Vhbmh1YSA8QjIyODI2QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBcHIgMTQgMTQ6Mzc6MzUgMjAwOSArMDgwMAoKICAgIGZzOiBGaXggdGhlIHdyb25nIHR5cGUgb2YgdmFyCgogICAgVGhlIGZpbGVsZW4gc2hvdWxkIGJlIHNpZ25lZCB0eXBlLCBub3QgdW5zaWduZWQgdHlwZS4KICAgIG90aGVyd2lzZSwgVGhlIGNvbmRpdGlvbiBhcyBiZWxvdyBuZXZlciB0YWtlLgoJaWYgKGZpbGVsZW4gPCAwKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdhbyBHdWFuaHVhIDxCMjI4MjZAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDVmNDc0YzRkMDQ2OWJlYmMwYmIwNWRmNjBhMzlkYzdmZGYyOGU2MgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjggMDA6Mjk6MzQgMjAwOSArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFkNzRjYWU5ZmY4NzkwNzI3YmM4MWVlOTFjNmJjYTdkNTBkY2E0NDYKQXV0aG9yOiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZToJVGh1IEFwciAxNiAyMzoxNToxNSAyMDA5IC0wNzAwCgogICAgZG05MDAwIEVFUFJPTSByZWFkaW5nIGJ1Z2ZpeAoKICAgIE1ha2UgdGhlIFUtQm9vdCBkbTkwMDAgZHJpdmVyIHJlYWQgYWRkcmVzc2VzIGZyb20gRUVQUk9NIGp1c3QKICAgIGxpa2UgTGludXggZG9lcyAuLi4gcmVhZCBzaXggYnl0ZXMsIGluc3RlYWQgb2YgcmVhZGluZyB0d2VsdmUKICAgIGJ5dGVzIGFuZCB0aGVuIGRpc2NhcmRpbmcgZXZlcnkgb3RoZXIgb25lLgoKICAgIFVzaW5nIHRoZSByaWdodCBFdGhlcm5ldCBhZGRyZXNzIGlzIGEgYmlnIHdpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDRjMDJlNmY1ZDQ5ODgwMTIzZTdmNTg0Yjg4Zjg1N2ZmZDg3NDM4MQpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIEZlYiAyNSAxNDoyNzoyNCAyMDA5ICswOTAwCgogICAgcnRsODE2OTogZml4IGNhY2hlIGNvaGVyZW5jeSBwcm9ibGVtCgogICAgRml4IHRoZSBwcm9ibGVtIHRoYXQgY2Fubm90IGFjY2VzcyBhY3R1YWwgZGF0YSB3aGVuIENQVSBkYXRhIGNhY2hlIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgVGVzdGVkLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhODU2OTNiM2JkNDQzMWIwNWI3ZGY2MDhiNmY3NzMzYzBmODBjNTNlCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVHVlIEFwciAyMSAxNzozMDo1MSAyMDA5ICswMjAwCgogICAgT01BUDM6IEZpeCBjaGFuZ2VkIG1tYyBpbml0IGNvbW1hbmQKCiAgICBJbiByZWNlbnQgVS1Cb290IG1tY2luaXQgY2hhbmdlZCB0byBtbWMgaW5pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBTYWtvbWFuIDxzdGV2ZUBzYWtvbWFuLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgMzRiNzZhMTRmNjc2YmM2NTAxYzI3YTk2NTY0ZTRkZmI0NzkzZjAzMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMjYgMjA6Mzk6MjYgMjAwOSArMDIwMAoKICAgIGxpYl9hcm0vYm9hcmQuYzogcmVtb3ZlIG1pc2xlYWRpbmcgInRlc3Qtb25seSIgY29tbWVudC4KCiAgICBGb3IgYSBsb25nIHRpbWUsIHRoZSBwcmludF9jcHVpbmZvKCkgZGVjbGFyYXRpb24gaW4gbGliX2FybS9ib2FyZC5jCiAgICBoYWQgYmVlbiBtYXJrZWQgYXMgInRlc3Qtb25seSIsIHdoaWNoIGlzIHBsYWluIHdyb25nIGNvbnNpZGVyaW5nCiAgICBjdXJyZW50IHVzYWdlLiAgRGVsZXRlIHRoaXMgbWlzbGVhZGluZyBjb21tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzIzOWM1ZGE1ZTkxOTdhY2NiM2RmZTM5NWJlNDUwMmMzYjliY2E4ZQpBdXRob3I6IERhdmlkIEJyb3duZWxsIDxkYnJvd25lbGxAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOglTdW4gQXByIDEyIDE1OjQwOjE2IDIwMDkgLTA3MDAKCiAgICBtaW5vciBEYVZpbmNpIGNsb2NrIGNsZWFudXAKCiAgICBNaW5vciBjbGVhbnVwIHRvIGNsb2NrLXJlbGF0ZWQgZGVmaW5lcyBmb3IgRGFWaW5jaSBETTY0NDYgYm9hcmRzOgoKICAgICAtIENPTkZJR19TWVNfQ0xLX0ZSRVEgaXMgdW51c2VkOyByZW1vdmUgaXQuCgogICAgIC0gQ09ORklHX1NZU19OUzE2NTUwX0NMSyBtdXN0IGJlIHRoZSBzYW1lIGFzIENPTkZJR19TWVNfSFpfQ0xPQ0sKCiAgICBPbiBETTY0NDYgYm90aCBvZiB0aG9zZSBwZXJpcGhlcmFsIGNsb2NrcyBhY3R1YWxseSBjb21lIGZyb20gdGhlCiAgICBzYW1lIHNvdXJjZSwgdGhlIHByaW1hcnkgb3NjaWxsYXRvci4gIEhhdmluZyB0aGVtIHVzZSB0aGUgc2FtZQogICAgc3ltYm9sIGF2b2lkcyBidWdzIGluIHRoZSBjbG9uZSduJ21vZGlmeSBkZXZlbG9wbWVudCBjeWNsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBmZmQ4YzcxNzBkNTVjMzRiYmZjZmQyYzg0MDkzZGNhZmY3OTZjYmYzCkF1dGhvcjogTWlua3l1IEthbmcgPG1rNy5rYW5nQHNhbXN1bmcuY29tPgpEYXRlOglNb24gQXByIDYgMTk6NTk6MjkgMjAwOSArMDkwMAoKICAgIHMzYzY0eHg6IHJlbW92ZSB1bm5lY2Vzc2FyeSBkZWZpbml0aW9uCgogICAgQ09ORklHX1MzQzY0MDAgaXMgbXVzdCBkZWZpbmVkIGF0IGNvbmZpZyBoZWFkZXIgZmlsZQogICAgVGhhdCBkZWZpbml0aW9uIGlzIHVubmVjZXNzYXJ5IGF0IHRoaXMgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pbmt5dSBLYW5nIDxtazcua2FuZ0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAxNGI5MzA4ZDUxMWI1MzA0MmVmNDc4OTM2ZTM2N2E2NzI4MmRmNjZhCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjQgMDY6NTA6NDUgMjAwOSArMDIwMAoKICAgIDgzeHg6IHNlYXJjaGluZyAibXVyYW0tZGF0YSIgYnkgY29tcGF0aWJsZSBwcm9wZXJ0eQoKICAgIGlmIHVzaW5nIENPTkZJR19CT09UQ09VTlRfTElNSVQgZmVhdHVyZSBvbiBhIE1QQzgzNjAgQ1BVCiAgICBpbiB0aGUgbXVyYW0tZGF0YSBub2RlLCB0aGUgcmVnIGVudHJ5IG5lZWRzIHRvIGJlIHVwZGF0ZWQuCiAgICBUaGlzIGlzIGRvbmUgaW4gZmR0X2ZpeHVwX211cmFtKCksIGJ1dCB3ZSBzaG91bGQgdXNlCiAgICB0aGUgY29tcGF0aWJsZSAiZnNsLHFlLW11cmFtLWRhdGEiIGZvciBzZWFyY2hpbmcgdGhlCiAgICBub2RlIGluc3RlYWQgb2Ygc2VhcmNoaW5nIHRoZSBtdXJhbS1kYXRhIG5vZGUgd2l0aAogICAgYW4gYWJzb2x1dGUgcGF0aC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGUxNTA4ODc5NDgwNzk0NGIyMjFjMTE2MDlkMzY3ODllZmM3Zjc2NwpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAyMyAyMToyOTozNCAyMDA5ICswMjAwCgogICAgbXBjODN4eDogTVBDODM2MEVSREs6IGZpeCBlbnZpcm9ubWVudCBvZmZzZXQgY29uZmlndXJhdGlvbiBidWcKCiAgICBUaGUgc2l6ZSBvZiBVLUJvb3QgYmluYXJ5IGZvciBNUEM4MzYwRVJESyBpbmNyZWFzZWQKICAgICg+IDIgZmxhc2ggc2VjdG9ycyBub3cpLCBzbyAnc2F2ZWVudicgd2lsbCBwYXJ0aWFsbHkKICAgIG92ZXJ3cml0ZSBVLUJvb3QgaW4gZmxhc2ggYW5kIHdpbGwgYnJpY2sgdGhlIGJvYXJkLgogICAgVGhpcyBwYXRjaCBtb3ZlcyBlbnZpcm9ubWVudCBvZmZzZXQgdG8gZm91cnRoIGZsYXNoCiAgICBzZWN0b3IgYW5kIGFsc28gZml4ZXMgQ09ORklHX1NZU19NT05JVE9SX0xFTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNjMTcyYzRmZGJiYjU4NThmYWUzODQ3OGQ2Mzk5YmU0YTE2YmUzZmMKQXV0aG9yOiBNaWNoYWVsIFphaWRtYW4gPG1pY2hhZWwuemFpZG1hbkBnbWFpbC5jb20+CkRhdGU6CVNhdCBBcHIgNCAwMTo0MzowMCAyMDA5ICswMzAwCgogICAgTmV0TG9vcCBpbml0aWFsaXphdGlvbiBidWcKCiAgICBUaGUgcGF0Y2ggZml4ZXMgdGhlIGJ1ZyBvZiBwYXJ0aWFsIGluaXRpYWxpemF0aW9uIG9mIGdsb2JhbCBuZXR3b3JrCiAgICBwYXJhbWV0ZXJzLgoKICAgIFVwb24gdS1ib290J3Mgc3RhcnQgdXAgdGhlIGZpcnN0IHBpbmcgY29tbWFuZCBjYXVzZXMgYSBmYWlsdXJlIG9mIHRoZQogICAgY29uc2VxdWVudCBURlRQIGNvbW1hbmQuIEl0IGhhcHBlbnMgaW4gdGhlIHJlY2VudGx5IGFkZGVkIG1lY2hhbmlzbSBvZgogICAgdGhlIE5ldExvb3AgaW5pdGlhbGl6YXRpb24gd2hlcmUgaW5pdGlhbGl6YXRpb24gb2YgZ2xvYmFsIG5ldHdvcmsKICAgIHBhcmFtZXRlcnMgaXMgc2VwYXJhdGVkIGluIHRoZSBOZXRJbml0TG9vcCByb3V0aW5lIHdoaWNoIGlzIGNhbGxlZCBwZXIKICAgIGVudl9pZCBjaGFuZ2UuIFRodXMsIHBpbmcgcmVxdWVzdCB3aWxsIGluaXRpYWxpemUgdGhlIG5ldHdvcmsgcGFyYW1ldGVycwogICAgbmVjZXNzYXJ5IGZvciBwaW5nIG9wZXJhdGlvbiBvbmx5LCBhZnRlcndhcmRzIHRoZSBlbnZfY2hhbmdlZF9pZCB3aWxsIGJlCiAgICBzZXQgdG8gdGhlIGVudl9pZCB0aGF0IHdpbGwgcHJldmVudCBhbGwgZm9sbG93aW5nIGluaXRpYWxpemF0aW9uIHJlcXVlc3RzCiAgICBmcm9tIG90aGVyIHByb3RvY29scy4KICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIGluaXRpYWxpemVkIGJ5IHBpbmcgc3Vic2V0IG9mIG5ldHdvcmsgcGFyYW1ldGVycwogICAgaXMgbm90IHN1ZmZpY2llbnQgZm9yIG90aGVyIHByb3RvY29scyBhbmQgcGFydGljdWxhcmx5IGZvciBURlRQIHdoaWNoCiAgICByZXF1aXJlcyB0aGUgTmV0U2VydmVySXAgYWxzby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFphaWRtYW4gPG1pY2hhZWwuemFpZG1hbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGIxMWY2NjRmNTJjMjg1NTk5MDEwN2MxOGYyNDIyMjMzNzcxODM1NzUKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDkgMTA6Mjc6MDUgMjAwOSAtMDUwMAoKICAgIG5ldDogZml4IFVMSSA1MjZ4IG1hY3JvIHVzYWdlIGluIG5ldGRldi5oCgogICAgQ2hhbmdlIG5ldGRldi5oIHRvIHVzZSBDT05GSUdfVUxJNTI2WCBpbnN0ZWFkIG9mIENPTkZJR19VTEk1MjYuICBDT05GSUdfVUxJNTI2WAogICAgaXMgdXNlZCBldmVyeXdoZXJlIGVsc2UsIHNvIHRoYXQncyB0aGUgY29ycmVjdCBtYWNybyBuYW1lLglXaXRob3V0IHRoaXMgZml4LAogICAgRXRoZXJuZXQgd2lsbCBub3Qgd29yayBvbiB0aGUgRnJlZXNjYWxlIE1QQzg2MTAgSFBDRC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA3ZWUzOGMwNDRjYTUwNDFkMzM3OGQ2NTA3NTgwZWE0ZWMzNDRhZjk2CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6CVN1biBBcHIgMTIgMTU6Mzg6MDYgMjAwOSAtMDcwMAoKICAgIGZpeCBEYVZpbmNpIE5TMTY1NTBfUkVHX1NJWkUgcmVncmVzc2lvbgoKICAgIFVwZGF0ZSB0aGUgRGFWaW5jaSBETTY0NDYgYm9hcmRzIHRvIHVzZSB0aGUgbmV3IGNvbnZlbnRpb24KICAgIGZvciBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgLi4uIHRoZSBzaXplIGhhc24ndCBjaGFuZ2VkCiAgICBmcm9tIHRoZSBvcmlnaW5hbCA0IGJ5dGVzLCBidXQgdGhlc2UgY2hpcHMgYXJlIGxpdHRsZS1lbmRpYW4uCgogICAgKFJlc29sdmVzIGEgcmVncmVzc2lvbiBhZGRlZCByZWNlbnRseSBieSB0aGUgaW5jbHVkZS9uczE2NTUwLmgKICAgIHBhdGNoIHRvICJVbmlmeSBzdHJ1Y3R1cmUgZGVjbGFyYXRpb24gZm9yIHJlZ2lzdGVycyIuICBUaGUgY29kZQogICAgcHJldmlvdXNseSB3b3JrZWQganVzdCBmaW5lIGJlY2F1c2UgdGhlIHJlZ2lzdGVycyB3ZXJlIGFjY2Vzc2VkCiAgICBhcyBob3N0LWVuZGlhbiB3b3Jkcywgbm90IGFzIGJ5dGVzLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBkZmM5OWUxNDNmY2E0NGE0OTI5MThhYzZjZjNmNzZlZTljMjQ3M2E5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gQXByIDEyIDIyOjI5OjIwIDIwMDkgLTA0MDAKCiAgICBjbWRfbmFuZDogZHJvcCBkdXBsaWNhdGUgTlVMTCBwdHIgY2hlY2sKCiAgICBUaGUgZmlyc3QgaWYgc3RhdGVtZW50IGNoZWNrcyBmb3IgTlVMTCBwdHJzLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIGNoZWNrCiAgICBpdCBhZ2FpbiBpbiBsYXRlciBlbHNlIGNhc2VzIChzdWNoIGFzIC5vb2IpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NzMyY2VmMmVlYjRlMzM5Y2ZjZDg1NTNmYWI3NzNhZjczYTIwODA1CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6CU1vbiBBcHIgMTMgMDg6MDM6MzggMjAwOSAtMDcwMAoKICAgIENNRF9VQkkgIT0gTVREX1BBUlRJVElPTlMKCiAgICBGaXggZGVwZW5kZW5jeSBnb29mYWdlOiAgaXQgc2hvdWxkIGNlcnRhaW5seSBiZSBwb3NzaWJsZSB0byBoYXZlIHRoZQogICAgcGFydGl0aW9uIHN1cHBvcnQgd2l0aG91dCBicmluZ2luZyBpbiBVQkkgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlYmZmMzY1ZWI2MzA5M2NhMzViNjg3MzE2MDAyNTM1YzZhMTg4MjAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgQXByIDE2IDIxOjMwOjQ4IDIwMDkgKzAyMDAKCiAgICBhdDkxc2FtOS9hdDkxY2FwOiBmaXggQ09ORklHX1NZU19IWiB0byAxMDAwCgogICAgVGhlIHRpbWVyIGhhcyBiZWVuIHJld3JvdGUgd2l0aCBhIHByZWNpc2lvbiBhdCB+MCwxOCUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgVGVzdGVkLWJ5OiBTZXJnZXkgTGFwaW4gPHNsYXBpbkBvc3NmYW5zLm9yZz4KICAgIFRlc3RlZC1ieTogRXJpYyBCRU5BUkQgPGViZW5hcmRAZnJlZS5mcj4KCmNvbW1pdCBmMGEyYzdiNGI2NGVhY2QwNmJiMjcyODU2YmNjMDU2YmU4NzE5ZjVhCkF1dGhvcjogSWxrbyBJbGlldiA8aWxpZXZAcm9uZXRpeC5hdD4KRGF0ZToJVGh1IEFwciAxNiAyMTozMDo0OCAyMDA5ICswMjAwCgogICAgYXQ5MTogYWRkIHN1cHBvcnQgZm9yIHRoZSBQTTkyNjMgYm9hcmQgb2YgUm9uZXRpeCBHbWJICgogICAgVGhlIFBNOTI2MyBib2FyZCBpcyBiYXNlZCBvbiB0aGUgQVQ5MVNBTTkyNjMtRUsgYm9hcmQuCgogICAgSGVyZSBpcyB0aGUgcGFnZSBvbiBSb25ldGl4IHdlYnNpdGU6CiAgICBodHRwOi8vd3d3LnJvbmV0aXguYXQvc3RhcnRlcl9raXRfOTI2My5odG1sCgogICAgU2lnbmVkLW9mZi1ieTogSWxrbyBJbGlldiA8aWxpZXZAcm9uZXRpeC5hdD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZGMzOWFlOTUxM2MzMmRmZWI5ZTAxOGRjMGQyMmM2NDg0NTE0ZmVmYgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBcHIgMTYgMjE6MzA6NDQgMjAwOSArMDIwMAoKICAgIGF0OTFzYW05L2F0OTFjYXA6IGltcHJvdmUgY2xvY2sgZnJhbWV3b3JrCgogICAgY2FsY3VsYXRlIGR5bmFtaWNhbGx5IHRoZSBjbG9jayByYXRlIGFuZCBwbGxiIHNldHRpbmcgZm9yIHVzYgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZGQ3YzMwMjA5OWVmNTU5MDA2OWJkYmYyOTJhYWE4MjMwY2Q1OWRlNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxNSAxNDowODo0OCAyMDA5ICswMjAwCgogICAgcHBjNHh4OiBEaXNhYmxlIFBPU1QgbWVtb3J5IHRlc3Qgb24gTkFORC1ib290aW5nIEtpbGF1ZWEKCiAgICBEb24ndCBydW4gdGhlIG1lbW9yeSBQT1NUIG9uIHRoZSBOQU5ELWJvb3RpbmcgdmVyc2lvbi4gSXQgd2lsbAogICAgb3ZlcndyaXRlIHBhcnQgb2YgdGhlIFUtQm9vdCBpbWFnZSB3aGljaCBpcyBhbHJlYWR5IGxvYWRlZCBmcm9tIE5BTkQKICAgIHRvIFNEUkFNLiBXZSB3ZXJlIGp1c3QgbHVja3kgdGhhdCBpdCBib290ZWQgYXQgYWxsIHdpdGggdGhpcyBTRFJBTQogICAgdGVzdCBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YTkyOTE3MGJlODliMjdiY2U2Nzc1MDRkYTI3ZTg4NjAwYzA2YzQ5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE1IDE0OjA2OjI2IDIwMDkgKzAyMDAKCiAgICBwcGM0eHg6IERpc2FibGUgUE9TVCBtZW1vcnkgdGVzdCBvbiBOQU5ELWJvb3RpbmcgU2VxdW9pYQoKICAgIERvbid0IHJ1biB0aGUgbWVtb3J5IFBPU1Qgb24gdGhlIE5BTkQtYm9vdGluZyB2ZXJzaW9uLiBJdCB3aWxsCiAgICBvdmVyd3JpdGUgcGFydCBvZiB0aGUgVS1Cb290IGltYWdlIHdoaWNoIGlzIGFscmVhZHkgbG9hZGVkIGZyb20gTkFORAogICAgdG8gU0RSQU0uIFdlIHdlcmUganVzdCBsdWNreSB0aGF0IGl0IGJvb3RlZCBhdCBhbGwgd2l0aCB0aGlzIFNEUkFNCiAgICB0ZXN0IGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3YzFiMGU4OWI4YmU3ZDkwZjYwNWViMTlhZjkyMThjNjI3NWJmYjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTUgMTE6MzI6NTMgMjAwOSArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHVudXNlZCBjb2RlIGZvciBTZXF1b2lhIE5BTkQgYm9vdGluZyB2ZXJzaW9uCgogICAgVGhlIGN1cnJlbnQgZGVmaW5lIG9mIGdldF9idXNfZnJlcSgpIGluIHRoZSBDT05GSUdfTkFORF9TUEwgI2lmZGVmIGlzIG5vdAogICAgdXNlZCBhdCBhbGwuIFRoaXMgcGF0Y2ggY2hhbmdlcyBpdCdzIGRlZmluZSB0byB0aGUgY3VycmVudGx5IHVzZWQgdmFsdWUgb2YKICAgIDEzMzMzMzMzMyBhbmQgcmVtb3ZlcyB0aGUgdW5uZWNlc3NhcnkgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2Y5NDA5ODg1Y2JlMDE0MDViYWQ3Njc5MGU5OWY4YWRmMzM1MWY0ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxNSAxMDo1MDo0OCAyMDA5ICswMjAwCgogICAgcHBjNHh4OiBBZGQgImJvb3RpbmcgZnJvbSBOQU5EIiB0byA0eHggTkFORC1ib290aW5nIHRhcmdldHMKCiAgICBUaGlzIGFkZGl0aW9uYWwgdGV4dCBpbiB0aGUgYm9vdHVwIGxvZyBoZWxwcyB0byBzZWUgaWYgdGhlIGJvYXJkIGlzCiAgICBjb25maWd1cmVkIGZvciBOQU5ELWJvb3RpbmcuIEVzcGVjaWFsbHkgaGVscGZ1bCBmb3IgYm9hcmRzIHRoYXQgY2FuCiAgICBib290IGZyb20gTk9SIGFuZCBOQU5EIChlLmcuIG1vc3Qgb2YgdGhlIEFNQ0MgZXZhbCBib2FyZHMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1MTMyMTA2YTI3YjhmYjMwMjY3Nzg1MmIyNmZmZDMxOWI0MGQxN2UyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDggMTA6MzY6MjIgMjAwOSArMDIwMAoKICAgIHBwYzR4eDogRml4dXAgY2hpcC1zZWxlY3RzIGluIGR0YiBmb3IgTkFORC1ib290aW5nIFNlcXVvaWEKCiAgICBDdXJyZW50bHkgdGhlIE5PUiAmIE5BTkQgc3VwcG9ydCBpbiBMaW51eCBvbmx5IHdvcmtzIGZvciB0aGUgInN0YW5kYXJkIgogICAgU2VxdW9pYSwgdGhlIHZlcnNpb24gYm9vdGluZyBmb3IgTk9SIGZsYXNoLiBUaGUgTkFORC1ib290aW5nIHZlcnNpb24KICAgIGhhcyB0aGUgY2hpcC1zZWxlY3RzIHN3YXBwZWQuIEhlcmUgdGhlIGNoaXAtc2VsZWN0IG1hcHBpbmdzOgoKICAgICJTdGFuZGFyZCIgTk9SLWJvb3RpbmcgdmVyc2lvbjoKICAgIENTMAlOT1IKICAgIENTMwlOQU5ECgogICAgTkFORC1ib290aW5nIHZlcnNpb246CiAgICBDUzAJTkFORAogICAgQ1MzCU5PUgoKICAgIFdpdGggdGhpcyBwYXRoIHRoZSBkdGIgZ2V0cyBmaXhlZC11cCwgc28gdGhhdCB0aGUgY29ycmVjdCBjaGlwLXNlbGVjdAogICAgbnVtYmVycyBhcmUgcGF0Y2hlZCBpbiB0aGUgZHRiIGVuYWJsaW5nIGNvcnJlY3QgTk9SICYgTkFORCBzdXBwb3J0CiAgICBpbiBMaW51eCBvbiB0aGUgTkFORC1ib290aW5nIFNlcXVvaWEgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWFkNGVjYTRiYThkNTk3NzQ3MTk5ZDhhZjcyMzQyNjY4MTU1N2RkYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEFwciA0IDA5OjEwOjI3IDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogYXVkaXQgVUFSVCBmb3IgYWxsIGtub3duIGFub21hbGllcwoKICAgIFRoZXJlIGlzIG5vIGNvZGUgY2hhbmdlIGhlcmUsIGp1c3QgbmV3IGNvbW1lbnRzLCBidXQgdGhpcyBrZWVwcyBtZSBmcm9tCiAgICBoYXZpbmcgdG8gZG8gYW5vdGhlciBhdWRpdCBmcm9tIHNjcmF0Y2ggaW4gdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGVmOTI5YWZhNDNjNzdjOTU3M2NhYTU3YzZlMTdhOTdhMzM3NzVjMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEFwciA0IDA4OjQwOjEzIDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogYWRkIGNoZWNrIGZvciBhbm9tYWx5IDA1MDAwMzYyCgogICAgREVTQ1JJUFRJT046CiAgICBUaGUgY29sdW1uIGFkZHJlc3Mgd2lkdGggc2V0dGluZ3MgZm9yIGJhbmtzIDIgYW5kIDMgYXJlIG1pc2Nvbm5lY3RlZCBpbgogICAgdGhlIFNEUkFNIGNvbnRyb2xsZXIuICBBY2Nlc3NlcyB0byBiYW5rIDIgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgaWYgdGhlCiAgICBDb2x1bW4gQWRkcmVzcyBXaWR0aCBmb3IgYmFuayAzIChFQjNDQVcgKSBpcyBub3Qgc2V0IHRvIGJlIHRoZSBzYW1lIGFzCiAgICB0aGF0IG9mIGJhbmsgMi4KCiAgICBXT1JLQVJPVU5EOgogICAgSWYgdXNpbmcgYmFuayAyLCBtYWtlIHN1cmUgdGhhdCBiYW5rcyAyIGFuZCAzIGhhdmUgdGhlIHNhbWUgY29sdW1uIGFkZHJlc3MKICAgIHdpZHRoIHNldHRpbmdzIGluIHRoZSBFQklVX1NEQkNUTCByZWdpc3Rlci4gIFRoaXMgbXVzdCBiZSB0aGUgY2FzZQogICAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBiYW5rIDMgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYzJlMDc0NDlmNTQ2ZmIzNzUyODljZGFjMWE2MDhmZGMyMDM1Nzg3MwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEFwciA0IDA4OjI5OjU1IDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogYWRkIGNvbW1lbnQgYWJvdXQgYW5vbWFseSAwNTAwMDQzMCBhdm9pZGFuY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNDhhYjE1MDkyNTRhNGMxNzVlNGY2NWM0NzhhOTc4OTI4ZmZlMDllYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEFwciA0IDA4OjEwOjIyIDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogYWRkIHdvcmthcm91bmQgZm9yIGFub21hbHkgMDUwMDAyNDIKCiAgICBERVNDUklQVElPTjoKICAgIElmIHRoZSBERiBiaXQgaXMgc2V0IHByaW9yIHRvIGEgaGFyZHdhcmUgcmVzZXQsIHRoZSBQTEwgd2lsbCBjb250aW51ZSB0bwogICAgZGl2aWRlIENMS0lOIGJ5IDIgYWZ0ZXIgdGhlIGhhcmR3YXJlIHJlc2V0LCBidXQgdGhlIERGIGJpdCBpdHNlbGYgd2lsbCBiZQogICAgY2xlYXJlZCBpbiB0aGUgUExMX0NUTCByZWdpc3Rlci4KCiAgICBXT1JLQVJPVU5EOgogICAgUmVwcm9ncmFtIHRoZSBQTEwgd2l0aCBERiBjbGVhcmVkIGlmIHRoZSBkZXNpcmUgaXMgdG8gbm90IGRpdmlkZSBDTEtJTiBieQogICAgMiBhZnRlciByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2UxZmU0YmE2YmI5ZGY3YzU3MzUxNDM2ZmExN2QxYWY4YmJlNzkxNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEFwciA0IDA4OjA5OjI0IDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogYWRkIHdvcmthcm91bmQgZm9yIGFub21hbHkgMDUwMDAxNzEKCiAgICBERVNDUklQVElPTjoKICAgIFRoZSBCb290IFJPTSBpcyBleGVjdXRlZCBhdCBwb3dlciB1cC9yZXNldCBhbmQgY2hhbmdlcyB0aGUgdmFsdWUgb2YgdGhlCiAgICBTSUNBX0lXUiByZWdpc3RlcnMgZnJvbSB0aGVpciBkZWZhdWx0IHJlc2V0IHZhbHVlIG9mIDB4RkZGRiwgYnV0IGRvZXMgbm90CiAgICByZXN0b3JlIHRoZW0uCgogICAgV09SS0FST1VORDoKICAgIFVzZXIgY29kZSBzaG91bGQgbm90IHJlbHkgb24gdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlc2UgcmVnaXN0ZXJzLglTZXQKICAgIHRoZSBkZXNpcmVkIHZhbHVlcyBleHBsaWNpdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1MWVlNmUwNTdmN2E5MjBlMmExMjVjZDlmOTg1ZDEwZjYyNWUzNTVmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgQXByIDQgMDg6MjI6MzYgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgYW5vbWFseSBzaGVldHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYTM0M2JhODdlYTAzMjBjYTBhNGVjZmEyYzQyY2Q5ZDRmMTg4ODNkZgpBdXRob3I6IEdyYWYgWWFuZyA8Z3JhZi55YW5nQGFuYWxvZy5jb20+CkRhdGU6CVNhdCBBcHIgNCAwNzo0NTo1NyAyMDA5IC0wNDAwCgogICAgQmxhY2tmaW46IG5hbmQ6IGZsdXNoIHBlcmlwaGVyYWwgYmVmb3JlIHBvbGxpbmcgaXQKCiAgICBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZGF0YSB3cml0dGVuIHRvIHRoZSBuYW5kIGZsYXNoIGNvbnRyb2xsZXIgbWFrZXMKICAgIGl0IHRoZXJlIGJlZm9yZSB3ZSBzdGFydCBwb2xsaW5nIGl0cyBzdGF0dXMgcmVnaXN0ZXIuICBPdGhlcndpc2UsIHdlIG1heQogICAgZ2V0IHN0YWxlIGRhdGEgYW5kIHJldHVybiBiZWZvcmUgdGhlIGNvbnRyb2xsZXIgaXMgYWN0dWFsbHkgcmVhZHkuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZiBZYW5nIDxncmFmLnlhbmdAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzY2NiZmIyNWY0OGFmNzhlNzA5MmFjNzVmMzExNWU5MjRlNzZjNzQ4CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVN1biBBcHIgNSAxMTo0MzoyOCAyMDA5ICswMjAwCgogICAgU3VwcG9ydCBmb3IgUFhBMjdYIFVEQy4KCglUaGlzIFBhdGNoIGFkZHMgU3VwcG9ydCBmb3IgUFhBMjdYIFVEQy4KCShSZWJhc2VkIHRvIGRyaXZlcnMvdXNiIHJlb3JnYW5pc2F0aW9uKQoKICAgIFNpZ25lZC1vZmYtYnk6IFZpdmVrIEt1dGFsIDx2aXZlay5rdXRhbEBhemluZ28uY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMjczMWI5YTg2Njg1MTkwZDI2YjE4ODNmMjdhZmRhNWFjOGUxYTMxMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBBcHIgMyAxMjo0Njo1OCAyMDA5ICswMjAwCgogICAgZHJpdmVycy91c2I6IHJlZ29yZ2FuaXNhdGlvbgoKICAgIG1vdmUgdG8gbGludXggdXNiIGRyaXZlciBvcmdhbmlzYXRpb24KCiAgICBhcyBmb2xsb3dpbmcKCiAgICBkcml2ZXJzL3VzYi9nYWRnZXQKICAgIGRyaXZlcnMvdXNiL2hvc3QKICAgIGRyaXZlcnMvdXNiL211c2IKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgZDA0MzcxYTExNmQxMDJlNTg3YmE3YWE0YzMyOWI0NDFjZGJlYTNmNApBdXRob3I6IFRvZG9yIEkgTW9sbG92IDx0bW9sbG92QHVjc2QuZWR1PgpEYXRlOglTYXQgQXByIDQgMDY6NTM6MDYgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBzcGk6IG1ha2UgY3MgZGVhc3NlcnQgZnVuY3Rpb24gZGV0ZXJtaW5pc3RpYwoKICAgIEJsYWNrZmluIFNQSSBkcml2ZXIgd2FzIG5vdCBkcml2aW5nIHRoZSBTUEkgY2hpcC1zZWxlY3QgaGlnaCBiZWZvcmUKICAgIHB1dHRpbmcgdGhlIGNoaXAtc2VsZWN0IHNpZ25hbHMgaW50byB0cmktc3RhdGUgbW9kZS4gIFRoaXMgaXMgcHJvYmFibHkKICAgIHNvbWV0aGluZyB0aGF0IHNsaXBwZWQgYnkgdW5ub3RpY2VkIGluIG1vc3QgZGVzaWducy4gIElmIHRoZSBzaWduYWxzIGFyZQogICAgcHV0IGRpcmVjdGx5IGludG8gYSB0cmktc3RhdGUgbW9kZSwgdGhlbiB0aGUgYm9hcmQgaXMgcmVseWluZyBvbiB0aGUKICAgIHB1bGwtdXAgcmVzaXN0b3JzIHRvIHB1bGwgdXAgdGhlIGNoaXAtc2VsZWN0IGJlZm9yZSB0aGUgbmV4dCB0cmFuc2FjdGlvbi4KICAgIE1vc3Qgb2YgdGhlIHRpbWUgdGhpcyBpcyBmaW5lLCBleGNlcHQgd2hlbiB5b3UgaGF2ZSB0d28gdHJhbnNhY3Rpb25zIHRoYXQKICAgIGZvbGxvdyBlYWNoIG90aGVyIHZlcnkgY2xvc2VseSwgc3VjaCBhcyB0aGUgZmxhc2ggZXJhc2UgYW5kIHJlYWQgc3RhdHVzCiAgICByZWdpc3RlciBjb21tYW5kcy4JSW4gdGhpcyBjYXNlIEkgd2FzIHNlZWluZyBhIDUwMG5zIHNlcGFyYXRpb24gYmV0d2VlbgogICAgdGhlIHRyYW5zYWN0aW9ucy4gIEluIG15IHNldHVwLCB3aXRoIGEgMTBrT2htIHB1bGwtdXAsIGl0IHdvdWxkIG1lZXQKICAgIHRpbWluZyBzcGVjIGFib3V0IGhhbGYgdGhlIHRpbWUgYW5kIHJlc3VsdGVkIGluIGludGVybWl0dGVudCBlcnJvcnMuICAoQQogICAgc3Ryb25nZXIgcHVsbCB1cCB3b3VsZCBmaXggdGhpcywgYnV0IG91ciBkZXNpZ24gaXMgdGFyZ2V0ZWQgZm9yIGxvdyBwb3dlcgogICAgY29uc3VtcHRpb24gYW5kIGEgMy4za09obSBAIDMuM3YgaXMgMy4zbVcgb2YgbmVlZGxlc3MgcG93ZXIgY29uc3VtcHRpb24uKQogICAgSSBtb2RpZmllZCB0aGUgc3BpX2NzX2RlYWN0aXZhdGUoKSBmdW5jdGlvbiBpbiBiZmluX3NwaS5jIHRvIGRyaXZlIHRoZQogICAgY2hpcC1zZWxlY3RzIGhpZ2ggYmVmb3JlIHB1dHRpbmcgdGhlbSBpbnRvIHRyaS1zdGF0ZS4gIEZvciBtZSwgdGhpcwogICAgcmVzdWx0ZWQgaW4gYSByaXNlIHRpbWUgb2YgNW5zIGluc3RlYWQgb2YgdGhlIHByZXZpb3VzIHJpc2UgdGltZSBvZiBhYm91dAogICAgMXVzLCBhbmQgZnVsbHkgc2F0aXNmaWVkIHRoZSB0aW1pbmcgc3BlYyBvZiB0aGUgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb2RvciBJIE1vbGxvdiA8dG1vbGxvdkB1Y3NkLmVkdT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjNmZhZGI5YzczYTZhM2UwYzdmMjA2OTZlOTc4MzA0YTU5M2E4ZDJkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAxMyAyMTowODowNSAyMDA4ICswMTAwCgogICAgaW50ZWdyYXRvcmFwOiBmaXggUENJIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFjMzk3NTA4YzgzNmRmY2IwMWZiMjQ3MWM3MWRlMDcyNzA1MWYxMTcKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglNb24gTWFyIDMwIDIxOjE1OjIzIDIwMDkgKzAyMDAKCiAgICBPTUFQMzogVXBkYXRlIE92ZXJvIHBpbiBtdXggZm9yIG5ldyBleHBhbnNpb24gYm9hcmQKCiAgICBBIG5ldyBPdmVybyBleHBhbnNpb24gYm9hcmQgdXNlcyBHUElPIDE0LCAyMSwgMjIgYW5kIDIzIGZvciBMRUQncyBhbmQKICAgIHN3aXRjaGVzLiBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIHBpbm11eCBjb25maWd1cmF0aW9uIGZvciB0aG9zZSBwaW5zLgogICAgVGhleSB3ZXJlIHByZXZpb3VzbHkgc2V0IHVwIGZvciB1bnVzZWQgTU1DM19EQVQ0LTcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmUgU2Frb21hbiA8c3RldmVAc2Frb21hbi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgoKY29tbWl0IGFiMjk4MjMxNTE4Njc1YjM3ODRhZWE4OGVlOWI5Nzg0MzhmOTllNjMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXByIDUgMTM6MDg6MDMgMjAwOSArMDIwMAoKICAgIGFybTogdW5pZnkgcmVzZXQgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYjNhY2I2Y2Q0MDU5ZGZiMjlhNWU5OTA5NWQ4MDI3MTdmNTNmZjc4NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBBcHIgNSAxMzowNjozMSAyMDA5ICswMjAwCgogICAgYXJtOiBjbGVhbiBjYWNoZSBtYW5hZ2VtZW50CgogICAgdW5pZnkgYXJtIGNhY2hlIG1hbmFnZW1lbnQgZXhjZXB0IGZvciBub24gc3RhbmRhcmQgY2FjaGUgYXMgQVJNN1RETUkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY3N2U2MmY0MzIzNWRlOWExNzAxMjA0ZDdiY2VhMGZiM2QyMzNmYTEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXByIDUgMTM6MDI6NDMgMjAwOSArMDIwMAoKICAgIGFybTogdXBkYXRlIGNvLXByb2Nlc3NvciAxNSBhY2Nlc3MKCiAgICBpbXBvcnQgc3lzdGVtLmggZnJvbSBsaW51eAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjNlNGFmNDllMDY2YTUzY2QzZTM2NTliNjhlZjkwNTcyZDg4ZGU4NApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU3VuIEFwciA1IDAwOjQyOjAyIDIwMDkgKzAyMDAKCiAgICBBUk06IGFkZCB0aGUgaW14MzFfcGh5Y29yZV9lZXQgdGFyZ2V0IHRvIE1BSU5UQUlORVJTCgogICAgaW14MzFfcGh5Y29yZV9lZXQgaXMgYSB2YXJpYW50IG9mIHRoZSBpbXgzMV9waHljb3JlIGJvYXJkIHdpdGggYSBmZXcKICAgIGV4dGVuc2lvbnMsIHdoaWNoIGp1c3RpZmllcyBhIHNlcGFyYXRlIGVudHJ5IGluIHRoZSBNQUlOVEFJTkVSUyBsaXN0LAogICAgd2hlcmVhcyBub3JtYWxseSBhbGwgZW50cmllcyBzaGFyaW5nIGEgc2luZ2xlIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgYQogICAgYm9hcmQvIGRpcmVjdG9yeSBoYXZlIG9ubHkgb25lIGVudHJ5IGluIE1BSU5UQUlORVJTLgoKICAgIFJlcG9ydGVkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDY5YzViZjI5OTA4YjNhN2Y4ZTIzYmQ5ODkxYjdlY2M1YjIxZjIzZTUKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgNSAwMDozNzowNyAyMDA5ICswMjAwCgogICAgQVJNOiBmaXggb3V0LW9mLXRyZWUgYnVpbGQgb2YgaW14MzFfcGh5Y29yZV9lZXQKCiAgICBGaXggb3V0LW9mLXRyZWUgYnVpbGQgb2YgdGhlIGlteDMxX3BoeWNvcmVfZWV0IHRhcmdldC4KCiAgICBSZXBvcnRlZC1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAzYzg1M2YzMWQ2YThlNDQwN2Y3M2EyY2EyYzYzZDM4M2EyNDVmMjM3CkF1dGhvcjogSm9uIFNtaXJsIDxqb25zbWlybEBnbWFpbC5jb20+CkRhdGU6CVNhdCBBcHIgNCAxNzo0NDo1MSAyMDA5IC0wNDAwCgogICAgbXBjNTIwMDogcmVkdWNlIGRlbGF5cyBpbiBpMmMKCiAgICBUaGUgcHJldmlvdXMgY29kZSB3YWl0ZWQgMTAwMHVzIGJlZm9yZSBjaGVja2luZyBpMmMKICAgIHN0YXR1cy4gTWVhc3VyZW1lbnQgc2hvd3MgaTJjIGlzIHVzdWFsbHkgcmVhZHkgaW4KICAgIHVuZGVyIDUwdXMuIENoYW5nZSB0aGUgcG9sbGluZyBpbnRlcnZhbCB0byAxNXVzLAogICAgbG9vcCA2LDY2NyB0aW1lcyB0byBrZWVwIHRoZSBwb2xsaW5nIHRpbWVvdXQgY29uc3RhbnQKICAgIGF0IDEwMG1zLgoKY29tbWl0IDM2MDAzMjY4OTY4OTQ5MTEwZWYxNDVkOWYyZWFmODQzOWM5NmQyNWIKQXV0aG9yOiBTYW5qZWV2IFByZW1pIDxwcmVtaUB0aS5jb20+CkRhdGU6CUZyaSBBcHIgMyAxNDowMDowNyAyMDA5ICswNTMwCgogICAgT01BUDogRml4IGNvbXBpbGUgaXNzdWUKCiAgICBGaXhlcyB0aGlzIGNvbXBpbGUgZXJyb3I6CiAgICBib2FyZC5jOiBJbiBmdW5jdGlvbiAnZG9fc3dpdGNoX2VjYyc6CiAgICBib2FyZC5jOjMzOTogZXJyb3I6ICdjbWRfdGJsX3QnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ2hlbHAnCiAgICBtYWtlWzFdOiAqKiogW2JvYXJkLm9dIEVycm9yIDEKICAgIG1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAvZGIvcHNwX2dpdC91c2Vycy9hMDc1NjgxOS91LWJvb3QvY3B1L2FybV9jb3J0ZXhhOC9vbWFwMycKICAgIG1ha2U6ICoqKiBbY3B1L2FybV9jb3J0ZXhhOC9vbWFwMy9saWJvbWFwMy5hXSBFcnJvciAyCgogICAgVGhpcyBpcyBkdWUgdG8gdGhlIGZhY3QgdGhhdCBjdXJyZW50IGNvbW1hbmQgdXNlcyBsb25nCiAgICBoZWxwIGZvciB0aGUgdXNhZ2UgcHJpbnQgZXZlbiBpZiB0aGUgQ09ORklHX1NZU19MT05HSEVMUAogICAgaXMgbm90IGVuYWJsZWQuIChUaGFua3MgSmVhbi1DaHJpc3RvcGhlIGZvciBleHBsYW5hdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogU2FuamVldiBQcmVtaSA8cHJlbWlAdGkuY29tPgoKY29tbWl0IDM0MmMxYTVkOWFiNzRmZWJmMzIyNmE4NjIxNmRjNWFhMDUyOTVkNDYKQXV0aG9yOiBNaW5reXUgS2FuZyA8bWs3LmthbmdAc2Ftc3VuZy5jb20+CkRhdGU6CUZyaSBBcHIgMyAwOTo1NjoxNiAyMDA5ICswOTAwCgogICAgczNjNjR4eDogZml4IHRoZSB3cm9uZyBncGlvIG9mZnNldAoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSB3cm9uZyBncGlvIG9mZnNldAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pbmt5dSBLYW5nIDxtazcua2FuZ0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBhYjA2ODljMzE2YzliMmVlMzNmNGRlMWM1MDI2M2I2NGU1MzlmMTJhCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVdlZCBOb3YgMjYgMTA6MTg6MTMgMjAwOCArMDkwMAoKICAgIE1vdmUgbWFjaGluZSBzcGVjaWZpYyBjb2RlIHRvIGJvYXJkIGF0IHMzYzY0eHggKHYyKQoKICAgIE1vdmUgbWFjaGluZSBzcGVjaWZpYyBjb2RlIHRvIHNtZGs2NDAwLgogICAgU29tZSBib2FyZCB1c2UgT25lTkFORCBpbnN0ZWFkIG9mIE5BTkQuCgogICAgU29tZSByZWdpc3RlciBNUDBfQ1NfQ0ZHWzU6MF0gYXJlIGNvbnRyb2xlZCBieSBib3RoIGgvdyBhbmQgcy93LgogICAgU28gaXQncyBiZXR0ZXIgdG8gdXNlIG1hY3JvIGluc3RlYWQgb2YgaGFyZC1jb2RlZCB2YWx1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDc2N2YzYWNkOWY2ZTFkY2I4YWRhOTI2YzMzMzk0NTM4MmVkZGM3ZTgKQXV0aG9yOiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+CkRhdGU6CVdlZCBBcHIgMSAyMjowMjoxOSAyMDA5IC0wNTAwCgogICAgWk9PTTEgUmVtb3ZlIGxlZ2FjeSBOQU5EIGRlZmluZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+Cgpjb21taXQgNTg5MTE1MTcwN2VlNTkwMmZlNjJkNTU0YzI0N2Y0Mjg2NTgxNTc1NwpBdXRob3I6IFRvbSBSaXggPFRvbS5SaXhAd2luZHJpdmVyLmNvbT4KRGF0ZToJV2VkIEFwciAxIDIyOjAyOjIwIDIwMDkgLTA1MDAKCiAgICBPTUFQMyBGaXggbXVsdGlsaW5lIGZvcm1hdHRpbmcgaW4gYm9hcmQgaW5pdCBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+Cgpjb21taXQgYzBhMTRhZWRjMzQ0MGQ2NTkxYjhjODZkNDU4NjFhMGE4YjQ2ZTExZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgNSAwMDoyNzo1NyAyMDA5ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRywgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgZjYzNzI4YzgwNGFiNzQxM2E2N2Q3MGY2Nzc0Y2QzMGMzZjdiNDBmYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgNSAwMDoxODo0NCAyMDA5ICswMjAwCgogICAgT25lIG1vcmUgZml4IGZvciBidWlsZGluZyBlbnZfZW1iZWRkZWQubwoKICAgIEluIGFkZGl0aW9uIHRvIHRoZSBjaGFuZ2VzIGZvciBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIIGFzIGRvbmUgaW4KICAgIGNvbW1pdCBhZmNiY2UwNywgd2UgYWxzbyBuZWVkIHRvIGRvIHRoZSBzYW1lIGZvcgogICAgQ09ORklHX0VOVl9JU19JTl9FRVBST00gYW5kIENPTkZJR19FTlZfSVNfSU5fTlZSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlM2QxYWM3YmIxOTU1ZDM2OTgwZDI2N2NiNGNlYzQwYjBmN2QzMGI1CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMiAxNjoxNToxMCAyMDA5IC0wNTAwCgogICAgY29tbW9uL2ltYWdlLmM6IFJlbG9jYXRlIHN0cmluZ3MgaW4gdGFibGVzLgoKICAgIFdpdGhvdXQgdGhpcywgdS1ib290IGNhbiBjcmFzaCBvciBwcmludCBnYXJiYWdlIGlmIHRoZSBvcmlnaW5hbCBsaW5rCiAgICBhZGRyZXNzIG5vIGxvbmdlciBwb2ludHMgdG8gYSB2YWxpZCBzdHJpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2E2NzFmYzA2YWUxZDllOGViYTc2NjAwMzcyMzE3Yzc1YWUwZWIzZQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDIgMTY6MTA6MzYgMjAwOSAtMDUwMAoKICAgIG1wYzgyNjA6IEZpbGwgaW4gYnJnJ3MgY2xvY2stZnJlcXVlbmN5IGluIGRldmljZSB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3M2VkMjc0YTIxMTY5OTczOWQ4M2MyY2VmOTI4NTNkYzY3MTZlMTUKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAyIDE4OjIwOjQzIDIwMDkgLTA1MDAKCiAgICBNUEM4MjYwQURTOiBBZGQgbmZzYm9vdC9yYW1ib290IHRvIGRlZmF1bHQgZW52aXJvbm1lbnQuCgogICAgVGhpcyBicmluZ3MgaXQgaW4gbGluZSB3aXRoIG90aGVyIEZyZWVzY2FsZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzIwM2VmNWRiMDQ3NmE4YzRmNmRkODZiMmU5ZTlkYjBlYTk3M2Y4NApBdXRob3I6IEFuZHJlYXMgSHViZXIgPGFuZHJlYXMuaHViZXJAa2V5bWlsZS5jb20+CkRhdGU6CVRodSBBcHIgMiAxNzoxNTozNCAyMDA5ICswMjAwCgogICAgVUJJL2NmaS1tdGQ6IEZpeCBtdGQgbmFtZSBmb3IgbXVsdGlwbGUgY2hpcHMKCiAgICBPbiBwbGF0Zm9ybXMgd2l0aCBtdWx0aXBsZSBOT1IgY2hpcHMsIGN1cnJlbnRseSBvbmx5IHRoZSBmaXJzdCBvbmUKICAgIGNhbiBiZSBzZWxlY3RlZCB1c2luZyB0aGUgInViaSBwYXJ0IiBjb21tYW5kLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMKICAgIHByb2JsZW0gYnkgdXNpbmcgZGlmZmVyZW50IG5hbWVzIGZvciB0aGUgTk9SICJtdGQgZGV2aWNlcyIuCgogICAgSXQgYWxzbyBjaGFuZ2VzIHRoZSBuYW1lIG9mIHRoZSBOT1IgTVREIGRldmljZSBmcm9tICJjZmktbXRkIiB0bwogICAgIm5vclgiIChYIGluZGV4aW5nIHRoZSBkZXZpY2UgbnVtZXIpIHRvIGJldHRlciBtYXRjaCB0aGUgbXRkcGFydHMKICAgIGRlZmF1bHRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgSHViZXIgPGFuZHJlYXMuaHViZXJAa2V5bWlsZS5jb20+Cgpjb21taXQgNmI2YmIwMmYyN2ZjYWJmYjM3ZWE3MTdmYjdlMjQzMjQ4ZTFlMmFjZgpBdXRob3I6IFBldGVyIEtvcnNnYWFyZCA8amFjbWV0QHN1bnNpdGUuZGs+CkRhdGU6CVR1ZSBNYXIgMzEgMTc6NTI6MTYgMjAwOSArMDIwMAoKICAgIHRvb2xzL3NldGxvY2FsdmVyc2lvbjogdXNlIGdpdCBzdm4gaW5zdGVhZCBvZiBnaXQtc3ZuCgogICAgVXNlIHRoZSBuZXcgImdpdCA8c3ViY21kPiIgc3ludGF4IGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQKICAgICJnaXQtPHN1YmNtZD4iLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIEtvcnNnYWFyZCA8amFjbWV0QHN1bnNpdGUuZGs+Cgpjb21taXQgN2ZhOTZhOWE1NGViMGQ4N2Q3Mzg4OGVjMjU2NWNkYTc5MGJhMGRmZgpBdXRob3I6IE1pbmdrYWkgSHUgPE1pbmdrYWkuaHVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAzMSAxNDowOTo0MCAyMDA5ICswODAwCgogICAgZVNQSTogYWRkIHRoZSBlU1BJIHJlZ2lzdGVyIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaW5na2FpIEh1IDxNaW5na2FpLmh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODY5ZjZiZjRkZWY1YTA1M2ZiZDFhZWNkOGIyZmMzNmYwNTE5NmMwYgpBdXRob3I6IE1pbmt5dSBLYW5nIDxtazcua2FuZ0BzYW1zdW5nLmNvbT4KRGF0ZToJTW9uIE1hciAzMCAxNDo1NTo1MSAyMDA5ICswOTAwCgogICAgY21kX21tYzogYWRkIHN1cHBvcnQgZm9yIGRldmljZSBjb21tYW5kIGZvciBzZWxlY3RpbmcgbW1jIGRldmljZQoKICAgIFRoaXMgcGF0Y2ggaW1wcm92ZXMgZGV2aWNlIGNvbW1hbmQgZm9yIHNlbGVjdGluZyBtbWMgZGV2aWNlCgogICAgU2lnbmVkLW9mZi1ieTogTWlua3l1IEthbmcgPG1rNy5rYW5nQHNhbXN1bmcuY29tPgoKY29tbWl0IDlhYmM5ZWY4ZmJlMDc5YmY3NWE2MzRjZTY0YjdkY2RiN2IwZDhiZGMKQXV0aG9yOiBBbGFuIENhcnZhbGhvIGRlIEFzc2lzIDxhY2Fzc2lzQGdtYWlsLmNvbT4KRGF0ZToJU2F0IE1hciAyOCAxOTo1MDoxNiAyMDA5IC0wMzAwCgogICAgU21hbGwgZml4IHRvIG01MjgyZXZiCgogICAgVGhpcyBpcyBqdXN0IGEgc21hbGwgZml4IHRvIGdldCB1LWJvb3Qgb24gbTUyODJldmIuCgogICAgU2lnbmVkLW9mZi1ieTogQWxhbiBDYXJ2YWxobyBkZSBBc3NpcyA8YWNhc3Npc0BnbWFpbC5jb20+Cgpjb21taXQgZmViZDdlNDE3NGU1NDU3OWM5YWExNjVjODVjNTE5ZmU1Mjg4ZjlkMgpBdXRob3I6IEFydGVtIEJpdHl1dHNraXkgPEFydGVtLkJpdHl1dHNraXlAbm9raWEuY29tPgpEYXRlOglGcmkgTWFyIDI3IDEwOjIxOjE0IDIwMDkgKzAxMDAKCiAgICBVQklGUzogYWRkIFIvTyBjb21wYXRpYmlsaXR5CgogICAgTm93IFVCSUZTIGlzIHN1cHBvcnRlZCBieSB1LWJvb3QuIElmIHdlIGV2ZXIgZGVjaWRlIHRvIGNoYW5nZSB0aGUKICAgIG1lZGlhIGZvcm1hdCwgdGhlbiBwZW9wbGUgd2lsbCBoYXZlIHRvIHVwZ3JhZGUgdGhlaXIgdS1ib290cyB0bwogICAgbW91bnQgbmV3IGZvcm1hdCBpbWFnZXMuIEhvd2V2ZXIsIHZlcnkgb2Z0ZW4gaXQgaXMgcG9zc2libGUgdG8KICAgIHByZXNlcnZlIFIvTyBmb3J3YXJkLWNvbXBhdGliaWxpdHksIGV2ZW4gdGhvdWdoIHRoZSB3cml0ZQogICAgZm9yd2FyZC1jb21wYXRpYmlsaXR5IGlzIG5vdCBwcmVzZXJ2ZWQuCgogICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHN1cGVyLWJsb2NrIGZpZWxkIHdoaWNoIHN0b3JlcyB0aGUKICAgIFIvTyBjb21wYXRpYmlsaXR5IHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQXJ0ZW0gQml0eXV0c2tpeSA8QXJ0ZW0uQml0eXV0c2tpeUBub2tpYS5jb20+CiAgICBBY2tlZC1ieTogQWRyaWFuIEh1bnRlciA8QWRyaWFuLkh1bnRlckBub2tpYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODUyZGJmZGQ1NmY2OGViNjdkMTM4YjMwNmE2NGU0ZGU1OGRhYmI5MQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE1hciAyMyAyMjoyNzozNCAyMDA5IC0wNDAwCgogICAgbW9yZSBjb21tYW5kIHVzYWdlIGNsZWFudXAKCiAgICBGaXggdXAgYSBmZXcgZGFuZ2xpbmcgY29tbWFuZHMgbGlrZSBpbiAiQ29tbWFuZCB1c2FnZSBjbGVhbnVwIiBjb21taXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI5M2IyNGJmNzZmOGE4MjIwYjIzNmRmM2E1ZjMwYjIyMDRlYjRlZGMKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CU1vbiBNYXIgMjMgMTI6MDY6MDcgMjAwOSArMDEwMAoKICAgIFNlcGFyYXRlIG10ZHBhcnRzIGNvbW1hbmQgZnJvbSBqZmZzMgoKICAgIE9uIFRodSwgTWFyIDE5LCAyMDA5IGF0IDAxOjMwOjM2UE0gKzAxMDAsIFN0ZWZhbiBSb2VzZSB3cm90ZToKICAgID4gQ3VycmVudGx5IHRoZSBtdGRwYXJ0cyBjb21tYW5kcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGpmZnMyIGNvbW1hbmQgc3VwcG9ydC4KICAgID4gVGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UgYW55bW9yZSBzaW5jZSBvdGhlciBjb21tYW5kcyAoZS5nLiBVQkkpIHVzZSB0aGlzCiAgICA+IGluZnJhc3RydWN0dXJlIGFzIHdlbGwgbm93LiBUaGlzIHBhdGNoIHNlcGFyYXRlcyB0aGUgbXRkcGFydHMgY29tbWFuZHMgZnJvbQogICAgPiB0aGUgamZmczIgY29tbWFuZHMgbWFraW5nIGl0IHBvc3NpYmxlIHRvIG9ubHkgc2VsZWN0IG10ZHBhcnRzIHdoZW4gbm8gSkZGUzIKICAgID4gc3VwcG9ydCBpcyBuZWVkZWQuCgogICAgLi4uIGFuZCB0byBtYWtlIGl0IHVzZWZ1bCBmb3IgTkFORCBjaGlwcyBhcyB3ZWxsLCB3ZSBzaG91bGQgYWxzbyByZW1vdmUgbm93CiAgICB1bnJlbGF0ZWQgQ09ORklHX0pGRlMyX05BTkQuIE5vdGUgdGhhdCBzdHJ1Y3QgcGFydF9pbmZvIGV0YyBpcyBpbgogICAgamZmczIvbG9hZF9rZXJuZWwuaCB3aGljaCBpcyBhIGJpdCBtaXNsZWFkaW5nIGZpbGVuYW1lIGZvciB0aGF0IHB1cnBvc2UsCiAgICBidXQgdGhhdCBjYW4gYmUgZml4ZWQgbGF0ZXIgKHRtKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiAgTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKY29tbWl0IGIxOTZjYTc1NTAzY2UzMDdjNTM1Yjg3YmY0N2Q1MWYwNWU3NTMwZGYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBNYXIgMjIgMjI6MTg6MDEgMjAwOSAtMDQwMAoKICAgIHNtYzkxMTExX2VlcHJvbTogbW92ZSBib2FyZC1zcGVjaWZpYyBpbml0IGludG8gU01DOTExMTFfRUVQUk9NX0lOSVQoKQoKICAgIFJhdGhlciB0aGFuIHN0aWNraW5nIEJsYWNrZmluLXNwZWNpZmljIHN0dWZmIGludG8gdGhlIGVlcHJvbSBleGFtcGxlLCB1c2UKICAgIGFuIGluZGlyZWN0IG1hY3JvIHNvIHRoYXQgYW55IGJvYXJkIGNhbiBvdmVycmlkZSBpdCB3aXRoIHRoZWlyIG93biBtYWdpYwogICAgc2F1Y2UgaW4gdGhlaXIgYm9hcmQgY29uZmlnIGZpbGUuCgogICAgQWxzbyBmaXggc29tZSBzcHVyaW91cyBzZW1pLWNvbG9ucyBpbiBkZWZpbmVzIHdoaWxlIEknbSBhdCBpdCAuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmNWNmMmVmMmFkMmE4YmYzMjE3MTJhYjQ2MGVkODQ2MTIwMTYzZDc0CkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTYXQgTWFyIDIxIDA5OjM4OjQ2IDIwMDkgLTA0MDAKCiAgICBtcGM1Mnh4IHBoeTogaW5pdGlhbGl6ZSBvbmx5IHdoZW4gbmVlZGVkCgogICAgRG8gbm90IGluaXRpYWxpemUgcGh5IG9uIHN0YXJ0dXAsIGluc3RlYWQgaW5pdGlhbGl6ZSBpdAogICAgd2hlbiB3ZSBhY3R1YWxseSBuZWVkIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KCmNvbW1pdCAwM2JhYjAwOTE5NDgxOTZiOTU1ODI0ODY4NGMwNGY2MDk0M2NhNGI1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIE1hciAzMCAxNjo1MTo0MCAyMDA5ICswMjAwCgogICAgYXQ5MXNhbTkyNjNlazogZW5hYmxlIGh1c2ggYW5kIGF1dG8gY29tcGxldGUgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBBY2tlZC1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA0NzU4ZWJkZDUzNTcxZDRkMTgzYmU1YzJkYjhmMGVlNGVmMzY4OTE1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE1hciAyNyAyMzoyNjo0NCAyMDA5ICswMTAwCgogICAgYXQ5MTogbW92ZSBkYXRhZmxhc2ggc3BpIGRyaXZlciB0byBkcml2ZXJzL3NwaQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmI3MTc4YWZjZTU5ZjcxZTk1ZGE2NTcyNzNmNDEzMjAxMjA5OGMxZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBNYXIgMjcgMjM6MjY6NDQgMjAwOSArMDEwMAoKICAgIGF0OTE6IG1vdmUgdXNiIGRyaXZlciB0byBkcml2ZXJzL3VzYgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjgyNTE4ZDdmNDQzZWJhYzVmODgyMTEwM2EzYzUyMWM5NjNhYTZlZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBNYXIgMjcgMjM6MjY6NDMgMjAwOSArMDEwMAoKICAgIGF0OTFybTkyMDA6IFJlc2V0IHVwZGF0ZQoKICAgIFVwZGF0ZSB0aGUgcm05MjAwIHJlc2V0IHNlcXVlbmNlIHRvIHRyeSBleGVjdXRpbmcgYSBib2FyZC1zcGVjaWZpYyByZXNldAogICAgZnVuY3Rpb24gYW5kIG1vdmUgc3BlY2lmaWMgYm9hcmQgcmVzZXQgdG8gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzNTI0MDQ5Y2QwNTM3NDYyOThlNGNmYWIyNDQ5ODgyZTc1YzE0NmZjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE1hciAyNyAyMzoyNjo0MyAyMDA5ICswMTAwCgogICAgYXQ5MXJtOTIwMDogbW92ZSBzZXJpYWwgc2h1dGRvd24gY29kZSB0byBzZXJpYWwgZHJpdmVycwoKICAgIGludHJvZHVjZSBzZXJpYWxfZXhpdCBmb3IgdGhpcyBwdXJwb3NlLiBVc2UgaXQgb25seSB3aGVuIHRoZSBybTkyMDAKICAgIHNlcmlhbCBkcml2ZXIgaXMgYWN0aXZlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiZWViZDg1MWNkYmM5ZGQwNzBiY2RmZWMxZmQ4ZjE3ZTNjYzkxYmMwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE1hciAyNyAyMzoyNjo0MyAyMDA5ICswMTAwCgogICAgYXQ5MXJtOTIwMDogbW92ZSBzZXJpYWwgZHJpdmVyIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgYWRkIENPTkZJR19BVDkxUk05MjAwX1VTQVJUIHRvIGFjdGl2YXRlIHRoZSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGNiODJhNTMyNjY5ZjZiMDIyMjVlYzM0MjllYTRkNDlmZjJiOTdkMGEKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1hciAyNyAyMzoyNjo0MyAyMDA5ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBBVDkxUk05MjAwRUsgQm9hcmQuCgogICAgVGhlIEFUOTFSTTkyMDAtRUsgRXZhbHVhdGlvbiBCb2FyZCBzdXBwb3J0cyB0aGUgQVQ5MVJNOTIwMAogICAgQVJNOS1iYXNlZCAzMi1iaXQgUklTQyBtaWNyb2NvbnRyb2xsZXIgYW5kIGVuYWJsZXMgcmVhbC10aW1lIGNvZGUgZGV2ZWxvcG1lbnQKICAgIGFuZCBldmFsdWF0aW9uLgoKICAgIEhlcmUgaXMgdGhlIGNoaXAgcGFnZSBvbiBBdG1lbCB3ZWJzaXRlOgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL3Rvb2xzX2NhcmQuYXNwP3Rvb2xfaWQ9MzUwNwoKICAgIHdpdGgKCS0gTk9SIChjZmkgZHJpdmVyKQoJLSBEYXRhRmxhc2gKCS0gVVNCIE9IQ0kKCS0gTmV0CgktIEkyQyAoaGFyZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYjljMGU0YzI5ZTNlYzEyNjY4YWM1MGU5NTRlN2M5YmE4ZjdhYTEwYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBNYXIgMjcgMjM6MjY6NDIgMjAwOSArMDEwMAoKICAgIGFkZCBkYXRhZmxhc2ggbW1jIG11eCBtaXNzaW5nIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDJhMzI1Y2UzYzcwNWFiMmQ4Mjc2MGFmYzU0MWM1MTEzMjg0NzJkZjgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgTWFyIDI3IDIzOjI2OjQyIDIwMDkgKzAxMDAKCiAgICBhdDkxcm05MjAwZGs6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkwYTkyYTcwOGQ1MTgwYTIwZDYwMGJhMGZjMjM1MmVjNzZkYzM4MjkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgTWFyIDI3IDIzOjI2OjQyIDIwMDkgKzAxMDAKCiAgICBhdDkxOiByZW5hbWUgREFUQUZMQVNIX01NQ19TRUxFQ1QgdG8gQ09ORklHX0RBVEFGTEFTSF9NTUNfU0VMRUNUCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4NDNhMjY1NGJjZTc0MTkyZGUyYjVhNDM0NzRmZGMyN2E1NzJhYjQwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE1hciAyNyAyMzoyNjo0MiAyMDA5ICswMTAwCgogICAgYXQ5MXNhbTk6IGFkZCB3YXRjaGRvZyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJyZUBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGE0NzQ5MmFjNjA2NTdkZDlkNTljNzEzYWEwNDkzMTllYTZlYWJkNTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgTWFyIDI3IDEzOjE0OjUyIDIwMDkgKzAxMDAKCiAgICBhdDkxc2FtOS9hdDkxY2FwOiBzcGkgaW5pdCBhZGQgaGFyZHdhcmUgY2hpcCBzZWxlY3Qgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjY5MzJhYzM5MjljN2ExNDVhNmVmNjU3NGE5NmZkNzUzNTE1NDk1MQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBcHIgNCAxOToxNTo0MCAyMDA5ICswMjAwCgogICAgbmV0c3RhcjogZml4IGNyYzMyLmMgZGVwZW5kYW5jeSBsb2NhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDJmOWViZmYyZjc1OGJlZjUyNDc4MGEwMGM3MTJlYjYzYTcyZDk5YgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDMgMTU6MjQ6NDAgMjAwOSAtMDUwMAoKICAgIE1QQzgyNjBBRFM6IERlZmluZSBDT05GSUdfSEFTX0VUSDAuCgogICAgVGhpcyBpcyByZXF1aXJlZCBzbyB0aGF0IHRoZSBNQUMgYWRkcmVzcyB3aWxsIGJlIHVwZGF0ZWQgaW4gdGhlIGRldmljZSB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3MDFlY2VmZmRmNzdlMjkwOGQwYjU4YWRkMGRhYmMxNmVkZjYwODcKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAzIDE1OjI2OjQ1IDIwMDkgLTA1MDAKCiAgICBQUTJGQURTOiBFbmFibGUgUENJLgoKICAgIFBDSSBvbiBQUTJGQURTIGlzIHZlcnkgc2ltaWxhciB0byBQQ0kgb24gTVBDODI3MkFEUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4Mzg2M2RmMDRiZDMwYmZlMjQzMGIwYzQzY2E5Zjc4NTk2ZDNmMGJjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciA0IDE2OjU3OjUwIDIwMDkgKzAyMDAKCiAgICBGaXggcXVvdGluZyBidWcgaW50cm9kdWNlZCBieSBjb21taXQgNzRkZTdhZWYKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGVjZjNmYjIyM2E1NmUzYzZhYTY5NmQ5NGQ2OTRlZWFjYTBmNDRkMzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDQgMTY6MTQ6NTEgMjAwOSArMDIwMAoKICAgIEZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnaHRvbnMnCgogICAgSW5jbHVkZSA8bmV0aW5ldC9pbi5oPiBpbnN0ZWFkIG9mIDxsaW51eC9pbi5oPiB0byBnZXQgaHRvbnMoKQogICAgcHJvdG90cHllLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTZhNjc4OWY0MWYwNTYwY2UyODAwODlmYmQzZjFiZDBmMGY2NDMwNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBBcHIgNCAxMDoyMTowMiAyMDA5IC0wNTAwCgogICAgZnNsX2xhdzogRml4IGJ1ZyBpbiBjYWxjdWxhdGlvbiBvZiBMQVcgc2l6aW5nCgogICAgSW4gc2V0X2Rkcl9sYXdzKCkgd2hlbiB3ZSBkZXRlcm1pbmVkIGhvdyBtdWNoIG9mIHRoZSBzaXplIHJlcXVlc3RlZAogICAgdG8gYmUgbWFwcGVkIHdhcyBjb3ZlcmVkIGJ5IHRoZSB0aGUgZmlyc3QgTEFXIHdlIG5lZWRlZCB0byByZWNhbGN1bGF0ZQogICAgdGhlIHNpemUgYmFzZWQgb24gd2hhdCB3YXMgYWN0dWFsbHkgbWFwcGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzIwNDliNDA0OGZmOGU1OWJkNWJhNjE2MGQ2ZDUyMDZkMjgzYjJhMgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBcHIgMiAxMzo1NzowNSAyMDA5IC0wNTAwCgogICAgZnNsX3BjaTogTW92ZSBwcm90b3R5cGVzIGludG8gZnNsX3BjaS5oIGFuZCByZW1vdmUgZXhwbGljaXQgZXh0ZXJucwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzg1MTQ2MjJlMjcxM2Q5YzQ3OTE5YWNmZTIzZmNlMzg2NzgyYWZlNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBcHIgMiAxMzoyMjo0OCAyMDA5IC0wNTAwCgogICAgZnNsX3BjaTogUmVuYW1lZCBpbW1hcF9mc2xfcGNpLmggdG8gZnNsX3BjaS5oCgogICAgUmVuYW1lIHRoZSBwY2kgaGVhZGVyIGZvciBGU0wgSFcgc28gd2UgY2FuIG1vdmUgc29tZSBwcm90b3R5cGVzCiAgICBpbiB0aGVyZSBhbmQgc3RvcCBkb2luZyBleHBsaWNpdCBleHRlcm5zCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhZmNiY2UwN2U5MzIzYzBlOGFlYjc4M2JhN2NlNjEwNDg2MGZkN2E3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciA0IDE2OjEwOjQwIDIwMDkgKzAyMDAKCiAgICBGaXggYnVpbGRpbmcgb2YgZW52X2VtYmVkZGVkLm8KCiAgICBTaW5jZSBjb21taXQgYTcwNmJmYzcgY29tbW9uL2Vudl9lbWJlZGRlZC5vIGFuZCB0b29scy9lbnZjcmMgd2VyZQogICAgb25seSBidWlsdCB3aGVuIENPTkZJR19FTlZfSVNfRU1CRURERUQgd2FzIHNldCwgYnV0IHRoaXMgYnJlYWtzCiAgICBidWlsZGluZyBmb3IgbWFueSBib2FyZHMuCgogICAgV2UgYWx3YXlzIGhhdmUgdG8gYnVpbGQgdGhlc2UgZmlsZXMgd2hlbiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIIGlzCiAgICBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhMzFlMDkxYWQ3MDkxNTI3OGZiMTViNzlkNmFlNTNlYTJkNDRiMjUxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEFwciA0IDEyOjQ5OjExIDIwMDkgKzAyMDAKCiAgICByZW5hbWUgaW5jbHVkZS96bGliLmggdG8gaW5jbHVkZS91LWJvb3QvemxpYi5oCgogICAgU29tZSBzeXN0ZW1zIGhhdmUgemxpYi5oIGluc3RhbGxlZCBpbiAvdXNyL2luY2x1ZGUvLiBUaGlzIGlzbid0IHRoZQogICAgZGVzaXJlZCBmaWxlIGZvciB1LWJvb3QgY29kZSAtIHdlIHdhbnQgdGhlIG9uZSBpbiBpbmNsdWRlL3psaWIuaC4KICAgIFRoaXMgcmVuYW1lIHdpbGwgYXZvaWQgdGhlIGNvbmZsaWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYWU2NDRjMTc4ZjA5Nzg3NGE5MmE2ZDkzNGYzNjQ5ODVmYzdlMDc1YQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBcHIgNCAxMjo0NjozMSAyMDA5ICswMjAwCgogICAgdG9vbHMvTWFrZWZpbGU6IGZpeCBpbWFnZS5jIGRlcGVuZGFuY3kgbG9jYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGIwNzRhNzA4MTEyNGQ3ZjA1ZmQxNjUxYTNiYzBiNTU3OWZkZmE0NzMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBBcHIgNCAwNzo0MjoyNSAyMDA5IC0wNDAwCgogICAgdG9vbHM6IGFkZCBuY2IgdG8gZ2l0aWdub3JlCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQ1M2MwZDc1NTgyMTVjYmM4NjM2ZDk0YWYxNzI4ODZkODRlMGRiYmEKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAzIDE2OjQ1OjQ2IDIwMDkgKzAyMDAKCiAgICBpbmNsdWRlL25zMTY1NTAuaDogVW5pZnkgc3RydWN0dXJlIGRlY2xhcmF0aW9uIGZvciByZWdpc3RlcnMKCiAgICBJbnN0ZWFkIG9mIHNwZWNpYWwgY2FzaW5nIHRoZSBkaWZmZXJlbnQgYWNjZXNzIHBhdHRlcm5zLCB1c2UgY29tbW9uCiAgICBjb2RlIHdpdGggbGlnaHQgbWFjcm9zIHNwcmlua2xlZCBpbiB0byBhY2NvbW9kYXRlIGZvciB0aGUgZGlmZmVyZW50CiAgICBsYXlvdXRzIG9mIHRoZSByZWdpc3RlciBzdHJ1Y3R1cmUuCgogICAgTm90ZSB0aGF0IHRoaXMgYWxzbyBjaGFuZ2VzIHRoZSB0eXBlcyBvZiB0aGUgcmVnaXN0ZXJzIGZvciB0aGUKICAgICJwb3NpdGl2ZWx5IHBhY2tlZCAoPjEpIiBjYXNlcy4gIEFzIHRoZSByZWdpc3RlcnMgdHJ1bHkgYXJlIHVuc2lnbmVkCiAgICBjaGFycywgdGhpcyBpcyBzdXJlbHkgdGhlIFJpZ2h0IFRoaW5nLCBidXQgaXQgaXMgYSBzZW1hbnRpYyBjaGFuZ2UuCiAgICBOb3RlIHRoYXQgZm9yIHRoaXMgY2FzZSBkZXBlbmRpbmcgb24gdGhlIGVuZGlhbm5lc3Mgb24gdGhlIGJ1cywgd2UgbWF5CiAgICBzZWUgYSBjaGFuZ2Ugb2YgYmVoYXZpb3VyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDBhMTQ1Y2U2ZTcwNzVhYTBmNDg2OWQ2ZjYxNDlhNWZmMjA1ZDk1ZGYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjUyIDIwMDkgLTA1MDAKCiAgICBEZWxldGUgbm93IHVudXNlZCB0b29scy9NYWtlZmlsZS53aW4zMgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgMmY4ZDM5NmI5MzAyZWRkY2Q4ZDU1MjY0OGUxMDFhNDZiN2E4MGFjZApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6NTEgMjAwOSAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBidWlsZGluZyBuYXRpdmUgd2luMzIgdG9vbHMKCiAgICBBZGQgc3VwcG9ydCBmb3IgY29tcGlsaW5nIHRoZSBob3N0IHRvb2xzIGluIHRoZSB0b29scyBkaXJlY3RvcnkgdXNpbmcKICAgIHRoZSBNaW5HVyB0b29sY2hhaW4uICBUaGlzIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdoaWNoIGNhbiBiZSB1c2VkIG9uCiAgICBzdGFuZGFyZCBXaW5kb3dzIGNvbXB1dGVycyB3aXRob3V0IHJlcXVpcmluZyBjeWd3aW4uCgogICAgT25lIG11c3Qgc3BlY2lmeSB0aGUgTWluR1cgY29tcGlsZXIgYW5kIHN0cmlwIHV0aWxpdGllcyBhcyBpZiB0aGV5CiAgICB3ZXJlIHRoZSBob3N0IHRvb2xjaGFpbiBpbiBvcmRlciB0byBidWlsZCB3aW4zMiBleGVjdXRhYmxlcywgZWc6CgogICAgbWFrZSBIT1NUQ0M9aTU4Ni1taW5ndzMybXN2Yy1nY2MgSE9TVFNUUklQPWk1ODYtbWluZ3czMm1zdmMtc3RyaXAgdG9vbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGU1MGFiZjY2MmVmYmY0Y2UwZTczMTA2MmM4ZDNjOGVjNTQ3NjNhZTIKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjUwIDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogU2ltcGxpZnkgSE9TVF9DRkxBR1MvSE9TVF9MREZMQUdTIGdlbmVyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGIwZDRkNzIxOWE0ODA2ZTQ2YWZmYzk2YmQxZjY1Mzk3MTk0YTZlNzIKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjQ5IDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogQ3JlYXRlIGdlbmVyaWMgYnVpbGQgcnVsZXMKCiAgICBDcmVhdGUgYSBmZXcgZ2VuZXJpYyBidWlsZCBydWxlcyB0byByZXBsYWNlIHRoZSBjdXJyZW50IG1ldGhvZCB3aGljaCBoYXMKICAgIDEgYnVpbGQgdGFyZ2V0IGZvciBlYWNoIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDI3MzE3NGRkYmNjZTIxNWM0MmY2YzMwNzQ3MGNkNTU4MGEzZjcyYmYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjQ4IDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogVXNlIGF1dG8tZ2VuZXJhdGVkIG9iamVjdCBmaWxlIGRlcGVuZGVuY2llcwoKICAgIEZpbGVzIGluIHRoZSBTUkNTIHZhcmlhYmxlIGhhdmUgdGhlaXIgZGVwZW5kZW5jaWVzIGF1dG9tYXRpY2FsbHkKICAgIGdlbmVyYXRlZCBzbyByZW1vdmUgZHVwbGljYXRlIGV4cGxpY2l0IGRlcGVuZGVuY2llcwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZmI4YjMzYzFlNmQ2MjFlYTMzNDdhNzVhZDNhNDJhMzg2YjQ0ZTU4OQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6NDcgMjAwOSAtMDUwMAoKICAgIHRvb2xzL01ha2VmaWxlOiBSZW1vdmUgc3ltbGlua3MgZm9yIHJlbWFpbmluZyBzb3VyY2UgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGVlZDA3MzMxNWI2NDQ3ZWNlYWRmNzQ2OGE0YzJiNzU3NDQyYzdjNmYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjQ2IDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogRHluYW1pY2FsbHkgZ2VuZXJhdGUgbGliZmR0IG9iamVjdCBkZXBlbmRlbmNpZXMKCiAgICBBZGQgdGhlIGxpYmZkdCBmaWxlcyB0byB0aGUgU1JDUyB2YXJpYWJsZSBzbyB0aGF0IHRoZXkgaGF2ZSB0aGVpcgogICAgZGVwZW5kZW5jaWVzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBjMDE3MDE3NTM5M2I5NDU2MGZhN2E1ZGE2ZGQzMTM3N2RmNWY0YTcyCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDo0NSAyMDA5IC0wNTAwCgogICAgdG9vbHMvTWFrZWZpbGU6IFJlbW92ZSBzeW1saW5rcyBmb3IgZmR0IHRhcmdldHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDQ1ZDZiZGZmNjg4NzdlYTIxNGZmMzNjYzFjODlhMjljNzZlOTZmNTEKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjQ0IDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogQWRkIGxpYmZkdC8gdG8gdGhlIGluY2x1ZGUgc2VhcmNoIHBhdGgKCiAgICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgcHJvY2VzcyBvZiBzeW1saW5raW5nIGxpYmZkdF9pbnRlcm5hbC5oCiAgICB1bm5lY2Vzc2FyeQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZmJhMGUzYTA4MTRmOWJmNDhjMzJhNGM4YTc5ODdjMzZhZTk2NjUxYgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6NDMgMjAwOSAtMDUwMAoKICAgIHRvb2xzOiBSZW1vdmUgdW5lY2Vzc2FyeSBzeW1saW5raW5nIG9mIHpsaWIuaAoKICAgIGNyYzMyLmMgdXNlcyB0aGUgemxpYi5oIGhlYWRlciBpbiBpbmNsdWRlL3UtYm9vdC96bGliLmguICBUaGUgc3ltbGluawogICAgd2FzIHByZXZpb3VzbHkgbmVjZXNzYXJ5IHRvIGdpdmUgVS1Cb290J3MgdmVyc2lvbiBvZiB6bGliLmggcHJlY2VkZW5jZQogICAgb3ZlciB0aGUgaG9zdCBjb21wdXRlcidzIHZlcnNpb24gb2YgemxpYi5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNDBiOGQ5MDlhY2UwNmY2ZjQ5NGRlZTA4ZmZhNjRhODI0OTNlNzJlOQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6NDIgMjAwOSAtMDUwMAoKICAgIHRvb2xzL01ha2VmaWxlOiBBZGQgdG9vbHMvIHRvIHRoZSBpbmNsdWRlIHNlYXJjaCBwYXRoCgogICAgVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIHByb2Nlc3Mgb2Ygc3ltbGlua2luZyBta2ltYWdlLmggYW5kIGZkdF9ob3N0LmgKICAgIHVubmVjZXNzYXJ5CgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCAxY2QzMDBkZTVlMTljOWU4MzgzZWUyZWIyYjZiZDNiOGI5Mzc4Yzc4CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDo0MSAyMDA5IC0wNTAwCgogICAgdG9vbHMvTWFrZWZpbGU6IENvbXBpbGUgbmNiIHdoZW4gQ09ORklHX05FVENPTlNPTEUKCiAgICBBbHNvIGNvbmRpdGlvbmFsbHkgYWRkIG5jYi5vIHRvIE9CSl9GSUxFUyBsaXN0CgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCAxMjNjNDhhMjFjZTA4YjRhMzNmMzZlOTZjYzc1ZjkyMzI0ZTc2MWQ3CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDo0MCAyMDA5IC0wNTAwCgogICAgdG9vbHMvTWFrZWZpbGU6IE1ha2UgZ2VuX2V0aF9hZGRyIGRlcGVuZGVudCB1cG9uIENPTkZJR19DTURfTkVUCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA0ZDkzYTBhODA3YjhjYTAyODliYTVkYTAwYzY0NmNkMmQ1NGFmMTIwCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDozOSAyMDA5IC0wNTAwCgogICAgdG9vbHMvTWFrZWZpbGU6IE1ha2UgZW52Y3JjIGRlcGVuZGVudCB1cG9uIENPTkZJR19FTlZfSVNfRU1CRURERUQKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGNkMjZhMzFhMjNmOWE1OGJhNTI4NzBmOGZmYjU3ZDc3ZDFiYWVlMjAKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjM4IDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogTWFrZSBpbmNhLXN3YXAtYnl0ZXMgZGVwZW5kZW50IG9uIENPTkZJR19JTkNBX0lQCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA3Y2Q1Y2JjMzQ2OTljY2MxNWQwMjc3ZjQ4Mzc1Y2FkOTI4ZDA0ZmFmCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDozNyAyMDA5IC0wNTAwCgogICAgdG9vbHMvTWFrZWZpbGU6IE1ha2UgdWJzaGExIGRlcGVuZGVudCB1cG9uIENPTkZJR19TSEExX0NIRUNLX1VCX0lNRwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZWViYTg2MTc5MDhlMzNmN2U3ZGIzYjE1ODhjMDRjYTY1Yjg1Njc5MwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6MzYgMjAwOSAtMDUwMAoKICAgIHRvb2xzL01ha2VmaWxlOiBNYWtlIGltZzJzcmVjIGRlcGVuZGVudCB1cG9uIENPTkZJR19DTURfTE9BRFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDMzNWZmZTdlMGUwYTMwZTkwY2U0MDljMzI3OTAxNmE1ODIxNTdkOGUKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjM1IDIwMDkgLTA1MDAKCiAgICB0b29scy9NYWtlZmlsZTogQnVpbGQgYm1wX2xvZ28gb25seSB3aGVuIExDRCBvciBWSURFTyBsb2dvcyBhcmUgZW5hYmxlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZWUzNTg0YTU5NzAyMzBlZTk2YWFlMTk1MDVhZDMyMjY3MzRlZTRmZgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6MzQgMjAwOSAtMDUwMAoKICAgIHRvb2xzL01ha2VmaWxlOiBTcGxpdCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaW50byBtdWx0aXBsZSBsaW5lcwoKICAgIFNwbGl0IHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbnRvIG11bHRpcGxlIGxpbmVzIGFuZCB1c2UgdGhlIHN0YW5kYXJkCiAgICBWQVIteSBjb252ZW50aW9uLiAgQWxzbyBtb3ZlIG9iamVjdCBhbmQgYmluYXJ5IHZhcmlhYmxlIGRlY2xhcmF0aW9ucyB0bwogICAgYWZ0ZXIgY29uZmlnLm1rIGhhcyBiZWVuIGluY2x1ZGVkIHRvIGFsbG93IGZvciB0aGVzZSBsaXN0cyB0byB1dGlsaXplCiAgICB0aGUgQ09ORklHX1hYWCB2YXJpYWJsZXMuCgogICAgVGhlc2UgY2hhbmdlcyBsYXkgdGhlIGdyb3VuZHdvcmsgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIGZpbGVzCiAgICBpbiB0aGUgdG9vbHMgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgMjFkMjhlOTVlZDg3NGFiMWVkOTc4N2Y5MzlkOGE1M2U5OWQzMGRkYgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6MzMgMjAwOSAtMDUwMAoKICAgIHRvb2xzL01ha2VmaWxlOiBSZW1vdmUgaW5hcHByb3ByaWF0ZSBkb3VibGUtdGFicwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNjUyZjRiYTA3NjY4OWZkMGFjZDQ0NzU2MWE3NzdiMWM0NDBhNGI1NwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTg6NTQ6MzIgMjAwOSAtMDUwMAoKICAgIHRvb2xzL01ha2VmaWxlOiBSZW1vdmUgSE9TVEFSQ0ggSE9TVE9TIGRlZmluZXMKCiAgICBUaGUgdmFsdWVzIG9mIEhPU1RBUkNIIGFuZCBIT1NUT1Mgd2hpY2ggYXJlIGV4cG9ydGVkIGZyb20gdGhlIHRvcC1sZXZlbAogICAgTWFrZWZpbGUgc2hvdWxkIGJlIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDJlZWI0ZTk1ZmJmYWZlNTQ2NDVmYWU3ZWMwYjI1OTQxMDFmMDU3M2IKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjMxIDIwMDkgLTA1MDAKCiAgICBnZW5fZXRoX2FkZHI6IFVzZSBQT1NJWCByYW5kKCkgYW5kIHNyYW5kKCkKCiAgICBSZXBsYWNlIHJhbmRvbSgpL3NyYW5kb20oKSB1c2Ugd2l0aCByYW5kKCkvc3JhbmQoKSB0byBzdXBwb3J0CiAgICBjb21waWxhdGlvbiB3aXRoIHRoZSBtaW5ndyB0b29sY2hhaW4uICBUaGUgcmFuZCgpL3NyYW5kKCkgZnVuY3Rpb25zIGFyZQogICAgZ2VuZXJhbGx5IG1vcmUgY29tbW9uIGFuZCBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gdGhlIG9yaWdpbmFsCiAgICByYW5kb20oKS9zcmFuZG9tKCkgY2FsbHMuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCAyNGQyYWU1ZTlkZWJlNGI3NTE1MWE1NTI1MTAzMWExNDQ3N2ZhODc1CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDoyOCAyMDA5IC0wNTAwCgogICAgZWxmLmg6IFVzZSBzdGRpbnQuaCB0byBwcm92aWRlIHN0YW5kYXJkIHR5cGVkZWZzIGZvciBXSU4zMgoKICAgIFRoZSBvcmlnaW5hbCBjb2RlIHByb3ZpZGVkIGFuIGluY29tcGxldGUgc2V0IG9mIHR5cGVkZWZzIGZvciBXSU4zMgogICAgY29tcGlsZXMgYW5kIHJlcGxpY2F0ZWQgdGhlIHN0YW5kYXJkIHR5cGVkZWZzIHRoYXQgYXJlIGFscmVhZHkKICAgIHByb3ZpZGVkIGJ5IHN0ZGludC5oCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBhNzA2YmZjN2QwZTJkMTkzNWM1NjcwMDQ1Mjg4ZTZjZDFmZmRmYWJjCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDoyNyAyMDA5IC0wNTAwCgogICAgY29tbW9uL01ha2VmaWxlOiBDb25kaXRpb25hbGx5IGNvbXBpbGUgZW52X2VtYmVkZGVkLm8KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDJiNDhmN2Q1ZjYyODM1Zjg3Mjc4ZWZiNDk4Mzk3YjZhZTllMmQxMTcKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgTWFyIDEzIDE4OjU0OjI2IDIwMDkgLTA1MDAKCiAgICBNYWtlZmlsZTogQWRkIHJlbW92YWwgb2YgKi5leGUgZmlsZXMgdG8gY2xlYW4gdGFyZ2V0CgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBkMGQ2MTQ0ZTBlNGEwM2E2ODMxMWI3ODFmM2RkZTM4ZGM5MzE2YjgyCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE1hciAxMyAxODo1NDoyNSAyMDA5IC0wNTAwCgogICAgTWFrZWZpbGU6IE1ha2UgYXV0b2NvbmYubWsgYSBkZXBlbmRlbmN5IG9mIHRoZSBkZXBlbmQgdGFyZ2V0CgogICAgVGhlIG9yaWdpbmFsIGNvZGUgZGlkIG5vdCBnZW5lcmF0ZSBhdXRvY29uZi5tayB1bnRpbCBhZnRlciBzb21lIHRhcmdldHMKICAgIGRlcGVuZGVuY2llcyBoYWQgYWxyZWFkeSBiZWVuIGNhbGN1bGF0ZWQsIGZvciBleGFtcGxlIHRoZSBkaXJlY3RvcmllcyBpbgogICAgdGhlIFNVQkRJUlMgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDc1ZWI4MmVjN2NhY2IxOGQwNTlkNzAxYjM1Njc3YjkzZDJiYjc1OTYKQXV0aG9yOiB1bnNpayBLaW0gPGRvbmFyaTc1QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEZlYiAyNSAxMTozMToyNCAyMDA5ICswOTAwCgogICAgbWZsYXNoOiBJbml0aWFsIG1mbGFzaCBzdXBwb3J0CgogICAgTWZsYXNoIGlzIGZ1c2lvbiBtZW1vcnkgZGV2aWNlIG1haW5seSB0YXJnZXRlZCBjb25zdW1lciBlbGV0cm9uaWMgYW5kCiAgICBtb2JpbGUgcGhvbmUuCiAgICBJbnRlcm5hbGx5LCBpdCBoYXZlIG5hbmQgZmxhc2ggYW5kIG90aGVyIGhhcmR3YXJlIGxvZ2ljcyBhbmQgc3VwcG9ydHMKICAgIHNvbWUgZGlmZmVyZW50IG9wZXJhdGlvbiAoQVRBLCBJTywgWElQKSBtb2Rlcy4KCiAgICBJTyBtb2RlIGlzIGN1c3RvbSBtb2RlIGZvciB0aGUgaG9zdCB0aGF0IGRvZXNuJ3QgaGF2ZSBJREUgaW50ZXJmYWNlLgogICAgKE1hbnkgbW9iaWxlIHRhcmdldGVkIFNvQyBkb2Vzbid0IGhhdmUgSURFIGJ1cykKCiAgICBUaGlzIGRyaXZlciBzdXBwb3J0IG1mbGFzaCBJTyBtb2RlLgoKICAgIEZvbGxvd2luZ3MgYXJlIGJyaWVmIGRlc2NyaXB0aW9ucyBhYm91dCBJTyBtb2RlLgoKICAgIDEuIElPIG1vZGUgYmFzZWQgb24gQVRBIHByb3RvY29sIGFuZCB1c2VzIHNvbWUgY3VzdG9tIGNvbW1hbmQuIChyZWFkCiAgICAgICBjb25maXJtLCB3cml0ZSBjb25maXJtKQogICAgMi4gSU8gbW9kZSB1c2VzIFNSQU0gYnVzIGludGVyZmFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiB1bnNpayBLaW0gPGRvbmFyaTc1QGdtYWlsLmNvbT4KCmNvbW1pdCAyMDA3NzllM2UyYTlhZWRhNzAzMGIxNzFhOGMzOWQ3Nzk3MDE5OTE3CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMyAxMTo1MzowMSAyMDA5ICswMjAwCgogICAgUmVuYW1lIGNvbW1vbiBuczE2NTUwIGNvbnN0YW50cyB3aXRoIFVBUlRfIHByZWZpeCB0byBwcmV2ZW50IGNvbmZsaWN0cwoKICAgIEZpeCBwcm9ibGVtcyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgN2I1NjExY2RkMTJjYTBjYzMzZjk5NGYwZDRhNDQ1NDc4OGZjMzEyNCBbaW5rYTR4MDogQWRkIGhhcmR3YXJlCiAgICBkaWFnbm9zaXMgZnVuY3Rpb25zIGZvciBpbmthNHgwXSB3aGljaCByZWRlZmluZWQgTVNSX1JJIHdoaWNoIGlzCiAgICBhbHJlYWR5IHVzZWQgb24gUG93ZXJQQyBzeXN0ZW1zLgoKICAgIEFsc28gZWxpbWluYXRlIHJlZHVuZGFudCBkZWZpbml0aW9ucyBpbiBwczJtdWx0LmguCU1vcmUgY2xlYW51cCB3aWxsCiAgICBiZSBuZWVkZWQgZm9yIG90aGVyIHJlZHVuZGFudCBvY2N1cnJlbmNlcyB0aG91Z2guCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgOTkwNjdiMDhmNGEwY2UyMGZmMzM3YTM1MjExMjM5ZjMzNGQ4ZjQ1MQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDEgMTU6MzM6MjQgMjAwOSAtMDUwMAoKICAgIE5vaXNpbHkgZGlzYWJsZSB0aGUgbGVnYWN5IE5BTkQgc3Vic3lzdGVtLgoKICAgIExlZ2FjeSBOQU5EIGlzIG1hcmtlZCBmb3IgZmVhdHVyZSByZW1vdmFsIGFmdGVyIEFwcmlsIDIwMDkgKGkuZS4gdGhpcwogICAgdXBjb21pbmcgcmVsZWFzZSkuCVRoZXJlIGFyZSBzdGlsbCBzZXZlcmFsIGJvYXJkcyB0aGF0IHJlZmVyZW5jZSBpdAogICAgKHRob3VnaCBtYW55IGRvIHNvIG9ubHkgZm9yIGRpc2stb24tY2hpcCBzdXBwb3J0IHdoaWNoIGhhcyBiZWVuIHNpbGVudGx5CiAgICBkaXNhYmxlZCBmb3IgYSB3aGlsZSBub3cpLglUaGVzZSBib2FyZHMgd2lsbCBub3cgZmFpbCB0byBidWlsZAogICAgd2l0aCAjZXJyb3IsIHRob3VnaCB0aGUgY29kZSBpcyBzdGlsbCB0aGVyZSBpZiB0aGUgdXNlciByZW1vdmVzICNlcnJvci4KCiAgICBUaGUgcGxhbiBpcyB0byByZW1vdmUgdGhlIGNvZGUgb3V0cmlnaHQgaW4gdGhlIG5leHQgcmVsZWFzZSwgYWxvbmcgd2l0aAogICAgYW55IGJvYXJkIGNvZGUgdGhhdCByZWZlcnMgdG8gaXQgKHN1Y2ggYXMgYm9hcmQvZXNkL2NvbW1vbi9hdXRvX3VwZGF0ZS5jKS4KCiAgICBBbHNvLCByZW1vdmUgdGhlIGxlZ2FjeSBOQU5EIEFQSSBkZXNjcmlwdGlvbiBmcm9tIFJFQURNRS5uYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5YmNhYmI1MTY4NmZkZDEzM2NiMTg0OGMwZDNiMGE0ZmM2Y2E1Y2YKQXV0aG9yOiBhcGdtb29ydGh5IDxtb29ydGh5LmFwZ0BzYW1zdW5nLmNvbT4KRGF0ZToJRnJpIE1hciAyNyAxNDo0NToyMyAyMDA5ICswNTMwCgogICAgRml4IE9uZU5BTkQgaXBsIHRvIHJlYWQgQ09ORklHX1NZU19NT05JVE9SX0xFTgoKICAgIEN1cnJlbnRseSBPbmVOQU5EIGluaXRpYWwgcHJvZ3JhbSBsb2FkZXIgKGlwbCkgcmVhZHMgb25seSBibG9jayAwIGllIDEyOEtCLgogICAgSG93ZXZlciwgdS1ib290IGltYWdlIGZvciBhcG9sbG9uIGJvYXJkIGlzIDE5NUtCIG1ha2luZyB0aGUgYm9hcmQKICAgIHVuYm9vdGFibGUgd2l0aCBPbmVOQU5ELgoKICAgIEZpeCBpcGwgdG8gcmVhZCBDT05GSUdfU1lTX01PTklUT1JfTEVOLgogICAgQ09ORklHX1NZU19NT05JVE9SX0xFTiBtYWNybyBob2xkcyB0aGUgVS1Cb290IGltYWdlIHNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogUm9oaXQgSGFnYXJndW5kZ2kgPGgucm9oaXRAc2Ftc3VuZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHYW5naGV5YW1vb3J0aHkgICA8bW9vcnRoeS5hcGdAc2Ftc3VuZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NGRlN2FlZmQ3OTY5MGJhZThjZjVhNTEyMGY1OTYyZDQ0NGJlMDg5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxIDIzOjM0OjEyIDIwMDkgKzAyMDAKCiAgICBBZGQgInNvdXJjZSIgY29tbWFuZDsgcHJlcGFyZSByZW1vdmFsIG9mICJhdXRvc2NyIiBjb21tYW5kCgogICAgQWNjb3JkaW5nIHRvIHRoZSBkb2MvZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dCwgdGhlICJhdXRvc2NyIgogICAgY29tbWFuZCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSAic291cmNlIiBjb21tYW5kIGluIGFwcHJveGltYXRlbHkgNgogICAgbW9udGhzIGZyb20gbm93LgoKICAgIFRoaXMgcGF0Y2ggcHJlcGFyZXMgdGhpcyBjaGFuZ2UgYW5kIHN0YXJ0cyBhIDYgbW9udGggdHJhbnNpdGlvbgogICAgcGVyaW9kIGFzIGZvbGxvd3M6CgogICAgLSBUaGUgbmV3ICJzb3VyY2UiIGNvbW1hbmQgaGFzIGJlZW4gYWRkZWQsIHdoaWNoIGltcGxlbWVudHMgZXhhY3RseQogICAgICB0aGUgc2FtZSBmdW5jdGlvbmxhaXR5IGFzIHRoZSBvbGQgImF1dG9zY3IiIGNvbW1hbmQgYmVmb3JlCiAgICAtIFRoZSBvbGQgImF1dG9zY3IiIGNvbW1hbmQgbmFtZSBpcyBrZXB0IGFzIGFuIGFsaWFzIGZvciBjb21wYXRpYmlsaXR5CiAgICAtIENvbW1hbmQgc2VxdWVuY2VzLCBzY3JpcHQgZmlsZXMgYXRjLiBoYXZlIGJlZW4gYWRhcHRlZCB0byB1c2UgdGhlCiAgICAgIG5ldyAic291cmNlIiBjb21tYW5kCiAgICAtIFJlbGF0ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzICgiYXV0b3NjcmlwdCIsICJhdXRvc2NyaXB0X3VuYW1lIikKICAgICAgaGF2ZSAqbm90KiBiZWVuIGFkYXB0ZWQgeWV0OyB0aGVzZSB3aWxsIGJlIHJlbmFtZWQgcmVzcC4gcmVtb3ZlZCBpbgogICAgICBhIHNlcGFyYXRlIHBhdGNoIHdoZW4gdGhlIHN1cHBvcnQgZm9yIHRoZSAiYXV0b3NjciIgY29tbWFuZCBnZXQncwogICAgICBmaW5hbGx5IGRyb3BwZWQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3ODIzN2RmNTUyNDgwMzRhMmQ3YzJkYWVhOTkyYjlkYmU3Y2E4ZTk2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAyIDE3OjMxOjA5IDIwMDkgKzAyMDAKCiAgICBBZGQgIkdQTCBjbGVhbnVwIiB0YXNrIHRvIGZlYXR1cmUtcmVtb3ZhbC1zY2hlZHVsZS50eHQKCiAgICBBbm5vdW5jZSByZW1vdmFsIG9mIGFsbCBub24tR1BMIG9yIEdQTC1pbmNvbXBhdGlibGUgZmlsZXMKICAgIGFmdGVyIEF1Z3VzdCAyMDA5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDk1OTZmZmJkYzc5Y2VhMjg1MDEwYjY3ZGQyMGE0NjE4MzAzZjYyNApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEFwciAyIDEyOjUxOjI4IDIwMDkgLTA0MDAKCiAgICBzZjogc3RtaWNybzogZG9udCBzZW5kIDQgYnl0ZXMgd2hlbiByZWFkaW5nIHN0YXR1cyByZWdpc3RlcgoKICAgIEkgY2FuJ3QgZmluZCBhbnl3aGVyZSBpbiB0aGUgZGF0YXNoZWV0IHRoYXQgc2F5cyB0aGUgc3RhdHVzIHJlZ2lzdGVyIG5lZWRzCiAgICAzIGR1bW15IGJ5dGVzIHNlbnQgdG8gaXQgYmVmb3JlIGJlaW5nIGFibGUgdG8gcmVhZCBiYWNrIHRoZSBmaXJzdCByZWFsCiAgICByZXN1bHQuICBUZXN0cyBvbiBhIEJsYWNrZmluIGJvYXJkIHNob3cgdGhhdCBhZnRlciB3cml0aW5nIHRoZSBvcGNvZGUsIHRoZQogICAgc3RhdHVzIHJlZ2lzdGVyIHN0YXJ0cyBjb21pbmcgYmFjayBpbW1lZGlhdGVseS4gIFNvIG9ubHkgd3JpdGUgb3V0IHRoZQogICAgcmVhZCBzdGF0dXMgcmVnaXN0ZXIgb3Bjb2RlIGJlZm9yZSBwb2xsaW5nIHRoZSByZXN1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgogICAgQ0M6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFiZTM2NWZmY2ZjMjljMDYxZThmZDhiNDU1NTFiZTVhZDE0MjhkZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEFwciAyIDA4OjExOjMxIDIwMDkgLTA0MDAKCiAgICBzZjogc2V0IGNvbW1vbiB0aW1lb3V0cyBpbiBzZWNvbmRzLCBub3QgbWlsbGlzZWNvbmRzCgogICAgU2luY2UgdGltZW91dHMgYXJlIG9ubHkgaGl0IHdoZW4gdGhlcmUgaXMgYSBwcm9ibGVtIGluIHRoZSBzeXN0ZW0sIHdlCiAgICBkb24ndCB3YW50IHRvIHByZW1hdHVyZWx5IHRpbWVvdXQgb24gYSBmdW5jdGlvbmluZyBzZXR1cC4gIFRodXMgaGF2aW5nCiAgICBsb3cgdGltZW91dHMgKGluIG1pbGxpc2Vjb25kcykgZG9lc24ndCBnYWluIHVzIGFueXRoaW5nIGluIHRoZSBwcm9kdWN0aW9uCiAgICBjYXNlLCBidXQgcmF0aGVyIGluY3JlYXNlcyBsaWtlbHkgaG9vZCBvZiBjYXVzaW5nIHByb2JsZW1zIHdoZXJlIG5vbmUKICAgIG90aGVyd2lzZSBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBDQzogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJhNmNlMTExNWIzY2JlNzQ2OTY1Y2ZhMDA1OGNlNjQ1YjZjMWFkYTEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBcHIgMiAwNjo1MTo0OSAyMDA5IC0wNDAwCgogICAgc2Y6IHN0bWljcm86IHVzZSBjb21tb24gcGFnZSB0aW1lb3V0IGRlZmluZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMGRjZGJiMTcyYzJmZGY2MGM1YzU3ODk4MDMwOGIzMTJmZDU2NDk2ZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE1hciAyOCAwNjo0MTowOSAyMDA5IC0wNDAwCgogICAgc2Y6IGFsd2F5cyByZWFkIDUgYnl0ZXMgZm9yIHRoZSBpZGNvZGUKCiAgICBTb21lIFNQSSBmbGFzaCBkcml2ZXJzIGxpa2UgdG8gaGF2ZSBleHRlbmRlZCBpZCBpbmZvcm1hdGlvbiBhdmFpbGFibGUKICAgIChsaWtlIHRoZSBzcGFuc2lvbiBmbGFzaCksIHNvIHJhdGhlciB0aGFuIG1ha2luZyBpdCByZS1pc3N1ZSB0aGUgSUQgY21kCiAgICB0byBnZXQgYXQgdGhlIGxhc3QgMiBieXRlcywgaGF2ZSB0aGUgY29tbW9uIGNvZGUgcmVhZCA1IGJ5dGVzIHJhdGhlciB0aGFuCiAgICBqdXN0IDMuICBUaGlzIGFsc28gbWF0Y2hlcyB0aGUgTGludXggYmVoYXZpb3Igd2hlcmUgaXQgYWx3YXlzIHJlYWRzIDUgaWQKICAgIGJ5dGVzIGZyb20gYWxsIGZsYXNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIENDOiBNaW5na2FpIEh1IDxNaW5na2FpLmh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTcyNmJhNGFiYWExNmNkNmMzODVhZDM1MGQ0MDNmOThhOGVhY2Y1MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIE1hciAyNyAxNjozNDoyMSAyMDA5IC0wNDAwCgogICAgc2Y6IHN0bWljcm86IGRyb3AgcmVkdW5kYW50IGlkIHJlYWQKCiAgICBUaGUgY29tbW9uIFNQSSBmbGFzaCBjb2RlIHJlYWRzIHRoZSBpZGNvZGUgYW5kIHBhc3NlcyBpdCBkb3duIHRvIHRoZSBTUEkKICAgIGZsYXNoIGRyaXZlciwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byByZWFkIGl0IGFnYWluIG91cnNlbHZlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBBY2tlZC1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQ0M6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgogICAgQ0M6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWM1ODc0Mzc0ZTA5MWI0YmI2MjkxN2M1MTk4NjFmNzY4MmZlMDY2ZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIE1hciAyNyAxOToyNzo1OCAyMDA5IC0wNDAwCgogICAgc2Y6IGFkZCBkcml2ZXIgZm9yIFNTVCBmbGFzaGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmNzczYTFiYmRiOGYzYmYxZGRhYjI4NzRmMzZmMDQzYzRmOGYwNDRkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gTWFyIDIzIDIzOjAzOjU4IDIwMDkgLTA0MDAKCiAgICBzZjogZHJvcCBERUJVRyBkZWZpbmVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA2Yjg1MGE5ZmE4YTIxNmYzNjkyZGEyNTExY2IxYTZjMTY0MDliMWFmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEphbiA0IDA3OjQ0OjA3IDIwMDkgKzAxMDAKCiAgICBtdGQ6IGFkZCBzb21lIGF0NDUgc3BpIGZsYXNoIHN1cHBvcnQKCiAgICAgLSBBVDQ1REIzMjFECiAgICAgLSBBVDQ1REIxNjFECiAgICAgLSBBVDQ1REIwODFECiAgICAgLSBBVDQ1REIwNDFECiAgICAgLSBBVDQ1REIwMjFECiAgICAgLSBBVDQ1REIwMTFECgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2ODA1ZTRiZjgzZTZmNDQ0Zjc0MTExMDEyMjg3NjZjOGE3YWVjNWY3CkF1dGhvcjogTWluZ2thaSBIdSA8TWluZ2thaS5odUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDMxIDE0OjA5OjQxIDIwMDkgKzA4MDAKCiAgICBtdGQ6IFNQSSBGbGFzaDogU3VwcG9ydCB0aGUgU3BhbnNpb24gRmxhc2gKCiAgICBBZGQgTVREIFNQSSBGbGFzaCBzdXBwb3J0IGZvciBTMjVGTDAwOEEsIFMyNUZMMDE2QSwKICAgIFMyNUZMMDMyQSwgUzI1RkwwNjRBLCBTMjVGTDEyOFAuCgogICAgU2lnbmVkLW9mZi1ieTogTWluZ2thaSBIdSA8TWluZ2thaS5odUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQwNTg3NzAxOTI0YWEwYWZjODZiMzg0MDQyMWI0Y2M2ZGU0MmM3NDgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBNYXIgMzAgMjA6NTY6NDUgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBmb3JjZSBhbGwgYm9hcmRzIHRvIEhaIG9mIDEwMDAKCiAgICBTaW5jZSB0aGUgQmxhY2tmaW4gdGltZXIgY29kZSByZXF1aXJlcyBIWiB0byBiZSAxMDAwLCBiYXJmIG9uIGFueSBib2FyZAogICAgdGhhdCB0cmllcyB0byB1c2UgYSBkaWZmZXJlbnQgdmFsdWUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGY0MDMyZDJlZWM5ZDcxYTU5YzZjNzI0NjcxZTU3N2Y2N2E3NjgzOWIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBNYXIgMjcgMjE6MDc6NDUgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUzMy1zdGFtcDogZHJvcCBvbGQgc3BpIGZsYXNoIGRyaXZlcgoKICAgIE5vdyB0aGF0IHRoZSBjb21tb24gU1BJIGZsYXNoIGNvZGUgc3VwcG9ydHMgYWxsIHRoZSBmbGFzaGVzLCB3ZSBjYW4gc3RvcAogICAgdXNpbmcgdGhlIG9sZCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJjNzJmNTBhNjU5ZDBkMWI1NTE4MTdlMTkxMGI5YjJiZTFjN2U0OTYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBNYXIgMjYgMTU6NDI6MTIgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgQkY1MzgvQkY1MzkgU1BJIHBvcnRtdXggaGFuZGxpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNDZhYzM1MmYwZjk0MDZhNWY5YWExNTdhYzYyODY3ZmI0NjUwZGZkMwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE1hciAyMyAyMjozNjoxMCAyMDA5IC0wNDAwCgogICAgQmxhY2tmaW46IGRvIG5vdCBkZWxheSBvbiBvdXRwdXQgYnl0ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZGJjNmFiOWY3NWJkMGMxM2QzZjQyNjkyZTk0NjNmOGFiNjVmYzM4MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE1hciAyMyAyMjoxNzoyNyAyMDA5IC0wNDAwCgogICAgQmxhY2tmaW46IGRyb3AgbmV3bGluZSBmcm9tIE9UUCBoZWxwCgogICAgTG9va3MgbGlrZSBJIGFjY2lkZW50YWxseSBhZGRlZCBhIG5ld2xpbmUgdG8gdGhlIE9UUCBoZWxwIHdoZW4gbWVyZ2luZyBhbmQKICAgIG9sZGVyIGNoYW5nZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZDNjMzhkOTZiOTkxZDY0MWEzM2Y3NzQ4MTMwZGFlMDA4NTYzY2RjOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIE1hciAyMiAyMzo0MzozMSAyMDA5IC0wNDAwCgogICAgQmxhY2tmaW46IGNvbnZlcnQgYmZpbl9zZGggdG8gbGVnYWN5IG1tYwoKICAgIFRoZSBCbGFja2ZpbiBTREggY29udHJvbGxlciBpcyBzdGlsbCB1c2luZyB0aGUgbGVnYWN5IGZyYW1ld29yaywgc28gdXBkYXRlCiAgICB0aGUgZHJpdmVyIHRvIHVzZSB0aGUgcmVuYW1lZCBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQyNDhjZmIyZDk0MGI3NDJmNmJmZGJhOWI4MzJhM2RmOTZkYTMxMDEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBGZWIgMjIgMTY6MzA6MzggMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBiZjUzNy1zdGFtcDogc3BsaXQgQ0YvSURFIGNvZGUgb3V0IGludG8gZGVkaWNhdGVkIGNmLWlkZS5jCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGFkOTA3MzIxMWNhOWU2MjE2MmEzOTg1MWUwODJiOGQwN2E2NjJmYjYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBGZWIgMTMgMTc6MTA6NTggMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBmaXggY3Jhc2ggd2hlbiBib290aW5nIGZyb20gZXh0ZXJuYWwgbWVtb3J5CgogICAgV2hlbiB0ZXN0aW5nIGEgdS1ib290IGJpbmFyeSB0aGF0IGhhc24ndCBiZWVuIGJvb3RlZCBmcm9tIHRoZSBib290cm9tLCB3ZQogICAgaGF2ZSB0byBtYWtlIHN1cmUgdGhlIGJvb3RzdHJ1Y3Qgc3RydWN0dXJlIGhhcyBzYW5lIHN0b3JhZ2Ugc3BhY2UuCUlmIHdlCiAgICBkb24ndCwgdGhlIGluaXRjb2RlIHdpbGwgY3Jhc2ggd2hlbiBpdCB0cmllcyB0byBkZXJlZmVyZW5jZSBhbiBpbnZhbGlkCiAgICBwb2ludGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4NGE5ZGRhMzI0YzNmYWE1NmJlMTQ0NDlkNzUxOWI5OTNkOTM5N2E5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gT2N0IDEyIDIxOjMyOjUyIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1MThmLWV6YnJkOiBuZXcgYm9hcmQgcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwYzMxZGRmN2I3MGY3N2RlZGU0MmRjODJlY2FiNzc1M2E4MTlhY2FhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gT2N0IDEyIDIxOjMwOjQ4IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1MjYtZXpicmQ6IG5ldyBib2FyZCBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDVjNDVmN2NhYzJmNzRlMmMxNGFhNmIwMjhjZDk2OTY1MWNjOWFjOGUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBPY3QgMTIgMjE6MjU6MzMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUzOGYtZXpraXQ6IG5ldyBib2FyZCBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ5YTVkMTEzYjkzNTgzYzk4NDcxMTEyN2FiODUwM2UxMzZlZDFlNGEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBPY3QgMTIgMjA6NTk6MTIgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUyNy1lemtpdDogbmV3IGJvYXJkIHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzZkMjE4MDNkZGQ3ZGM0YmNiODE3MzllYTJkM2NkNjc5ZTA1MmY0NgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIE9jdCAxMiAwNTowNTo0MiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTQ4LWV6a2l0OiBuZXcgYm9hcmQgcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2N2I4OWM3OWU3MmZlODZiMGVhMDE5OTQyNWQ4ODA2MzBiZWI5NWQ4CkF1dGhvcjogTGF1cmVudCBHcmVnb2lyZSA8bGF1cmVudC5ncmVnb2lyZUB0b210b20uY29tPgpEYXRlOglUdWUgTWFyIDMgMTQ6MjM6NTkgMjAwOSArMDEwMAoKICAgIGxpYmZkdDogRml4IEMrKyBjb21waWxlLXRpbWUgY2FzdCBlcnJvciBvbiBnbnUgNC4yLjEKCiAgICBBbGxvdyB0aGUgaW5jbHVzaW9uIG9mIGxpYmZkdC5oIGluIEMrKyBzb3VyY2UuCgogICAgU2lnbmVkLW9mZi1ieTogTGF1cmVudCBHcmVnb2lyZSA8bGF1cmVudC5ncmVnb2lyZUB0b210b20uY29tPgogICAgQWNrZWQtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDEzZDkzZjM4ZTg2ODE4NzM5MzE3YjAyMDZkNTk3MjY1Y2Y5ZTY3NWUKQXV0aG9yOiBFbWlsIE1lZHZlIDxFbWlsaWFuLk1lZHZlQEZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMjMgMTA6NDM6MzYgMjAwOSAtMDYwMAoKICAgIEZpeCBhIHBvc3NpYmxlIG92ZXJmbG93IGNhc2UgZGV0ZWN0ZWQgYnkgZ2NjIDQuMy4yCgogICAgLi4uL2R0Yy9saWJmZHQvZmR0X3N3LmM6IEluIGZ1bmN0aW9uICdmZHRfZW5kX25vZGUnOgogICAgLi4uL2R0Yy9saWJmZHQvZmR0X3N3LmM6ODE6IGVycm9yOiBhc3N1bWluZyBzaWduZWQgb3ZlcmZsb3cgZG9lcyBub3Qgb2NjdXIgd2hlbiBhc3N1bWluZyB0aGF0IChYICsgYykgPCBYIGlzIGFsd2F5cyBmYWxzZQoKICAgIFNpZ25lZC1vZmYtYnk6IEVtaWwgTWVkdmUgPEVtaWxpYW4uTWVkdmVARnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjJkOWNmYmI1YmNmYjNkYzZmZmQ2NGQzOTFiNTY4ZThhMGNlMzgzCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CUZyaSBGZWIgNiAxNDowMzoyNCAyMDA5ICsxMTAwCgogICAgbGliZmR0OiBSZXdvcmsvY2xlYW51cCBmZHRfbmV4dF90YWcoKQoKICAgIEN1cnJlbnRseSwgY2FsbGVycyBvZiBmZHRfbmV4dF90YWcoKSBtdXN0IHVzdWFsbHkgZm9sbG93IHRoZSBjYWxsIHdpdGgKICAgIHNvbWUgc29ydCBvZiBjYWxsIHRvIGZkdF9vZmZzZXRfcHRyKCkgdG8gdmVyaWZ5IHRoYXQgdGhlIGJsb2IgaXNuJ3QKICAgIHRydW5jYXRlZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSB0YWcgZGF0YSB0aGV5J3JlIGdvaW5nIHRvIHByb2Nlc3MuCiAgICBUaGlzIGlzIGEgYml0IHNpbGx5LCBzaW5jZSBmZHRfbmV4dF90YWcoKSBnZW5lcmFsbHkgaGFzIHRvIGNhbGwKICAgIGZkdF9vZmZzZXRfcHRyKCkgb24gYXQgbGVhc3Qgc29tZSBvZiB0aGUgZGF0YSBmb2xsb3dpbmcgdGhlIHRhZyBmb3IKICAgIGl0cyBvd24gb3BlcmF0aW9uLgoKICAgIFRoaXMgcGF0Y2ggYWx0ZXJzIGZkdF9uZXh0X3RhZygpIHRvIGFsd2F5cyB1c2UgZmR0X29mZnNldF9wdHIoKSB0bwogICAgdmVyaWZ5IHRoZSBkYXRhIGJldHdlZW4gaXRzIHN0YXJ0aW5nIG9mZnNldCBhbmQgdGhlIG9mZnNldCBpdCByZXR1cm5zCiAgICBpbiBuZXh0b2Zmc2V0LiAgVGhpcyBzaW1wbGlmaWVzIGZkdF9nZXRfcHJvcGVydHkoKSB3aGljaCBubyBsb25nZXIgaGFzCiAgICB0byB2ZXJpZnkgaXRzZWxmIHRoYXQgdGhlIHByb3BlcnR5IGRhdGEgaXMgYWxsIHByZXNlbnQuCgogICAgQXQgdGhlIHNhbWUgdGltZSwgSSBuZWF0ZW4gYW5kIGNsYXJpZnkgdGhlIGVycm9yIGhhbmRsaW5nIGZvcgogICAgZmR0X25leHRfdGFnKCkuICBQcmV2aW91c2x5LCBmZHRfbmV4dF90YWcoKSBjb3VsZCByZXR1cm4gLTEgaW5zdGVhZCBvZgogICAgYSB0YWcgdmFsdWUgaW4gc29tZSBjaXJjdW1zdGFuY2VzIC0gd2hpY2ggYWxtb3N0IG5vbmUgb2YgdGhlIGNhbGxlcnMKICAgIGNoZWNrZWQgZm9yLiAgQWxzbywgZmR0X25leHRfdGFnKCkgY291bGQgcmV0dXJuIEZEVF9FTkQgZWl0aGVyIGJlY2F1c2UKICAgIGl0IGVuY291bnRlcmVkIGFuIEZEVF9FTkQgdGFnLCBvciBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUKICAgIHN0cnVjdHVyZSBibG9jayAtIG5vIHdheSB3YXMgcHJvdmlkZWQgdG8gdGVsbCBiZXR3ZWVuIHRoZXNlIGNhc2VzLgoKICAgIFdpdGggdGhpcyBwYXRjaCwgZmR0X25leHRfdGFnKCkgYWx3YXlzIHJldHVybnMgRkRUX0VORCB3aXRoIGEgbmVnYXRpdmUKICAgIHZhbHVlIGluIG5leHRvZmZzZXQgZm9yIGFuIGVycm9yLiAgVGhpcyBtZWFucyB0aGUgc2V2ZXJhbCBwbGFjZXMgd2hpY2gKICAgIGxvb3AgbG9va2luZyBmb3IgRkRUX0VORCB3aWxsIHN0aWxsIHdvcmsgY29ycmVjdGx5IC0gdGhleSBvbmx5IG5lZWQgdG8KICAgIGNoZWNrIGZvciBlcnJvcnMgYXQgdGhlIGVuZC4gIFRoZSBlcnJvcnMgd2hpY2ggZmR0X25leHRfdGFnKCkgY2FuCiAgICByZXBvcnQgYXJlOgoJLSAtRkRUX0VSUl9UUlVOQ0FURUQgaWYgaXQgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3R1cmUKCSAgIGJsb2NrIGluc3RlYWQgb2YgZmluZGluZyBhIHRhZy4KCgktIC1GRFRfQkFEU1RSVUNUVVJFIGlmIGEgYmFkIHRhZyB3YXMgZW5jb3VudGVyZWQsIG9yIGlmIHRoZQoJICAgICAgIHRhZyBkYXRhIGNvdWxkbid0IGJlIHZlcmlmaWVkIHdpdGggZmR0X29mZnNldF9wdHIoKS4KCiAgICBUaGlzIHBhdGNoIGFsc28gdXBkYXRlcyB0aGUgY2FsbGVycyBvZiBmZHRfbmV4dF90YWcoKSwgd2hlcmUKICAgIGFwcHJvcHJpYXRlLCB0byBtYWtlIHVzZSBvZiB0aGUgbmV3IGVycm9yIHJlcG9ydGluZy4KCiAgICBGaW5hbGx5LCB0aGUgcHJvdG90eXBlIGZvciB0aGUgbG9uZyBnb25lIF9mZHRfbmV4dF90YWcoKSBpcyByZW1vdmVkCiAgICBmcm9tIGxpYmZkdF9pbnRlcm5hbC5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDJjMGI4NDNlNzEwYWExZTJkYTI1YzI1OTJlNmRiZTVkMGIwYWI3ZGEKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJRnJpIEZlYiA2IDE0OjAxOjU2IDIwMDkgKzExMDAKCiAgICBsaWJmZHQ6IFJld29yayBmZHRfbmV4dF9ub2RlKCkKCiAgICBDdXJyZW50bHkgZmR0X25leHRfbm9kZSgpIHdpbGwgZmluZCB0aGUgbmV4dCBub2RlIGluIHRoZSBibG9iCiAgICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYWJvdmUsIGJlbG93IG9yIGF0IHRoZSBzYW1lIGxldmVsIGluIHRoZQogICAgdHJlZSBhcyB0aGUgc3RhcnRpbmcgbm9kZSAtIHRoZSBkZXB0aCBwYXJhbWV0ZXIgaXMgdXBkYXRlZCB0byBpbmRpY2F0ZQogICAgd2hpY2ggaXMgdGhlIGNhc2UuCVdoZW4gYSBkZXB0aCBwYXJhbWV0ZXIgaXMgc3VwcGxpZWQsIHRoaXMgcGF0Y2gKICAgIG1ha2VzIGl0IGluc3RlYWQgdGVybWluYXRlIGltbWVkaWF0ZWx5IHdoZW4gaXQgZmluZHMgdGhlIEVORF9OT0RFIHRhZwogICAgZm9yIGEgbm9kZSBhdCBkZXB0aCAwLiAgSW4gdGhpcyBjYXNlIGl0IHJldHVybnMgdGhlIG9mZnNldCBpbW1lZGlhdGVseQogICAgcGFzdCB0aGUgRU5EX05PREUgdGFnLgoKICAgIFRoaXMgaGFzIGEgY291cGxlIG9mIGFkdmFudGFnZXMuICBGaXJzdCwgdGhpcyBzbGlnaHRseSBzaW1wbGlmaWVzCiAgICBmZHRfc3Vibm9kZV9vZmZzZXQoKSwgd2hpY2ggbm8gbG9uZ2VyIG5lZWRzIHRvIGV4cGxpY2l0bHkgY2hlY2sgdGhhdAogICAgZmR0X25leHRfbm9kZSgpJ3MgaXRlcmF0aW9uIGhhc24ndCBsZWZ0IHRoZSBzdGFydGluZyBub2RlLglTZWNvbmQsCiAgICB0aGlzIGFsbG93cyBmZHRfbmV4dF9ub2RlKCkgdG8gYmUgdXNlZCB0byBpbXBsZW1lbnQKICAgIF9mZHRfbm9kZV9lbmRfb2Zmc2V0KCkgY29uc2lkZXJhYmx5IHNpbXBsaWZ5aW5nIHRoZSBsYXR0ZXIgZnVuY3Rpb24uCgogICAgVGhlIG90aGVyIHVzZXJzIG9mIGZkdF9uZXh0X25vZGUoKSBlaXRoZXIgZG9uJ3QgbmVlZCB0byBpdGVyYXRlIG91dCBvZgogICAgdGhlIHN0YXJ0aW5nIG5vZGUsIG9yIGRvbid0IHBhc3MgYSBkZXB0aCBwYXJhbWV0ZXIgYXQgYWxsLglBbnkKICAgIGNhbGxlcnMgdGhhdCByZWFsbHkgbmVlZCB0byBpdGVyYXRlIG91dCBvZiB0aGUgc3RhcnRpbmcgbm9kZSwgYnV0IGtlZXAKICAgIHRyYWNraW5nIGRlcHRoIGNhbiBkbyBzbyBieSBiaWFzaW5nIHRoZSBpbml0aWFsIGRlcHRoIHZhbHVlLgoKICAgIFRoaXMgaXMgYSBzZW1hbnRpYyBjaGFuZ2UsIGJ1dCBJIHRoaW5rIGl0J3MgdmVyeSB1bmxpa2VseSB0byBicmVhayBhbnkKICAgIGV4aXN0aW5nIGxpYnJhcnkgdXNlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgYzEyMzA5ODAzNWJlOGJhZTM4NTliYmZiZDA2ODYxZjE5N2MwNzYzMQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDMxIDE3OjQ5OjM2IDIwMDkgLTA1MDAKCiAgICBtcGM4M3h4OiBTZXQgZ3VhcmRlZCBiaXQgb24gQkFUIHRoYXQgY292ZXJzIHRoZSBlbmQgb2YgdGhlIGFkZHJlc3Mgc3BhY2UKCiAgICBUaGUgbXBjODMxM2VyZGIgYm9hcmQgY3VycmVudGx5IHNldHMgREJBVDYgdG8gY292ZXIgYWxsIG9mIHRoZSBmaW5hbCAyNTZNaUIgb2YKICAgIGFkZHJlc3Mgc3BhY2U7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdGhpcyBzcGFjZSBpcyBjb3ZlcmVkIGJ5IGEgZGV2aWNlLiAgSW4KICAgIHBhcnRpY3VsYXIsIGZsYXNoIHNpdHMgYXQgMHhmZTAwMDAwMC0weGZlN2ZmZmZmLCBhbmQgbm90aGluZyBpcyBtYXBwZWQKICAgIGF0IHRoZSBmYXIgZW5kIG9mIHRoZSBhZGRyZXNzIHNwYWNlLgoKICAgIEluIHpsaWIsIHRoZXJlIGlzIGEgbG9vcCB0aGF0IHJlZmVyZW5jZXMgcFstMV0gaWYgcCBpcyBub24tTlVMTC4gIFVuZGVyCiAgICBzb21lIGNpcmN1bXN0YW5jZXMsIHRoaXMgbGVhZHMgdG8gdGhlIENQVSBzcGVjdWxhdGl2ZWx5IGxvYWRpbmcgZnJvbQogICAgMHhmZmZmZmZmOCBpZiBwIGlzIE5VTEwuICBUaGlzIGxlYWRzIHRvIGEgbWFjaGluZSBjaGVjay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCiAgICBjb250aW51YXRpb24gdG8gdGhlIHJlbWFpbmluZyBtcGM4M3h4IGJvYXJkcyB0aGF0IHN1ZmZlciBmcm9tIHRoZSBzYW1lIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMmViOGJlN2Y3NjBhMmVmZTMwYTQ5NWJmYjEwODU3ODM4ZGNmM2ZhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAzMCAxNDoyODowNSAyMDA5IC0wNTAwCgogICAgcnRjOiByZW1vdmUgYnJva2VuIHJ0Y19yZWFkIGFuZCBydGNfd3JpdGUgZGVjbGFyYXRpb25zCgogICAgY29tbWl0IDA0ZTExY2YzICJydGM6IGFkZCBzdXBwb3J0IGZvciA0NTQzIFJUQyAobWFudWZhY3R1cmVkIGJ5IGUuZy4KICAgIEVQU09OKSIgaW50cm9kdWNlcyB0aGUgZm9sbG93aW5nIGJ1aWxkIGVycm9yIG9uIGJvYXJkcyBjb25maWd1cmluZyBlLmcsCiAgICB0aGUgZHMxMzc0IHJ0YzoKCiAgICBDb25maWd1cmluZyBmb3IgTVBDODM3WEVNRFMgYm9hcmQuLi4KICAgIGRzMTM3NC5jOjEwMzogZXJyb3I6IHN0YXRpYyBkZWNsYXJhdGlvbiBvZiAncnRjX3JlYWQnIGZvbGxvd3Mgbm9uLXN0YXRpYyBkZWNsYXJhdGlvbgogICAgL2hvbWUvcjFhYWhhL2dpdC91LWJvb3QvaW5jbHVkZS9ydGMuaDo2NDogZXJyb3I6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdydGNfcmVhZCcgd2FzIGhlcmUKICAgIGRzMTM3NC5jOjEwNDogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAncnRjX3dyaXRlJwogICAgL2hvbWUvcjFhYWhhL2dpdC91LWJvb3QvaW5jbHVkZS9ydGMuaDo2NTogZXJyb3I6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdydGNfd3JpdGUnIHdhcyBoZXJlCgogICAgdGhpcyByZXZlcnRzIHRoZSBlcnJvbmVvdXMgY2h1bmsuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KICAgIENDOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KICAgIENDOiBBbmRyZWFzIFBmZWZmZXJsZSA8YXBAZGVueC5kZT4KCmNvbW1pdCBmYzM5YzJmZDUxZTY0NzA3ZGU0ZDYxZWQ0OTQ3OWViZWEyODQ3ZTFiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE1hciAzMSAxNzo1ODoxMyAyMDA5IC0wNTAwCgogICAgODV4eC84Nnh4OiBFbnN1cmUgTVAgYm9vdCBwYWdlIGlzIG5vdCB1c2VkCgogICAgV2UgaGFkIGEgYnVnIG9uIDg2eHggaW4gd2hpY2ggdGhlIGJvb3QgcGFnZSB1c2VkIHRvIGJyaW5nIHVwIHNlY29uZGFyeQogICAgY29yZXMgd2FzIGJlaW5nIG92ZXJ3cml0dGVuIGFuZCB1c2VkIGZvciB0aGUgbWFsbG9jIHJlZ2lvbiBpbiB1LWJvb3QuCgogICAgV2UgbmVlZCB0byByZXNlcnZlIHRoZSByZWdpb24gb2YgbWVtb3J5IHRoYXQgdGhlIGJvb3QgcGFnZSBpcyBnb2luZyB0bwogICAgYmUgcHV0IGF0IHNvIG5vdGhpbmcgdXNlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjODQwZDI2Yzc1MjE0MWI5NGJiYzI0YWM3NDhkZGQ0NTc1MmE5NTVhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE1hciAzMSAyMzoxMTowNSAyMDA5IC0wNTAwCgogICAgODV4eDogSW50cm9kdWNlIGRldGVybWluZV9tcF9ib290cGcoKSBoZWxwZXIuCgogICAgTWF0Y2ggZGV0ZXJtaW5lX21wX2Jvb3RwZygpIHRoYXQgd2FzIGFkZGVkIGZvciA4Nnh4LiAgV2UgbmVlZCB0aGlzIHRvCiAgICBhZGRyZXNzIGEgYnVnIGludHJvZHVjZWQgaW4gdjIwMDkuMDMgd2l0aCA4Nnh4IE1QIGJvb3RpbmcuCVdlIGhhdmUgdG8KICAgIG1ha2Ugc3VyZSB0byByZXNlcnZlIHRoZSByZWdpb24gb2YgbWVtb3J5IHVzZWQgZm9yIHRoZSBNUCBib290cGcoKSBzbwogICAgb3RoZXIgdS1ib290IGNvZGUgZG9lc24ndCB1c2UgaXQuCgogICAgQWxzbyBhZGRlZCBhIGNvbW1lbnQgYWJvdXQgaG93IGNwdV9yZXNldCgpIGlzIGRlYWxpbmcgdy9hbiBlcnJhdGEgb24KICAgIGVhcmx5IDg1eHggTVAgSFcuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3NjQ5YTU5MGI1M2VlNTQ4ZjQxNDI4YmYyMDc4MGY3NGNlOWZjMDk5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE1hciAzMSAyMzowMjozOCAyMDA5IC0wNTAwCgogICAgODZ4eDogQ2xlYW51cCBNUCBzdXBwb3J0CgogICAgKiBVc2UgQ09ORklHX01QIGluc3RlYWQgb2YgQ09ORklHX05VTV9DUFVTIHRvIG1hdGNoIDg1eHgKICAgICogSW50cm9kdWNlIGRldGVybWluZV9tcF9ib290cGcoKSBoZWxwZXIuICBXZSdsbCBuZWVkIHRoaXMgdG8gYWRkcmVzcyBhCiAgICAgIGJ1ZyBpbnRyb2R1Y2VkIGluIHYyMDA5LjAzIHdpdGggODZ4eCBNUCBib290aW5nLglXZSBoYXZlIHRvIG1ha2Ugc3VyZQogICAgICB0byByZXNlcnZlIHRoZSByZWdpb24gb2YgbWVtb3J5IHVzZWQgZm9yIHRoZSBNUCBib290cGcoKSBzbyBvdGhlcgogICAgICB1LWJvb3QgY29kZSBkb2Vzbid0IHVzZSBpdC4KICAgICogQWRkZWQgZHVtbXkgdmVyc2lvbnMgb2YgY3B1X3Jlc2V0KCksIGNwdV9zdGF0dXMoKSAmIGNwdV9yZWxlYXNlKCkgdG8KICAgICAgYWxsb3cgY21kX21wLmMgdG8gYnVpbGQgYW5kIHdvcmsuIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkIGxvb2sgYXQKICAgICAgaW1wbGVtZW50aW5nIGFsbCB0aGVzZSBmdW5jdGlvbnMuIFRoaXMgY291bGQgYmUgY29tbW9uIHcvODV4eCBpZiB3ZQogICAgICB1c2Ugc3BpbiB0YWJsZXMgb24gODZ4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY2ZWY4YjdhNDNlZDdmNjhhNGJiNTI0ZmFhZDVlNGY3NWVhM2UzZTIKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBNYXIgMzEgMTg6Mzg6MzcgMjAwOSAtMDUwMAoKICAgIG1wYzg2NDFocGNuL3NiYzg2NDFkOiBBZGQgbWlzc2luZyBib2FyZF9sbWJfcmVzZXJ2ZXMKCiAgICBXZSdyZSBtaXNzaW5nIHRoZSBib2FyZF9sbWJfcmVzZXJ2ZSBkZWZpbml0aW9ucyB0aGF0IGFsbG93CiAgICBjcHVfbXBfbG1iX3Jlc2VydmUgdG8gYmUgY2FsbGVkOyB0aGlzIG1lYW5zIHRoYXQgTGludXgKICAgIGlzIGZyZWUgdG8gcmVhbGxvY2F0ZSByZXNlcnZlZCBwYWdlcy4gIExpbnV4IGN1cnJlbnRseSBib290cwogICAgYmVjYXVzZSB3ZSdyZSBnZXR0aW5nIGx1Y2t5IC0gdGhlIHBhZ2Ugd2UndmUgcmVzZXJ2ZWQgaXMKICAgIGhpZ2ggZW5vdWdoIGluIG1lbW9yeSB0aGF0IGl0IGlzbid0IGFsbG9jYXRlZCBieSBMaW51eAogICAgd2hpbGUgd2Ugc3RpbGwgbmVlZCBpdCB0byBiZSBpbiBleGlzdGVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZmM0ZjY0YzU5ODczYTQ3ZDU1NWRkNjZiYWQyNTc5N2Q0ZWNiMGVkCkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglUdWUgTWFyIDMxIDEzOjQzOjEwIDIwMDkgKzAyMDAKCiAgICBOZXRTdGFyOiBmaXggTkFORAoKICAgIEZpeCBOQU5EIHN1cHBvcnQgYnJva2VuIGR1cmluZyBuZXcgTkFORCBjb2RlIG1lcmdlLiBNb3ZlIHRob3NlIGZldyBsaW5lcyBvZgogICAgY29kZSB0byBib2FyZC9uZXRzdGFyL25ldHN0YXIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCmNvbW1pdCBkMTQ0Zjk0ZDU5MGI1MTkwYTk5NjNiZDBmMjAyNmIyYTdjZTY3ZWRhCkF1dGhvcjogSmVucyBTY2hhcnNpZyA8ZXN3QGJ1cy1lbGVrdHJvbmlrLmRlPgpEYXRlOglUdWUgTWFyIDMxIDA4OjE4OjI5IDIwMDkgKzAyMDAKCiAgICBzb2Z0X2kyYy5jIGNvbXBpbGVyL2xpbmtlciBlcnJvcgoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBjb21waWxlci9saW5rZXIgZXJyb3JzCgogICAgY29tbW9uL2NtZF9pMmMuYzoxMjUyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBpMmNfZ2V0X2J1c19zcGVlZCcKICAgIGNvbW1vbi9jbWRfaTJjLmM6MTI1NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgaTJjX3NldF9idXNfc3BlZWQnCgogICAgaWYgYm9hcmQgdXNlIENPTkZJR19JMkNfQ01EX1RSRUUgYW5kIENPTkZJR19JMkNfTVVMVElfQlVTIGlzIG5vdAogICAgdWVzZC91bmRlZiAod3JvbmcgZGVmaW5lIG9yZGVyKQoKICAgIGFuZAoKICAgIHJlbW92ZXMgYWRkaXRpb25hbCBlbXB0eSBsaW5lcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgU2NoYXJzaWcgPGVzd0BidXMtZWxla3Ryb25pay5kZT4KCmNvbW1pdCA3NjU1NDdkYzVlMGU4Y2JlNmI4ZjRlYThhNWQ2ZmYyMzc5MzVjMzUyCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyNyAxNzowMjo0NSAyMDA5IC0wNDAwCgogICAgTVBDODV4eDogQWRkIE1QQzg1NjlNRFMgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBNUEM4NTY5TURTIGJvYXJkIHN1cHBvcnQuIFRoZSBVQVJULCBRRSBVRUMxIGFuZCBVRUMyLCBCUkQKICAgIEVFUFJPTSBvbiBJMkMyIGJ1cywgUENJIGV4cHJlc3MgYW5kIEREUjMgU1BEIGFyZSBzdXBwb3J0ZWQgaW4gdGhpcyBwYXRjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGlsbGVsIEF2bmkgPEhpbGxlbC5Bdm5pQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDIyYjZkYmMxNjk2ZDkyN2Q5MzhkZDRlMTZmNjVkODNjMGQ0ZmIzZjQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI3IDE3OjAyOjQ0IDIwMDkgLTA0MDAKCiAgICBNUEM4NXh4OiBBZGQgTVBDODU2OSBDUFUgc3VwcG9ydAoKICAgIFRoZXJlIGlzIGEgd29ya2Fyb3VuZCBmb3IgTVBDODU2OSBDUFUgRXJyYXRhLCB3aGljaCBuZWVkcyB0byBzZXQgQml0IDEzIG9mCiAgICBMQkNSIGluIDRLIGJvb3RwYWdlLiBXZSBzZXR1cCBhIHRlbXAgVExCIGZvciBlTEJDIGNvbnRyb2xsZXIgaW4gYm9vdHBhZ2UsCiAgICB0aGVuIGludmFsaWRhdGUgaXQgYWZ0ZXIgTEJDUiBiaXQgMTMgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDJkNGRlNmFlNWJlNTRiMzY3YTcyYTdlZjRlMGNmMzZhOWNkNDg4MWYKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI2IDE3OjAxOjQ5IDIwMDkgLTA0MDAKCiAgICBNUEM4NXh4OiBMb2FkIGFuZCBlbmFibGUgUUUgbWljcm9jb2RlIHBhdGNoIGluIElSQU0KCiAgICBGb3IgdGhlIHNpbGljb24gd2hpY2ggZG9lc24ndCBoYXZlIFJPTSBzdXBwb3J0IGluIFFFLCBpdCBhbHdheXMgbmVlZHMgdG8gbG9hZAogICAgYSBwcmUtYnVpbHQgdWNvZGUgYmluYXJ5IHRvIElSQU0gc28gdGhhdCBRRSBjYW4gd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGlsbGVsIEF2bmkgPEhpbGxlbC5Bdm5pQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWIzZTQwNDRhMjhhM2Q5NWIwYWFkNDFiZGM1MjQ4MmJiMmNjOWIyYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBNYXIgMTkgMDk6MTY6MTAgMjAwOSAtMDUwMAoKICAgIDg1eHg6IEFkZCBzdXBwb3J0IGZvciBhZGRpdGlvbmFsIGU1MDBtYyBmZWF0dXJlcwoKICAgICogRW5hYmxlIGJhY2tzaWRlIEwyCiAgICAqIGU1MDBtYyBubyBsb25nZXIgaGFzIHRpbWViYXNlIGVuYWJsZSBpbiBISUQgKG1vdmVkIHRvIENDU1IgcmVnaXN0ZXIpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjMzYwY2VhYzAyODYxNTlmOTRkOWQxYTk0OTZmYzk4NThjOGQ5YmVjCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1hciAxNCAxMjo0ODozMCAyMDA5ICswODAwCgogICAgZnNsLWRkcjogYWRkIHRoZSBERFIzIFNQRCBpbmZyYXN0cnVjdHVyZQoKICAgIC0gc3VwcG9ydCBtaXJyb3JlZCBESU1Ncywgbm90IHN1cHBvcnQgcmVnaXN0ZXIgRElNTXMKICAgIC0gdGVzdCBwYXNzZWQgb24gUDIwMjBEUyBib2FyZCB3aXRoIE1UOUpTRjEyODcyQVktMUcxRDEKICAgIC0gdGVzdCBwYXNzZWQgb24gTVBDODU2OU1EUyBib2FyZCB3aXRoIE1UOEpTRjEyODY0SFktMUcxRDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHJhdmlzIFdoZWF0bGV5IDx0cmF2aXMud2hlYXRsZXlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YTgxOTc4MzY3MDI5OTE0NjhjZWFkNWVhZDA3M2Y1ODllMjYyM2FkCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1hciAxNCAxMjo0ODoxOSAyMDA5ICswODAwCgogICAgZnNsLWRkcjogRml4IHR3byBidWdzIGluIHRoZSBkZHIgaW5mcmFzdHJ1Y3R1cmUKCiAgICAxLiB3cl9sYXQKICAgICAgIFVNIHNhaWQgdGhlIHRvdGFsIHdyaXRlIGxhdGVuY3kgZm9yIEREUjIgaXMgZXF1YWwgdG8KICAgICAgIFdSX0xBVCArIEFERF9MQVQsIHRoZSB3cml0ZSBsYXRlbmN5IGlzIENMICsgQUREX0xBVCAtIDEuCiAgICAgICBzbywgdGhlIFdSX0xBVCA9IENMIC0gMTsKICAgIDIuIHJkX3RvX3ByZQogICAgICAgd2UgbWlzc2VkIHRvIGFkZCB0aGUgQUREX0xBVCBmb3IgRERSMiBjYXNlLgoKICAgIFJlcG9ydGVkLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTQwZGNmMWNiODY5NjFlMTFhYTkyYzQ3NjcxZjI3NzYyYzU4MWQ4YwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBNYXIgMjYgMDE6MzQ6MzkgMjAwOSAtMDUwMAoKICAgIDgzeHg6IFVzZSBjb21tb24gTFNETVIgZGVmaW5lcyBmcm9tIGFzbS9mc2xfbGJjLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjBmZTkzZWRhNjk3MjFhZWYxZmRlZjU3NjE2NGI2NjhmYWQ4M2JiZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBNYXIgMjYgMDE6MzQ6MzggMjAwOSAtMDUwMAoKICAgIDg1eHg6IFVzZSBjb21tb24gTFNETVIgZGVmaW5lcyBmcm9tIGFzbS9mc2xfbGJjLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDAwODhjMjk4ZjBlZWI5MGVjMDAxZjc0NGU5OTU5ZGVhODNkZDU2M2EKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTWFyIDI2IDAxOjM0OjM3IDIwMDkgLTA1MDAKCiAgICBBZGQgTFNETVIgKFNEUkFNIE1vZGUgUmVnaXN0ZXIpIGRlZmluaXRpb24gb24gbG9jYWxidXMKCiAgICBUaGUgbWFza3MgZm9yIHZhcmlvdXMgYml0IGRlZmluZXMgb2YgTFNETVIgYXJlIGNvbW1vbiBhbmQgdGh1cyB3ZSBjYW4KICAgIGRlZmluZSB0aGVtIGluIG9uZSBwbGFjZSByYXRoZXIgdGhhbiByZXBsaWNhdGluZyB0aGVtIGluIGVhY2ggY29uZmlnLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg5YzAwZmIxNTg1OTIxMzc4OGYwYWQwODk5MzRjMzc2ZmIzNTYwOTkKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6NDEgMjAwOSArMDIwMAoKICAgIE9NQVA6IHVzZSB7cmVhZCx3cml0ZX1sIHRvIGFjY2VzcyB0aW1lciByZWdpc3RlcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgODE0NzJkODkzZmE1NjVjOWQzMDA5MjhhNDBlNTA0YTY4OWJkZTEzMQpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJTW9uIE1hciAzMCAxODo1ODo0MSAyMDA5ICswMjAwCgogICAgT01BUDogcmVuYW1lIHRpbWVyIGRpdmlzb3IKCiAgICBEaXZpc29yIGZpZWxkIGlzIGNhbGxlZCBQVFYgbm90IFBWVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGZlNjcyZDYwYjJhOGM5ZTgwMzU5NmJhNDUzM2ZhMTc3NjAxNTU1MWQKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6NDAgMjAwOSArMDIwMAoKICAgIE9NQVA6IHJlaW5kZW50IHRpbWVyIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgYjNmNjZiMGJhMDk5NDllMDc5NmNlN2ZhZDYzNjdmNzVmMTVlZDg5MApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6NDAgMjAwOSArMDIwMAoKICAgIHMzYzI0MTA6IG1vdmUgbmFuZCBkcml2ZXIgdG8gZHJpdmVycy9tdGQvbmFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDNiNjM1Nzc0MTk0NDA0YmNkNDI0ZjZiMzc2NDE5YmNlMjIwNzZhZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6NDAgMjAwOSArMDIwMAoKICAgIHMzYzI0eDA6IG1vdmUgaTJjIGRyaXZlciB0byBkcml2ZXJzL2kyYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzAwZjk5ZjQ1MzlkZDVjYWY3ZTE5YWY1ZTRlYTVlYjI1OTQ0NTkxMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6MzkgMjAwOSArMDIwMAoKICAgIHMzYzI0eDA6IG1vdmUgc2VyaWFsIGRyaXZlciB0byBkcml2ZXJzL3NlcmlhbAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTQyYmE5OTY5YjllZmEyNWY4MTZjMjM4ODYxZWNiMzM5YzU0ZWQ3MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6MzkgMjAwOSArMDIwMAoKICAgIGRhdmluY2k6IG1vdmUgaTJjIGRyaXZlciB0byBkcml2ZXJzL2kyYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWU0ZjNlMjc2NWExYzY1Yzk4NjFjNWQyY2YyZTZmZWI4NGI5MGJkOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6MzkgMjAwOSArMDIwMAoKICAgIGRhdmluY2k6IG1vdmUgbmFuZCBkcml2ZXIgdG8gZHJpdmVycy9tdGQvbmFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDNlNTVkMDc3NGExODBjMTgzN2JkN2RkZWM0NjQwMTVlODgzYmQ4NgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzAgMTg6NTg6MzggMjAwOSArMDIwMAoKICAgIGlteDogbW92ZSBzZXJpYWwgZHJpdmVyIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyMzQ0YmI4ZGUyMzU0MTAxYTgyNjRjMjEyMzMwM2M5ZDhkMmFlZDNjCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMzAgMDA6MzE6MzYgMjAwOSArMDIwMAoKICAgIGlua2E0eDA6IFVzZSBwcm9wZXIgYWNjZXNzb3IgbWFjcm9zIGZvciBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBlOTc5ZTg1ZmQzOWIwNjQzNjkyMmJiNGQ2YmI1ZmFmY2JjNzc1MTgyCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMzAgMDA6MzE6MzUgMjAwOSArMDIwMAoKICAgIGlua2E0eDA6IEFkZCBoYXJkd2FyZSBkaWFnbm9zaXMgYW5kIFJUQyBpbiBjb25maWd1cmF0aW9uLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgYm9hcmQgc3BlY2lmaWMgY29tbXVuaWNhdGlvbiByb3V0aW5lcyBuZWVkZWQgYnkKICAgIHRoZSBleHRlcm5hbCA0NTQzIFJUQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUGZlZmZlcmxlIDxhcEBkZW54LmRlPgoKY29tbWl0IDdiNTYxMWNkZDEyY2EwY2MzM2Y5OTRmMGQ0YTQ0NTQ3ODhmYzMxMjQKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzMCAwMDozMTozNCAyMDA5ICswMjAwCgogICAgaW5rYTR4MDogQWRkIGhhcmR3YXJlIGRpYWdub3NpcyBmdW5jdGlvbnMgZm9yIGlua2E0eDAKCiAgICBUaGlzIHBhdGNoIGFkZHMgYWR2YW5jZWQgZGlhZ25vc2lzIGZ1bmN0aW9ucyBmb3IgdGhlIGlua2E0eDAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBQZmVmZmVybGUgPGFwQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAwNGUxMWNmMzgzZmY2MjMxNTM1ZmQ5ODEwMjNiYjEzMDZiMjEzM2Q0CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMzAgMDA6MzE6MzMgMjAwOSArMDIwMAoKICAgIHJ0YzogYWRkIHN1cHBvcnQgZm9yIDQ1NDMgUlRDIChtYW51ZmFjdHVyZWQgYnkgZS5nLiBFUFNPTikKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUGZlZmZlcmxlIDxhcEBkZW54LmRlPgoKY29tbWl0IDU3MmU2MTc5YWRiNTQ0N2ZmNDJlYzJhYTVjZjNhMjZkZWNmOTc1ODMKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzMCAwMDozMTozMiAyMDA5ICswMjAwCgogICAgZHJpdmVycy90d3NlcmlhbDogQWRkIHByb3RvY29sIGRyaXZlciBmb3IgInRocmVlIHdpcmUgc2VyaWFsIiBpbnRlcmZhY2UuCgogICAgVGhpcyBwcmV0dHkgdW5pbnRlbGxpZ2VudCBpbnRlcmZhY2UgaXMgdXNlZCBvbiBzb21lIFJUQyBjaGlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBhNmVmM2RkZWFmYmU4MDA3YWYzNjYyY2M0NTA5Yjg5N2M1M2FiMzk1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciAyOSAyMzowMTo0MiAyMDA5ICswMjAwCgogICAgYXJtNzIwdC9jbHBzNzExMTogbW92ZSBzZXJpYWwgZHJpdmVyIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgYWRkIENPTkZJR19DTFBTNzExMV9TRVJJQUwgdG8gYWN0aXZhdGUgdGhlIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjc5MGM1NTcwNDUzMWViOThmNzZiNTFkNTBlMGY3M2QxOWZhMjk4OApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgMjkgMjM6MDE6NDIgMjAwOSArMDIwMAoKICAgIGxwYzIyOTI6IG1vdmUgc2VyaWFsIGRyaXZlciB0byBkcml2ZXJzL3NlcmlhbAoKICAgIGFkZCBDT05GSUdfTFBDMjI5Ml9TRVJJQUwgdG8gYWN0aXZhdGUgdGhlIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTc2YTYwMGQwZWNkYWNjYmFjNDgzZDJiYTk5MmQwMTE5Zjg1MzExOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgMjkgMjM6MDE6NDIgMjAwOSArMDIwMAoKICAgIGtzODY5NTogbW92ZSBzZXJpYWwgZHJpdmVyIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgYWRkIENPTkZJR19LUzg2OTVfU0VSSUFMIHRvIGFjdGl2YXRlIHRoZSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZkMjdiY2ExNWQ0NDVmY2YwN2Q2ZTdlMzBjZWQ5NWM5NDVjODc1ZWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjQyIDIwMDkgKzAyMDAKCiAgICBzM2M2NHh4OiBtb3ZlIHVzYiBkcml2ZXIgdG8gZHJpdmVycy91c2IKCiAgICBhZGQgQ09ORklHX1VTQl9TM0M2NFhYIHRvIGFjdGl2YXRlIHRoZSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGVjZmE4ZGRhMmY1NWUxZmJlMTJkZWUwYjVjYzE2ZTdkNDg0Njc0YzkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjQxIDIwMDkgKzAyMDAKCiAgICBpbXgzMTogbW92ZSBzZXJpYWwgZHJpdmVyIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5ZWE5MWM5ZmVmYjM5MjBkNzM1NTMzYTc3OThjMWE0NGEzZWQzZmZjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciAyOSAyMzowMTo0MSAyMDA5ICswMjAwCgogICAgbmV0YXJtOiBtb3ZlIHNlcmlhbCBkcml2ZXIgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBhZGQgQ09ORklHX05FVEFSTV9TRVJJQUwgdG8gYWN0aXZhdGUgdGhlIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDEyYWI3MDU4ODg3NDJhZGQ0MzVkZDZmZmMyZThiZGExNDk2MjIzNQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgMjkgMjM6MDE6NDEgMjAwOSArMDIwMAoKICAgIHNhMTEwMDogbW92ZSBzZXJpYWwgZHJpdmVyIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgYWRkIENPTkZJR19TQTExMDBfU0VSSUFMIHRvIGFjdGl2YXRlIHRoZSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGIyMzY4NzU0YTkyMDIyMjVmZDA3MmUxNTlmYjc4ZGE3ZDJjZGI2MjMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjQxIDIwMDkgKzAyMDAKCiAgICBzM2M0NGIwOiBleHRyYWN0IGNhY2hlIGZyb20gY3B1LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQwZmQ2MjYyMjNlYWU1MzYzNzE5YmNiOWE2ODk2ZjA4Y2VlZWU5MGEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjQxIDIwMDkgKzAyMDAKCiAgICBzM2M0NGIwOiBtb3ZlIHNlcmlhbCBkcml2ZXIgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDVmZTEzNzdjYzQ2MTk5ZmU3MWM0N2JlNGIxYWE4MTQ0MGFlOTZmOWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjQwIDIwMDkgKzAyMDAKCiAgICBzM2M0NGIwOiBtb3ZlIHJ0YyBkcml2ZXIgdG8gZHJpdmVycy9ydGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDUwZjYwMWNjYTg5ODU2MTVmOWUzZGU0YzM0ODg3NDQ4YWRlOGE2NGIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjQwIDIwMDkgKzAyMDAKCiAgICBzM2M0NGIwOiBtb3ZlIGkyYyBkcml2ZXIgdG8gZHJpdmVycy9pMmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI4MWRmYjBjMGM1MzExOTRmOTllNjBkNjI4NWNjYTRlMmE5ZmIxYjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDI5IDIzOjAxOjM2IDIwMDkgKzAyMDAKCiAgICBzM2M0NTEwYjogbW92ZSBzcGVjaWZpYyBjb2RlIHRvIHNvYyBkaXJlY3RvcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA0NTMxZjNjMTFjNjkzZGM1NDkyNGY4MmM0MTk3OWQ5NjAzMDljOWQKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CVdlZCBNYXIgMjUgMjM6NDM6NTggMjAwOSArMDEwMAoKICAgIE5ldFN0YXI6IGFkZCBSVEMgc3VwcG9ydAoKICAgIEFkZCBSVEMgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgNzFmN2JkMzA1ZDk3NjhiY2I3ZGRiZTRiNTgyM2NiZjNiMzU5N2IxMQpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIE1hciAyNSAyMzo0Mzo1MCAyMDA5ICswMTAwCgogICAgTmV0U3RhcjogdXNlIGdlbmVyaWMgZmxhc2ggZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKY29tbWl0IDNmNDY0YjBmYzAwOWQ0MWQyNzM0YzA4ZTQ3MmViNmQ0NDVmNzNhNWMKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CU1vbiBNYXIgMTYgMjM6MzE6MjAgMjAwOSArMDEwMAoKICAgIE5ldFN0YXI6IHVwZGF0ZSBjcmNpdCB1dGlsaXR5CgogICAgTWFrZSBjcmMzMiBmdW5jdGlvbiB0byBtYXRjaCBpdHMgcHJvdG90eXBlLiBVc2UgbW9yZSBtZWFuaW5nZnVsIGlkZW50aWZpZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCmNvbW1pdCA0ODhmNWQ4NzkwYzQ1MWZjNTI3ZmU1ZDJlZjIxOGYyYTVlNDBlYTE3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglNb24gTWFyIDIzIDE3OjQ2OjI3IDIwMDkgKzAxMDAKCiAgICBSZW1vdmUgbm93aGVyZSB1c2VkIHN5bWJvbCBDT05GSUdfU1lTX0NMS1NfSU5fSFoKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgODg2ODViNWY2MjI3NDE2N2FkMmJhOGE1OGUxMDhkODlmZjcxOTU1YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgMjkgMDA6NTg6MTYgMjAwOSArMDEwMAoKICAgIFZDTUE5OiBmaXggY29tcGlsZSBlcnJvcnMKCiAgICBGaXggdGhlc2U6CiAgICBjbWRfdmNtYTkuYzo4Mjogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2V0aF9nZXRlbnZfZW5ldGFkZHInCiAgICBjbWRfdmNtYTkuYzo4OTogZXJyb3I6ICdlbmV0YWRkcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyNmU0MmNiZDc4NjI0MWZlYzM3MGEwYjkyYWQ1OTFmNGU5Y2M0MjNiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAyOSAwMDo1NDoyMSAyMDA5ICswMTAwCgogICAgQVJNOiBmaXggd2FybmluZzogJ3ByaW50X2V0aCcgZGVmaW5lZCBidXQgbm90IHVzZWQKCiAgICBUaGlzIHdhcm5pbmcgZ290IGlzc3VlZCBmb3IgYWxsIEFSTSBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZQogICAgQ09ORklHX0NNRF9ORVQgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZkODhkOTFhNjM5Y2U0MWI4MjVjOGQ1MGRjMjE4MjA1MGU5OGZlNTMKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CU1vbiBNYXIgMjMgMTg6MTY6MzQgMjAwOSArMDEwMAoKICAgIGNzODkwMCBjb21waWxlIGZpeAoKICAgIGNzODkwMC5jOiBJbiBmdW5jdGlvbiAnZXRoX2luaXQnOgogICAgY3M4OTAwLmM6MTY0OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ2V0aF9nZXRlbnZfZW5ldGFkZHInIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQogICAgY3M4OTAwLmM6MTY1OiBlcnJvcjogaW52YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkgPDwKICAgIGNzODkwMC5jOjE2NjogZXJyb3I6IGludmFsaWQgb3BlcmFuZHMgdG8gYmluYXJ5IDw8CiAgICBjczg5MDAuYzoxNjc6IGVycm9yOiBpbnZhbGlkIG9wZXJhbmRzIHRvIGJpbmFyeSA8PAoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQyNTY3YmU5MTUwMzY3MjA2OTNmM2RkZDAwYzM5YjViNGQ4NmZiOGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI4IDIwOjE2OjE2IDIwMDkgKzAxMDAKCiAgICBGaXggaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2V0aF9bZ3NdZXRlbnZfZW5ldGFkZHInCgogICAgLi4uYW5kIHNvbWUgb3RoZXIgY29tcGlsZSB3YXJuaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk3YjA1ZDdkNTI0YTZiNGYxOTVmMDdiOGY5MGU5ODU2MWE4NTU5NmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI4IDE2OjE3OjI5IDIwMDkgKzAxMDAKCiAgICBtcGM4eHgvZXRoZXIuYzogZml4IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnYmQnCgogICAgQWxzbyBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJkY2U1NTFlMTA3MjhmOWU1NjU1Mjc5Zjc2MWYxZDNjYzBhOGZlOTAKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNSAxNzoyNzo1MiAyMDA5ICswMTAwCgogICAgY29tbWFuZC5jOiBFeHBvc2UgdGhlIGNvcmUgb2YgZG9faGVscCBhcyBfZG9faGVscCB0byB0aGUgcmVzdCBvZiB1LWJvb3QuCgogICAgT3RoZXIgY29tbWFuZHMgaW1wbGVtZW50aW5nIHN1YmNvbW1hbmRzIGNhbiByZXVzZSB0aGlzIGNvZGUgbmljZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBQZmVmZmVybGUgPGFwQGRlbnguZGU+Cgpjb21taXQgNGUzMjVmYmZhNGRlYTA0ZWNlYjYzOTJlMDA4MDdjNDBkMjE0ZGM2ZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDI0IDE4OjAyOjMzIDIwMDkgKzAxMDAKCiAgICBtcGM1eHh4OiBBZGQgc3RydWN0dXJlIGRlZmluaXRpb24gZm9yIHNldmVyYWwgbW9yZSByZWdpc3RlciBibG9ja3MuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNzM5YjBlNTk0Njc3YTA2NzY1NzdiYzk1ZGI0NDk1YTU1NjNmYzdmOApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDI3IDE1OjAzOjU1IDIwMDkgKzAxMDAKCiAgICBNQUlOVEFJTkVSUzogQWRkIGVudHJ5IGZvciAnaW5rYTR4MCcgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZTU1ZWNlYzQ1MzQwNzU1ZWY0N2NiYmIxM2ZiMzVjZWVkNjBlYjExNQpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDI3IDE1OjAzOjU0IDIwMDkgKzAxMDAKCiAgICBNQUlOVEFJTkVSUzogS2VlcCBsaXN0IHNvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAwYmFlY2E0YjA5YjcwMzcyOGY4ZTY2YjUyNDE4MDM5ZmQ4ZjhjZTM1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgTWFyIDI2IDExOjE3OjQxIDIwMDkgLTA0MDAKCiAgICBrYXJlZi9tZXRyb2JveC94cGVkaXRlMWs6IGZpeCBldGhfc2V0ZW52X2VuZXRhZGRyIHR5cG9zCgogICAgVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCAiZXRoX3NldGVudl9lbmV0YWRkciIsIG5vdCAiZXRoX3B1dGVudl9lbmV0YWRkciIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNzY3NTZlNDFjZGUwYTYxN2U3ODFhNjA0Y2M0N2RmYWVmNjM2OTdjZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgTWFyIDI2IDA3OjMzOjU5IDIwMDkgKzAxMDAKCiAgICBwcGM6IGNsZWFudXAgY29tcGlsZXIgZXJyb3JzL3dhcm5pbmdzCgogICAgQ3VycmVudCB1LWJvb3QgdG9wIG9mIHRyZWUgYnVpbGRzIHdpdGggd2FybmluZ3MvZXJyb3JzIGZvcgogICAgdGhlIGZvbGxvd2luZyBib2FyZHM6CgogICAgYWRzNTEyMSBjcGNpNTIwMCBtZWNwNTIwMCB2MzhiIElBRDIxMCBNQlggTUJYODYwVCBOWDgyMwogICAgUlBYQ2xhc3NpYyBkZWJyaXMgUE42MgoKICAgIGZvbGxvd2luZyBwYXRjaCBzb2x2ZXMgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgM2VkZjY4YzQ3ZmRkNTJmMTljMWU4NDA3NzFjMTliYTkwY2Y1Y2VkMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNiAxNjoxNDoxMyAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBTZXF1b2lhOiBGaXggVExCIHJlYXNzaWdubWVudCBpbiBOQU5EIGJvb3RpbmcgY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIFNlcXVvaWEgVExCIGluaXQgY29kZSB0byByZWNvbmZpZ3VyZQogICAgdGhlIGNvcnJlY3QgVExCIChib290IHNwYWNlKSBhZnRlciBydW5uaW5nIGZyb20gUkFNLiBUaGlzIGJ1ZyB3YXMKICAgIGludHJvZHVjZWQgd2l0aCBwYXRjaCA0ZDMzMmRiZWIwOGY1ODYzZDFlYTY5ZDkxYTAwYzU0OTlkM2E4N2VkCiAgICBbcHBjNHh4OiBNYWtlIFNlcXVvaWEgYm9vdCB2eFdvcmtzXSB3aGljaCBjaGFuZ2VkIHRoZSBvcmRlciBvZiB0aGUKICAgIFRMQiBpbiB0aGUgU2VxdW9pYSBpbml0LlMgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTJiNjZmZTQ1M2EzNjc5ZjgwN2IzN2ZjNTkyM2Q4OTIxNDMwMjc2NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjYgMTA6MDA6NTcgMjAwOSArMDEwMAoKICAgIGFkczUxMjE6IGVuYWJsZSBpbnN0cnVjdGlvbiBjYWNoZQoKICAgIEVuYWJsaW5nIHRoZSBpbnN0cnVjdGlvbiBjYWNoZSBzaWduaWZpY2FudGx5IGFjY2VsZXJhdGVzIFUtQm9vdAogICAgb3BlcmF0aW9ucyBsaWtlIENSQyBjaGVja2luZywgaW1hZ2UgdW5jb21wcmVzc2lvbiwgZXRjLgoKICAgIEt1ZG9zIHRvIEFuZHJlYSBTY2lhbiBmb3IgcG9pbnRpbmcgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzNlODhjNTU3YjI5Yzg0YzUyMDM5YmEwNTk5M2ZhNzBmZTYyYWZlMwpBdXRob3I6IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDIyIDIyOjU1OjQ1IDIwMDkgLTA0MDAKCiAgICBtcGM1MjAwOiBzdXBwcmVzcyBwcmludGYgdW50aWwgY29uc29sZSBpbml0aWFsaXplZAoKICAgIE9uIGJvYXJkcyB3aGljaCBoYXZlIHRoZSBlbnZpcm9ubWVudCBpbiBlZXByb20sIGkyY19pbml0KCkgaXMgY2FsbGVkCiAgICBiZWZvcmUgdGhlIGNvbnNvbGUgYW5kIFJBTSBhcmUgaW5pdGlhbGl6ZWQuCiAgICBTdXBwcmVzcyBwcmludGZzIHVudGlsIHRoZSBjb25zb2xlIGlzIGluaXRpYWxpemVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgogICAgQWNrZWQtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDBjNjkyNjczNmVmZmJiOWExOTA0Nzk0OWI3ZTliM2U4ZmVhYjdjNDYKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjUgMTE6MzY6NTAgMjAwOSArMDEwMAoKICAgIEFSTTogQWRkIHRoZSBpbXgzMV9waHljb3JlX2VldCBib2FyZCB0byBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDkxN2NmYzcwYzE4Yjc0ZmE4YTgwMTg5YmRjZTgzOTUxOTlmYTgzNjAKQXV0aG9yOiBOaXNoYW50aCBNZW5vbiA8bm1AdGkuY29tPgpEYXRlOglXZWQgTWFyIDI1IDIyOjEzOjU2IDIwMDkgKzAxMDAKCiAgICBPTUFQMzpCZWFnbGU6IEVuYWJsZSBtdGRwYXJ0cwoKICAgIGh0dHA6Ly93d3cuZGVueC5kZS93aWtpL0RVTEcvVUJvb3RDbWRHcm91cEZsYXNoI1VCb290Q21kRmxNdGRwYXJ0cwogICAgcHJvdmlkZXMgYSBmbGV4aWJsZSB3YXkgdG8gY3JlYXRlIGFuZCBtYWludGFpbiB1LWJvb3QgbXRkCiAgICBwYXJ0aXRpb25zLiBUaGlzIGFsbG93cyBjb21tYW5kcyBzdWNoIGFzICJuYW5kIGVyYXNlIGZzIgogICAgdG8gd29yayBhbmQgdGhlIHVzZXIgbm8gbG9uZ2VyIG5lZWRzIHRvIGRlY29kZSB0aGUgYWJzb2x1dGUKICAgIG5hbmQgb2Zmc2V0cy4gVGhpcyBwYXRjaCBlbmFibGVzIHRoaXMgZnVuY3Rpb24gZm9yIGJlYWdsZWJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTmlzaGFudGggTWVub24gPG5tQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGRlMWE1ZGFhYjA3OWRkYzhjZTEyNzQxNDQ3MDAyMDNkNjkyMTA1YwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIEZlYiAyMiAxNjoyNjozNSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IGJmNTM3LXN0YW1wOiBzcGxpdCBwb3N0IGNvZGUgb3V0IGludG8gZGVkaWNhdGVkIHBvc3QuYwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1ZThmMjQ1NzQzZWQxNGM4OWU0OTViYTJjMDI3NzAzZGI5ODEzMTYwCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIyOjUxOjU2IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYWRkIHN1cHBvcnQgZm9yIFMyNUZMMTI4IHBhcnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJmMWUwMjhiZjNlYWIxZDcwMmZhMDYyN2NhZGU0NDYwNjg4ZjM5MTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjI6NTE6MjMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBvdmVyaGF1bCBTUEkgZmxhc2ggaGFuZGxpbmcgdG8gc3BlZWQgdGhpbmdzIHVwCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGVmY2MwOGNlZGVkYTIxNjhiOTZmMTJhMjJhNTg3MjM0MDg4MGQzMzQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjI6NTE6MDUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgc3VwcG9ydCBmb3IgU1NUIFNQSSBmbGFzaGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDViOGNmYmU2M2Y3MjQyZWJiMTAwOGYzMGJiYmM4NWE5ZDU0YjM4Y2YKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjI6NTA6MTAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgaGFjayBmb3IgY3JhcHB5IG0yNXA4MAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2ZjVmZDU2ZjA4MzJlYTVjMjU0ZTJlNGJlODRlYTIxZmM4ZWNkNWM1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgSmFuIDIxIDIwOjQ3OjEyIDIwMDkgLTA1MDAKCiAgICBCbGFja2ZpbjogYmY1Mzctc3RhbXA6IGluY3JlYXNlIG1vbml0b3Igc2l6ZQoKICAgIFRoZSBuZXcgamZmczIgY29kZSBwdXNoZWQgdGhlIGNvZGUgc2l6ZSBqdXN0IG92ZXIgdGhlIGxpbWl0LCBzbyBpbmNyZWFzZQogICAgdGhlIGxpbWl0IGEgYml0IG1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGY4MmNhYWNjYzg3ZTFmNzY0NDhmZjQyYTZiOTMwZTU5Nzk3ZTRmNjUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBEZWMgOCAxNjoxNjoxMSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGJmNTM3LXN0YW1wOiBidW1wIGRlZmF1bHQgU0NMSyB1cCB0byAxMjVNSHoKCiAgICBTaW5jZSBhbGwgb2YgdGhlIGJmNTM3LXN0YW1wIGFuZCBiZjUzNy1lemtpdCBib2FyZHMgb3V0IHRoZXJlIGNhbiBoYW5kbGUgaXQsCiAgICBpbmNyZWFzZSB0aGUgc3BlZWQgb2YgU0NMSyB0byAxMjVNSHogcmF0aGVyIHRoYW4gMTAwTUh6LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA3NTFlNTRjM2I3NzMxMWI3MjBiNzk0ODEzY2NlMjA1NDZmMjg4YWRhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIyOjQ0OjE0IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1Mzctc3RhbXA6IHJld3JpdGUgTUFDLWluLWZsYXNoIGhhbmRsaW5nCgogICAgVXNlIHRoZSBjb21tb24gbmV0IGV0aCBmdW5jdGlvbnMgdG8gc2V0dXAgdGhlIGVudi9nbG9iYWwgZGF0YSB3aXRoIHRoZSBNQUMKICAgIGFkZHJlc3MsIGFuZCBwcm9wZXJseSBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgQ09ORklHX1NZU19OT19GTEFTSCBpcyBkZWZpbmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4OGY5ZmFmZmIzODNiYmM2ZjIzYjhjYzg1MTljNWZmZWNmYTJjOGFkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDkgMTM6NDc6MzkgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBhZGQgY2xraW5faHo9IHRvIGRlZmF1bHQga2VybmVsIGNvbW1hbmQgbGluZSBmb3IgQURJIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA5ZjY0YmEyNDEyZDNjZWRlOWViMWYyOTA5ODdlNWMzYTI4ZGYzMjMyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gT2N0IDEyIDIzOjQ5OjEzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1MzMtc3RhbXA6IGJ1bXAgdXAgZGVmYXVsdCBjbG9ja3MKCiAgICBTaW5jZSB0aGUgaGFyZHdhcmUgY2FuIGhhbmRsZSBpdCwgYnVtcCB0aGUgZGVmYXVsdCBjbG9ja3MgZnJvbSA4MG1oeiBTQ0xLCiAgICBhbmQgMzk4bWh6IENDTEsgdG8gMTAwbWh6IFNDTEsgYW5kIDQ5OG1oeiBDQ0xLLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyM2ZkOTU5ZWVhYWEwNDM0YWM3ZjljMTE5MWRlNjZjNzZkOTdkNjk5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIyOjQwOjIyIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1MzMtc3RhbXA6IHJld3JpdGUgc3RhcnR1cCBMRUQgbm90aWZpY2F0aW9ucwoKICAgIEFnYWluLCBkb24ndCBjbG9iYmVyIHBpbnMgdGhhdCB3ZSBhcmVuJ3QgYWN0dWFsbHkgdXNpbmcsIGFuZCB1c2UgdGhlIGNvbW1vbgogICAgTEVEIGZyYW1ld29yayByYXRoZXIgdGhhbiBvdXIgb3duIGhvYi1qb2ItYnV0LW5vdC1yZWFsbHktd29ya2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2Y2ZjQ2OWUyNzMwZmM4YWIzNTIzODA4YjgyOGJlMDAwZDZlZWU3NwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIEp1biAxIDA5OjA5OjQ4IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogdW5pZnkgY29tbW9uIEFESSBib2FyZCBzZXR0aW5ncwoKICAgIFJhdGhlciB0aGFuIGR1cGxpY2F0ZSB0aGUgc2FtZSBBREkgc2V0dGluZ3MgaW4gZXZlcnkgQURJIGJvYXJkLCBjcmVhdGUgYQogICAgY29tbW9uIEFESSBjb25maWcgaGVhZGVyIGFuZCBoYXZlIGFsbCBBREkgYm9hcmRzIHN0YXJ0IHVzaW5nIHRoYXQuCVRoaXMKICAgIHdpbGwgYWxzbyBtYWtlIG1lcmdpbmcgdGhlIH4xMCBib2FyZHMgSSBoYXZlIHRvIGZvcndhcmQgcG9ydCBhIGxvdCBlYXNpZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDE5NmM3NDMxMWYzOTRjNmViMDhiZDlhYjA3YTM1NjcxMjk5Yjk4NTEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIE1hciAzIDA5OjA1OjUzIDIwMDkgKzA5MDAKCiAgICBSZWR1Y2UgT25lTkFORCBJUEwgY29tbW9uIGNvZGUKCiAgICBPbmVOQU5EIElQTCBoYXMgY29tbW9uIGNvZGVzIGZvciBSQU0gaW5pdCwgbG9hZCBkYXRhLCBhbmQganVtcCB0byAybmQKICAgIGJvb3Rsb2FkZXIsIGJ1dCBpdCdzIGNvbW1vbiBjb2RlIHVzZWQgYWJvdXQgMzAwfjQwMCBieXRlcy4gU28gYm9hcmQKICAgIHNwZWNpZmljIGNvZGVzLCBzdWNoIGFzIGxvd2xldmVsX2luaXQsIGNhbid0IGhhcyBlbm91Z2ggY29kZS4gSXQgbWFrZQogICAgYSBkaWZmaWN1bHQgdG8gaW1wbGVtZW50IE9uZU5BTkQgSVBMLgoKICAgIGhpcyBwYXRjaCBtYWtlIHRoaXMgY29tbW9uIGNvZGUgYXMgc21hbGwgYXMgcG9zc2libGUuIGFuZCBnaXZlCiAgICBsb3dsZXZlbF9pbml0IGNhbiBoYXZlIG1vcmUgY29kZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE2ZjJmNWEzNTEwMDQxMjllNzllNzk4MTY2OTdhMzY3ZmQ5ZTU0NDYKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxODozODoyNCAyMDA5ICswMTAwCgogICAgQWRkIG11bHRpLWNoaXAgTkFORCBzdXBwb3J0IGZvciB0aGUgVFFNODU0OCBtb2R1bGVzCgogICAgVGhpcyBwYXRjaGVzIGNvbmZpZ3VyZXMgdGhlIE5BTkQgVVBNLUZTTCBkcml2ZXIgd2l0aCBtdWx0aS1jaGlwCiAgICBzdXBwb3J0IGZvciB0aGUgTWljcm9uIE1UMjlGOEcwOEZBQiBOQU5EIGZsYXNoIG1lbW9yeSBvbiB0aGUKICAgIFRRTTg1NDggbW9kdWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMzODQ2ZGYyOGZhMWY0Y2Y5NmE5NmMxODE0MmQ0OGQ4MTNjYWE4OTIKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxODozODoyMyAyMDA5ICswMTAwCgogICAgQWRkIHdhaXQgZmxhZ3MgdG8gc3VwcG9ydCBib2FyZC9jaGlwIHNwZWNpZmljIGRlbGF5cwoKICAgIFRoZSBOQU5EIGZsYXNoIG9uIHRoZSBUUU04NTQ4X0JFIG1vZHVsZXMgcmVxdWlyZXMgYSBzaG9ydCBkZWxheSBhZnRlcgogICAgcnVubmluZyB0aGUgVVBNIHBhdHRlcm4gbGlrZSB0aGUgTVBDODM2MEVSREsgYm9hcmQgZG9lcy4gVGhlIFRRTTg1NDhfQkUKICAgIHJlcXVpcmVzIGEgZnVydGhlciBzaG9ydCBkZWxheSBhZnRlciB3cml0aW5nIG91dCBhIGJ1ZmZlci4gTm9ybWFsbHkgdGhlCiAgICBSL0IgcGluIHNob3VsZCBiZSBjaGVja2VkLCBidXQgaXQncyBub3QgY29ubmVjdGVkIG9uIHRoZSBUUU04NTQ4X0JFLgogICAgVGhlIGNvcnJlc3BvbmRpbmcgTGludXggRlNMIFVQTSBkcml2ZXIgdXNlcyBzaW1pbGFyIGRlbGF5IHBvaW50cyBhdCB0aGUKICAgIHNhbWUgbG9jYXRpb25zLiBUbyBtYW5hZ2UgdGhlc2UgZXh0cmEgZGVsYXlzIGluIGEgbW9yZSBnZW5lcmFsIHdheSwgSQogICAgaW50cm9kdWNlZCB0aGUgIndhaXRfZmxhZ3MiIGZpZWxkIGFsbG93aW5nIHRoZSBib2FyZC1zcGVjaWZpYyBkcml2ZXIgdG8KICAgIHNwZWNpZnkgdmFyaW91cyB0eXBlcyBvZiBleHRyYSBkZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA2ZTlmN2RmMDU0ZDI2ZDdmNDljNTZiZjlhNjg0NGIxOTNhZDYzMTMKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxODozODoyMiAyMDA5ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFRRTS1zcGVjaWZpYyBjaGlwIHNlbGVjdCBsb2dpYyB0byBGU0wtVVBNCgogICAgRm9yIHRoZSBOQU5EIGNoaXBzIG9uIHRoZSBUUU04NTQ4IG1vZHVsZXMsIGEgc3BlY2lhbCBjaGlwLXNlbGVjdCBsb2dpYyBpcwogICAgdXNlZC4gSXQgdXNlcyBkZWRpY2F0ZWQgYWRkcmVzcyBsaW5lcyB0byBiZSBzZXQgdmlhIFVQTSBtYWNoaW5lIGFkZHJlc3MKICAgIHJlZ2lzdGVyIChtYXIpLiBUaGlzIHBhdGNoIGFkZHMgc3VjaCBzdXBwb3J0IHRvIHRoZSBGU0wtVVBNIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5M2MxYzE2OWQ0OWVkYTdiYWJhZDljNzgxZjU0MWUyZTM0ZjBmZjAKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxODozODoyMSAyMDA5ICswMTAwCgogICAgQWRkIG11bHRpIGNoaXAgc3VwcG9ydCB0byB0aGUgRlNMLVVQTSBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGktY2hpcCBOQU5EIGRldmljZXMgdG8gdGhlIEZTTC1VUE0KICAgIGRyaXZlci4gVGhlICJkZXZfcmVhZHkiIGNhbGxiYWNrIG9mIHRoZSAic3RydWN0IGZzbF91cG1fbmFuZCIgaXMgbm93CiAgICBjYWxsZWQgd2l0aCB0aGUgYXJndW1lbnQgImNoaXBfbnIiIHRvIGFsbG93IHRlc3RpbmcgdGhlIHByb3BlciBjaGlwCiAgICBzZWxlY3QgbGluZS4gVGhlIE5BTkQgc3VwcG9ydCBvZiB0aGUgTVBDODM2MEVSREsgaXMgdXBkYXRlZCBhcyB3ZWxsLgogICAgTm8gb3RoZXIgYm9hcmRzIGFyZSBjdXJyZW50bHkgdXNpbmcgdGhlIEZTTCBVUE0gZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjcyZWQyYWVlOTFiNDg1NmY2NjcxZmM3MmNkMzQxNjhkOGYxYjYyNApBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgRmViIDExIDE4OjM4OjIwIDIwMDkgKzAxMDAKCiAgICBFbmFibGUgbXVsdGkgY2hpcCBzdXBwb3J0IGluIHRoZSBOQU5EIGxheWVyCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIE5BTkRfTUFYX0NISVBTIHRvIHRoZSBNVEQgTkFORCBsYXllci4KICAgIE11bHRpLWNoaXBzIGRldmljZXMgYXJlIGRpc3BsYXllZCBhcyBzaG93bjoKCiAgICAgIERldmljZSAwOiAyeCBOQU5EIDUxMk1pQiAzLDNWIDgtYml0LCBzZWN0b3Igc2l6ZSAxMjggS2lCCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NDM5OGIyM2Y5YzJmZmRjMTM3ZmQ5MjkxMGE0NmUzMzMzZmI5M2Y5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIxOjU4OjMzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcHV0IG1lbW9yeSBpbnRvIHNlbGYtcmVmcmVzaCBiZWZvcmUvYWZ0ZXIgcHJvZ3JhbW1pbmcgY2xvY2tzCgogICAgV2hlbiBpbml0aWFsaXppbmcgdGhlIGNvcmUgY2xvY2tzLCBzdGljayBleHRlcm5hbCBtZW1vcnkgaW50byBzZWxmLXJlZnJlc2guCiAgICBUaGlzIGdhaW5zIHVzIGEgZmV3IGNvb2wgdGhpbmdzOgogICAgIC0gc3VwcG9ydCBzdXNwZW5kLXRvLVJBTSB3aXRoIExpbnV4CiAgICAgLSByZXByb2dyYW0gY2xvY2tzIGF1dG9tYXRpY2FsbHkgd2hlbiBkb2luZyAiZ28iIG9uIHUtYm9vdC5iaW4gaW4gUkFNCiAgICAgLSBtYWtlIHN1cmUgc2V0dGluZ3MgYXJlIHN0YWJsZSBiZWZvcmUgZmxhc2hpbmcgbmV3IHZlcnNpb24KICAgICAtIGZpbmFsbHkgZnVsbHkgdW5pZnkgaW5pdGlhbGl6ZSBzdGFydHVwIGNvZGUgcGF0aCBiZXR3ZWVuIExEUi9ub24tTERSCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQzNDdkNTcyYWIxZjJkNDdiZjI1N2M5ZjdjYTJlNjAyMDM4YTEzNmIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NTY6MDggMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBkbyBub3QgcHJvZ3JhbSB2b2x0YWdlIHJlZ3VsYXRvciBvbiBwYXJ0cyB0aGF0IGRvIG5vdCBoYXZlIG9uZQoKICAgIFNvbWUgbmV3ZXIgQmxhY2tmaW5zIChsaWtlIHRoZSBCRjUxeCkgZG8gbm90IGhhdmUgYW4gb24tY2hpcCB2b2x0YWdlCiAgICByZWd1bGF0b3IsIHNvIGRvIG5vdCBhdHRlbXB0IHRvIHByb2dyYW0gdGhlIG1lbW9yeSBhcyBpZiBpdCBkb2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwZDRmMjRiNzBmN2E5NzlmNTgxNzRmM2ViMjcxODc0OTUwYjU1MWI2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gSnVuIDEgMDE6Mjg6MjQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzZXR1cCBhIHNhbmUgZGVmYXVsdCBFQklVX1NEQkNUTCBmb3IgU0RSQU0gY29udHJvbGxlcnMKCiAgICBJZiB0aGUgYm9hcmQgY29uZmlnIGRvZXMgbm90IHNwZWNpZnkgYW4gZXhwbGljaXQgRUJJVV9TREJDVEwgdmFsdWUsIHNldCBpdAogICAgdXAgd2l0aCBzYW5lIHZhbHVlcyBiYXNlZCBvbiBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDM5ODZlOTgxZjU2NWMwOGYxMGM3ZTUyNmFmOGNiNTE4ZDc0MWMzNDkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBEZWMgNiAxODowNjo1OCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGhhbmRsZSByZWJvb3QgYW5vbWFseSA0MzIKCiAgICBXb3JrYXJvdW5kIGFub21hbHkgNDMyOgogICAgVGhlIGJmcm9tX1N5c0NvbnRyb2woKSBmaXJtd2FyZSBmdW5jdGlvbiBkb2VzIG5vdCBjbGVhciB0aGUgU0lDX0lXUjEKICAgIHJlZ2lzdGVyIGJlZm9yZSBleGVjdXRpbmcgdGhlIFBMTCBwcm9ncmFtbWluZyBzZXF1ZW5jZS4gIFRoZXJlZm9yZSwgYW55CiAgICBpbnRlcnJ1cHQgZW5hYmxlZCBpbiB0aGUgU0lDX0lXUjEgcmVnaXN0ZXIgcHJpb3IgdG8gdGhlIGNhbGwgdG8KICAgIGJmcm9tX1N5c0NvbnRyb2woKSBjYW4gcHJlbWF0dXJlbHkgdGVybWluYXRlIHRoZSBpZGxlIHNlcXVlbmNlIHJlcXVpcmVkCiAgICBmb3IgdGhlIFBMTCB0byByZWxvY2sgcHJvcGVybHkuIFNJQ19JV1IwIGlzIHByb3Blcmx5IGhhbmRsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDdlMWQyMTJiNmRhNDkyYzZlYTMyYzYyYWY5MmUxODUyODRmNDEyOTEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTggMDQ6MDQ6NDkgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBraWxsIG9mZiBMRFIganVtcCBibG9jawoKICAgIFRoZSBCb290IFJPTSB1c2VzIEVWVDEgYXMgdGhlIGVudHJ5IHBvaW50IHNvIHNldCB0aGF0IHJhdGhlciB0aGFuIGhhdmluZwogICAgdG8gdXNlIGEgdGlueSBqdW1wIGJsb2NrIGluIHRoZSBkZWZhdWx0IEVWVDEgbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGE3NWZhMTQ4ZDYwYjE5NzU0MDM0NDFlNDU1NjU2MjFiYmE1MGQyZDkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBKYW4gNiAxMDowMDo0OCAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IHNpbXBsaWZ5IHN5bWJvbF9sb29rdXAoKSBhIGJpdAoKICAgIE5vIG5lZWQgdG8gc2tpcCBhIGJ5dGUgYXMgdGhlIHN5bWJvbCB0YWJsZSBoYW5kbGVzIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDU5ZjA5NzhhN2U3OGQyMDI3N2RkYmRlN2NhZjBlYTg3N2YzY2ZkOTgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBGZWIgNyAwNTo0MzoyMSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IGZpeCBTSUNfUlZFQ1QgZGVmaW5pdGlvbjogaXQgaXMgMTZiaXRzLCBub3QgMzJiaXRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDU4MTMwZjg5MjAxNTFkOWU4OTQyYmJkZjMzODhmMmRlZmI0N2U0MTUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBGZWIgNyAwNTo0MToxNyAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IGRyb3AgU1BPUlRfVFggcmVhZCBoZWxwZXIgbWFjcm9zCgogICAgVGhlIFNQT1JUX1RYIHJlZ2lzdGVycyBjYW5ub3QgYmUgcmVhZCAodGhlIGhhcmR3YXJlIHdpbGwgdHJpZ2dlciBhbiBlcnJvciksCiAgICBzbyBkcm9wIHRoZSByZWFkIGhlbHBlciBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDgyMGIwNzZjNDQ5Njg4YmNkNGFmNmRiNWEzM2FlNDI0ZDFhNjBkMGUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBGZWIgNyAwNToyNTozNSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IHVuaWZ5IGR1cGxpY2F0ZSBDUFUgcG9ydCBkZWZpbml0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA3NDRmZDI0MGQxODFiMGIwNWIxNDM2ZTFiNjU1YzlhNjI1MjZjNzUyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgRmViIDYgMDA6NTk6NTAgMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBkcm9wIG5vdy11bnVzZWQgQ09ORklHX1NZU19CRklOX0NNRF9YWFgKCiAgICBXaXRoIHRoZSBuZXcgQ09ORklHX1hYWCBzeXN0ZW0gYW5kIENPTkZJR19DTURfWFhYIGhhbmRsaW5nLCB0aGVzZSBkZWZpbmVzCiAgICBhcmUgbm8gbG9uZ2VyIHVzZWQvbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA0NWM0ODk1M2U4YTQwMzhiZDQ5YzQ2ODEzZmNmZjVhMjA3ODY3YWU0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDQ6MDE6MjYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBwcmludCBvdXQgRmxhc2g6IGJlZm9yZSBjaGVja2luZyBpdAoKICAgIElmIHRoZXJlIGlzIHNvbWUgcHJvYmxlbSBpbiB0aGUgZmxhc2ggaW5pdC9jaGVja2luZyBjb2RlLCBpdCdzIG5pY2VyIHRvIHNlZQogICAgdGhlIG1lc3NhZ2UgIkZsYXNoOiIgYmVmb3JlIGNyYXNoaW5nLiAgVGhpcyB3YXkgdGhlIHNvdXJjZSBvZiB0aGUgcHJvYmxlbQogICAgaXMgYSBiaXQgbW9yZSBzdHJhaWdodGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDFjN2E3OWEwNGViOTE2ZjY4NWY3Mjc1NTIwYjVlZWE2OTY4YTE1NTkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxNTozMzowOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHNhZmVseSBmbHVzaCBkYXRhIGNhY2hlcyB3aGVuIGluIHdyaXRlYmFjayBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGMwNmYyYjEzMDIyNzAzNjExYmMzZTUxMmJkMzRmOTAxNGE0NmY0NDgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxMzoyMTo0OCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHVwZGF0ZSBsb2NrYm94IGFwaSBhY2NvcmRpbmcgdG8gbGF0ZXN0IGRvY3VtZW50YXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMmRlY2MyYThkMTdhNTM5N2NiNTk1NmU0NmM4NDY2YzczNmUzMDVhMgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMTo0OTowNiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IG1hcmsgYmZpbl9yZXNldCBzdGF0aWMKCiAgICBUaGUgZnVuY3Rpb24gaXMgb25seSB1c2VkIGxvY2FsbHksIHNvIG1hcmsgaXQgc3RhdGljLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA5NzQ0NzNjYWE3MzJmNjMzMTI2ODdlZjJiZDJkMjJkYWQ4ZTk5YjlhCkF1dGhvcjogU29uaWMgWmhhbmcgPFNvbmljLlpoYW5nQGFuYWxvZy5jb20+CkRhdGU6CUZyaSBNYXIgMjAgMTk6Mjg6MjAgMjAwOSAtMDQwMAoKICAgIEJsYWNrZmluOiBzcGk6IHRoZXJlIGlzIG5vIFBPUlRKX0ZFUiBNTVIgb24gQkY1MzcKCiAgICBTaW5jZSB0aGUgUE9SVEogb24gdGhlIEJGNTM3IGlzIHBlcmlwaGVyYWwtb25seSAobm8gR1BJTyBmdW5jdGlvbmFsaXR5KSwKICAgIHRoZW4gdGhlcmUgaXMgbm8gUE9SVEpfRkVSIHJlZ2lzdGVyIGZvciB1cyB0byB3b3JyeSBhYm91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTb25pYyBaaGFuZyA8U29uaWMuWmhhbmdAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlODJiNzYyZjI5M2RlYmM1M2M1YWZhOTBmMzcyNjRmNmIwNzUyMGY5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgTWFyIDE3IDEzOjU4OjIzIDIwMDkgLTA0MDAKCiAgICBCbGFja2ZpbjogZml4IGp0YWcgY29uc29sZSB0c3RjCgogICAgVGhlIGp0YWcgdHN0YyBvcGVyYXRpb24gd2FzIGNoZWNraW5nIHRoZSBoYXJkd2FyZSB0byBzZWUgaWYgZGF0YSBpcwogICAgYXZhaWxhYmxlIGZyb20gaXQgKHdoaWNoIGlzIGZpbmUgZm9yIHRoZSBqdGFnIGdldGMgb3BlcmF0aW9uKSwgYnV0IHRoZQogICAgaGlnaGVyIGxheWVycyBuZWVkIHRvIGtub3cgd2hldGhlciBhbnkgZGF0YSBpcyBhdmFpbGFibGUuICBTaW5jZSB3ZSBoYXZlCiAgICB0byByZWFkIHVwIHRvIDQgYnl0ZXMgYXQgYSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlLCB0aGUgaGlnaGVyIGxheWVycyBuZWVkCiAgICB0byBrbm93IHRoZXkgY2FuIGNvbnN1bWUgdGhlIGNhY2hlZCBieXRlcyBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiYzY4M2Y1OGIxZjFkOGQyMDU0NmZlMDE5NDgzOTY3YTUxYTQ5ZGYxCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDIyIDE2OjIzOjQxIDIwMDkgLTA1MDAKCiAgICBCbGFja2ZpbjogYmY1Mzctc3RhbXA6IG1vdmUgQ09ORklHX1BPU1QgaGFuZGxpbmcgdG8gQ09CSlMtJCguLi4pCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg5OTZkMTYwOGFjYjhmNTlmY2IxODZkYzdlZDdkODdmOGZlZTEyOTcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBGZWIgMjIgMTY6MDI6MjcgMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiB1bmlmeSBuZXQtcmVsYXRlZCBpbml0IGNvZGUKCiAgICBVbmlmeSBhbGwgb2YgdGhlIG5ldC1yZWxhdGVkIGluaXQgY29kZSBpbiB0aGUgY29tbW9uIEJsYWNrZmluIGJvYXJkIGluaXQKICAgIGNvZGUgdG8gY2xlYW4gdXAgdGhlIGlmZGVmIG1lc3MgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGM2ZWEzMGU1MmVhODJhZjQ4NThkMmI2Zjk5ZTBmZDJlYTI3NmQ2NTcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTggMTI6NTE6NDggMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBmaXggU1dSU1QvU1lTQ1IgcmVnaXN0ZXIgc2l6ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYTlkNjc3N2QzOTE1NDk3OGI5ZWY5YzY4MmIyNjI3YTM0ODBiMTk0YwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxOCAxMjo1MTozMSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IHVwZGF0ZSBhbm9tYWx5IGxpc3RzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDRkN2MzMmRhZDJlNzg3Zjg5MGViY2Q1MWJmYjcyM2ExMjY5MTNjOTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgTWFyIDE5IDE4OjMxOjM4IDIwMDkgKzAxMDAKCiAgICBhdnIzMjogZml4IGNhY2hlZmx1c2guaCBsb2NhdGlvbiBpbnRyb2R1Y3RlZCBieSBkOGYyYWEzMjk4NjEwYgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgM2EzYmFmM2VlNjFlNmIyOGFmM2I0OWViYWJjOWFiNGY2MDE1YWE0OApBdXRob3I6IEVyaWMgU2NodW1hbm4gPEUuU2NodW1hbm5AcGh5dGVjLmRlPgpEYXRlOglTYXQgTWFyIDIxIDA5OjU5OjM0IDIwMDkgLTA0MDAKCiAgICBNYWtlIGZsYXNoIHByb3RlY3Rpb24gd29yaywgd2hlbiB0aGUgZW52aXJvbm1lbnQgaXMgaW4gRUVQUk9NCgogICAgT24gdGhlIHBjbTAzMCB0aGUgZW52aXJvbm1lbnQgaXMgbG9jYXRlZCBpbiB0aGUgb25ib2FyZCBFRVBST00uIEJ1dCB3ZSB3YW50CiAgICB0byBoYW5kbGUgZmxhc2ggc2VjdG9yIHByb3RlY3Rpb24gaW4gYSBzYWZlIG1hbm5lci4gU28gd2UgbXVzdCByZWFkIHRoZQogICAgdW5sb2NrIGVudmlyb25tZW50IHZhcmlhYmxlIGZyb20gRUVQUk9NIGluc3RlYWQgZnJvbSBmbGFzaC4KCiAgICBUaGlzIHBhdGNoIGlzIHJlcXVpcmVkIGFzIGxvbmcgdGhlIGV2aXJvbm1lbnQgaXMgc2F2ZWQgaW50byB0aGUgRUVQUk9NLgoKICAgIFN0ZWZhbjogQWRkaXRpb25hbCBjaGFuZ2UgYXMgc3VnZ2VzdGVkIGJ5IFdvbGZnYW5nLCB1c2UgYmlnZ2VyIGNoYXIgYXJyYXkKICAgIChpbnN0ZWFkIG9mIDQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVyaWMgU2NodW1hbm4gPEUuU2NodW1hbm5AcGh5dGVjLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgQWNrZWQtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGUzY2U4YzU5ZjQ4Zjk5Nzc5ZDdkNzM3OWE1NDMyZGVkMTJlYzA2YwpBdXRob3I6IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDIxIDExOjE3OjU2IDIwMDkgLTA0MDAKCiAgICBBZGQgZGVmaW5lIGZvciBtcGM1MjAwIENETV9DTEtfRU5BCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIFNtaXJsIDxqb25zbWlybEBnbWFpbC5jb20+Cgpjb21taXQgZGY0ODZiMWZhM2Y3NTBiMTUzZWFjN2RhYTBiM2JmMWY1OTRlNTA5OApBdXRob3I6IE5pY29sYXMgRmVycmUgPG5pY29sYXMuZmVycmVAYXRtZWwuY29tPgpEYXRlOglTdW4gTWFyIDIyIDE0OjQ4OjE2IDIwMDkgKzAxMDAKCiAgICBhdDkxOiBTdXBwb3J0IGZvciB0aGUgYXQ5MXNhbTlnMjAgOiBBdG1lbCA0MDBNaHogQVJNIDkyNmVqLXMgU09DLgoKICAgIEFUOTFzYW05ZzIwIGlzIGFuIGV2b2x1dGlvbiBvZiB0aGUgYXQ5MXNhbTkyNjAgd2l0aCBhIGZhc3RlciBjbG9jayBzcGVlZC4KCiAgICBUaGUgQVQ5MVNBTTlHMjAtRUsgYm9hcmQgaXMgYW4gdXBkYXRlZCByZXZpc2lvbiBvZiB0aGUgQVQ5MVNBTTkyNjAtRUsgYm9hcmQuCiAgICBJdCBpcyBlc3NlbnRpYWxseSB0aGUgc2FtZSwgd2l0aCBhIGZldyBtaW5vciBkaWZmZXJlbmNlcy4KCiAgICBIZXJlIGlzIHRoZSBjaGlwIHBhZ2Ugb24gQXRtZWwgd2Vic2l0ZToKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9wcm9kdWN0X2NhcmQuYXNwP3BhcnRfaWQ9NDMzNwoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBXYXRlcnMgPGp1c3Rpbi53YXRlcnNAdGltZXN5cy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTE4ZDE2ODAzNWNjOTNmNTg2ZGE0ODEyYzg5Y2IxNTNlYjlmNDI0MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgMjIgMTQ6Mjg6MTQgMjAwOSArMDEwMAoKICAgIGNtY19wdTI6IGZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZXRoX3NldGVudl9lbmV0YWRkcicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDE3NmM0YTk4MmM2NTMxZjk2NDI2YWZhYTExMjZjZjlhNWUyZDVlMDMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDIyIDE0OjI4OjEzIDIwMDkgKzAxMDAKCiAgICBjbWNfcHUyOiBmaXggbWlzY19pbml0X3IgcHJvdG90eXBlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1MzE1OGFlYTk5NTIyMTcwNmI0MmM3YmFkOWY3MTdiMzFhZTIwNDE0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEphbiAxMSAwMzozMjowMSAyMDA5ICswMTAwCgogICAgYXQ5MXNhbTl4ZWVrOiBmaXggc29jIG5hbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDc0YzA3NmQ2YzMzZDZkNDJhYjA2NTU0MWEzODM4MzU4Nzg3OWU3YjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDIyIDEwOjIyOjM0IDIwMDkgKzAxMDAKCiAgICBhdDkxc2FtOS9hdDkxY2FwOiBtb3ZlIG5hbmQgZHJpdmVycyB0byBkcml2ZXJzL210ZC9uYW5kCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxNjM5NjYwODdkNjI2ODA1NDdmMTg4YTkzYzYxZDAxYzgxNTUyNTRlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciAyMSAyMTowODowMSAyMDA5ICswMTAwCgogICAgYXRtZWwvYXQ5MS9ib2FyZHM6IGNvbXBpbGUgZGF0YWZsYXNoIHBhcnRpdGlvbiBvbmx5IHdoZW4gZGF0YWZsYXNoIGlzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlMmMwNDc2Zjk1OGY4ZTBiMjY5YTExMThmNGJhNGE1Y2Q0NzVhYTU2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciAyMSAyMTowODowMCAyMDA5ICswMTAwCgogICAgYXQ5MXNhbTkvYXQ5MWNhcDogbW92ZSBjb21tb24gbWFjYiBpbml0aWFsaXNhdGlvbiB0byBjcHUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGYzZjkxZjg4NmJjODkyN2ZkNjkyYWM0MTFiNzQyM2E4N2ZmZWM1MzIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTWFyIDIxIDIxOjA4OjAwIDIwMDkgKzAxMDAKCiAgICBhdDkxc2FtOS9hdDkxY2FwOiBtb3ZlIGNvbW1vbiB1c2IgaG9zdCBpbml0aWFsaXNhdGlvbiB0byBjcHUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGE0ODRiMDBiODZlNzJhYzZkYTZlZTRmY2UxM2RiYzZiMjU2NjcyZmUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTWFyIDIxIDIxOjA4OjAwIDIwMDkgKzAxMDAKCiAgICBhdDkxc2FtOS9hdDkxY2FwOiBtb3ZlIGNvbW1vbiBsZWQgbWFuYWdlbWVudCB0byBjcHUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdlYmFmYjdlYzFhMDI4NWFmODM4MDYyM2MwMDk1NzZmOTI1ODNiOTgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTWFyIDIxIDIxOjA3OjU5IDIwMDkgKzAxMDAKCiAgICBhdDkxc2FtOS9hdDkxY2FwOiBtb3ZlIGNvbW1vbiBzcGkgaW5pdGlhbGlzYXRpb24gdG8gY3B1CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxMzMyYTJhMDY5NGM4ZTEwYTViYWRlMzk3Y2Y4MzY0NWIyYzNmZDdlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciAyMSAyMTowNzo1OSAyMDA5ICswMTAwCgogICAgYXQ5MXNhbTkvYXQ5MWNhcDogbW92ZSBjb21tb24gc2VyaWFsIGluaXRpYWxpc2F0aW9uIHRvIGNwdQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTYwYmViMTNjZjAxMzVkYzcxYzU0MTAyMTQ4N2I1Y2NjNGQyNjljYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMjEgMjI6MDQ6NDEgMjAwOSArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMwoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDllNzhkYWUyYjI3NmM1YmY5YWI5MmNkODUxNzNmNmNiOTJiMWI3ZDUKQXV0aG9yOiBWaXZlayBLdXRhbCA8dml2ZWsua3V0YWxAYXppbmdvLmNvbT4KRGF0ZToJTW9uIEZlYiAyMyAyMTozNToxMSAyMDA5ICswNTMwCgogICAgUmVwbGFjZWQgZW5kcG9pbnQgbnVtYmVycyB3aXRoIGFwcHJvcHJpYXRlIG1hY3JvcyBpbiB1c2J0dHkuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWaXZlayBLdXRhbCA8dml2ZWsua3V0YWxAYXppbmdvLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGZhYWM0ZmQ4NTJlMzljYjFkN2E3NDA4MDFiMDYwZTQxYWVhY2VmMWYKQXV0aG9yOiBNaWNoYWVsIExhd25pY2sgPG1sLmxhd25pY2tAZ214LmRlPgpEYXRlOglUaHUgTWFyIDE5IDEwOjA2OjQxIDIwMDkgKzAxMDAKCiAgICBVQklGUzogTWlzc2luZyBvZmZzZXQgcmVsb2NhdGlvbiBmb3IgY29tcHJlc3NvciAnbm9uZScKCiAgICBPbiBzeXN0ZW1zIHdoZXJlIFUtQm9vdCBpcyBsaW5rZWQgdG8gYW5vdGhlciBhZGRyZXNzIHRoYW4gaXQgcmVhbGx5IGxheXMKICAgIChlLmcuIGJhY2t1cCBpbWFnZSksIGNhbGxzIHZpYSBmdW5jdGlvbiBwb2ludGVycyBtdXN0IGJlIGZpeGVkIHdpdGggYQogICAgJys9IGdkLT5yZWxvY19vZmYnLgogICAgVGhpcyB3YXMgbm90IGRvbmUgZm9yIG5vbmVfY29tcHIgaW4gdWJpZnNfY29tcHJlc3NvcnNfaW5pdCgpIHdoYXQgbGVhZHMKICAgIHRvIHN5c3RlbSBjcmFzaCBvbiB1Ymlmc21vdW50IGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBMYXduaWNrIDxtbC5sYXduaWNrQGdteC5kZT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2U2ZDBjOGRlMDMxZjM0NWJkZTc0NWYzYjg1NTA4MmFkZjFjNGU0NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxOSAxNTozNTo1MCAyMDA5ICswMTAwCgogICAgVUJJRlM6IEFkZCBVQklGUyBjb21tYW5kcwoKICAgIFRoaXMgcGF0Y2hzZXQgYWRkcyB0aGVzZSBVQklGUyByZWxhdGVkIGNvbW1hbmRzOgoKICAgIC0gdWJpZnNtb3VudAogICAgICBNb3VudCBhbiBVQklGUyB2b2x1bWUKCiAgICAtIHViaWZzbHMKICAgICAgTGlzdCBhIGRpcmVjdG9yeSBvZiB0aGUgbW91bnRlZCBVQklGUyB2b2x1bWUKCiAgICAtIHViaWZzbG9hZAogICAgICBMb2FkIGEgZmlsZSBmcm9tIHRoZSBtb3VudGVkIFVCSUZTIHZvbHVtZSB0byBtZW1vcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWVlZmUyYTJiMzdhODM4NTU4ZTNkMjEzYTlmNTUxOTUwM2QwYzE4MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxOSAxNTozNTowNSAyMDA5ICswMTAwCgogICAgVUJJRlM6IEltcGxlbWVudCByZWFkLW9ubHkgVUJJRlMgc3VwcG9ydCBpbiBVLUJvb3QKCiAgICBUaGUgVS1Cb290IFVCSUZTIGltcGxlbWVudGF0aW9uIGlzIGxhcmdlbHkgYSBkaXJlY3QgY29weSBmcm9tIHRoZSBjdXJyZW50CiAgICBMaW51eCB2ZXJzaW9uICgyLjYuMjktcmM2KS4gQXMgYWxyZWFkeSBkb25lIGluIHRoZSBVQkkgdmVyc2lvbiB3ZSBoYXZlIGFuCiAgICAiYWJzdHJhY3Rpb24gbGF5ZXIiIHRvIHJlZGVmaW5lIG9yIHJlbW92ZSBzb21lIE9TIGNhbGxzIChlLmcuIG11dGV4X2xvY2soKQogICAgLi4uKS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgdGhlIG9yaWdpbmFsIExpbnV4IGNvZGUgd2l0aCB2ZXJ5CiAgICBsaXR0bGUgY2hhbmdlcy4gQW5kIGJ5IHRoaXMgd2UgY2FuIGJldHRlciB1cGRhdGUgdG8gbGF0ZXIgTGludXggdmVyc2lvbnMuCgogICAgSSByZW1vdmVkIHNvbWUgb2YgdGhlIExpbnV4IGZlYXR1cmVzIHRoYXQgYXJlIG5vdCB1c2VkIGluIHRoZSBVLUJvb3QKICAgIHZlcnNpb24gKGUuZy4gZ2FyYmFnZS1jb2xsZWN0aW9uLCB3cml0ZSBzdXBwb3J0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBDQzogQXJ0ZW0gQml0eXV0c2tpeSA8ZGVkZWtpbmRAaW5mcmFkZWFkLm9yZz4KICAgIENDOiBBZHJpYW4gSHVudGVyIDxleHQtQWRyaWFuLkh1bnRlckBub2tpYS5jb20+Cgpjb21taXQgYjFiNGU4OWEwZjNiNzU4NTRjMzlhNjJjYWU0MWJhZDU2ZDIxMGFkZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxOSAxNTozNDo1NiAyMDA5ICswMTAwCgogICAgQWRkIExaTyBkZWNvbXByZXNzb3Igc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBMWk8gZGVjb21wcmVzc2lvbiBzdXBwb3J0IHRvIFUtQm9vdC4gSXQgaXMgbmVlZGVkIGZvcgogICAgdGhlIHVwY29taW5nIFVCSUZTIHN1cHBvcnQsIHNpbmNlIFVCSUZTIHVzZXMgTFpPIGFzIGRlZmF1bHQgY29tcHJlc3Nvci8KICAgIGRlY29tcHJlc3Nvci4gU2luY2Ugd2Ugb25seSBzdXBwb3J0IHJlYWQtb25seSBpbiBVQklGUywgb25seSB0aGUKICAgIGRlY29tcHJlc3NvciBpcyBuZWVkZWQuCgogICAgQWxsIHRoaXMgaXMgY29waWVkIHdpdGggbWlub3IgY2hhbmdlcyBmcm9tIHRoZSBjdXJyZW50IExpbnV4IGtlcm5lbAogICAgdmVyc2lvbiAoMi42LjI4LXJjOCkuCgogICAgVGhpcyBwYXRjaCBvbmx5IGltcGxlbWVudHMgdGhpcyBMWk8gZGVjb21wcmVzc29yIHN1cHBvcnQgZm9yIFBQQy4KICAgIE90aGVyIHBsYXRmb3JtcyB1c2luZyBVQklGUyB3aWxsIGhhdmUgdG8gYWRkIHRoZSByZXF1aXJlZAogICAgImluY2x1ZGUvYXNtL3VuYWxpZ25lZC5oIiBhcyB3ZWxsLiBJdCBzaG91bGQgYmUgZmFpcmx5IGVhc3kgdG8gY29weSB0aGlzCiAgICBmcm9tIHRoZSBMaW51eCBzb3VyY2UgdHJlZSBhcyBJIGhhdmUgZG9uZSBpdCBmb3IgUFBDIGluIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY4ZDdkNjUxMDBlODRkZjAwYmNhOTcxYzExNDA5MjczMWI0NDEwOTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMTkgMTM6MzA6MzYgMjAwOSArMDEwMAoKICAgIFNlcGFyYXRlIG10ZHBhcnRzIGNvbW1hbmQgZnJvbSBqZmZzMgoKICAgIEN1cnJlbnRseSB0aGUgbXRkcGFydHMgY29tbWFuZHMgYXJlIGluY2x1ZGVkIGluIHRoZSBqZmZzMiBjb21tYW5kIHN1cHBvcnQuCiAgICBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZSBhbnltb3JlIHNpbmNlIG90aGVyIGNvbW1hbmRzIChlLmcuIFVCSSkgdXNlIHRoaXMKICAgIGluZnJhc3RydWN0dXJlIGFzIHdlbGwgbm93LiBUaGlzIHBhdGNoIHNlcGFyYXRlcyB0aGUgbXRkcGFydHMgY29tbWFuZHMgZnJvbQogICAgdGhlIGpmZnMyIGNvbW1hbmRzIG1ha2luZyBpdCBwb3NzaWJsZSB0byBvbmx5IHNlbGVjdCBtdGRwYXJ0cyB3aGVuIG5vIEpGRlMyCiAgICBzdXBwb3J0IGlzIG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDAyYTMwMWNkNTA4N2VhZmZkZjQ1NmUwYTVjZWMxMTAwYzRkOWEzOTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBGZWIgMjUgMTI6MTE6MTUgMjAwOSArMDEwMAoKICAgIHBvd2VycGM6IE9ubHkgdXNlIGV0aF9nZXRlbnZfZW5ldGFkZHIoKSBpZiBuZXR3b3JraW5nIGlzIGVuYWJsZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWM0ZmE5YjQ3NGFmOTVkNjBmMDE5ZWM2MzY5Y2JlNzdiOWRhYjRiNQpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWFyIDE3IDEwOjA2OjQwIDIwMDkgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIGRpZ3N5IE1UQyBib2FyZC4KCiAgICBUaGlzIGlzIHRoZSBJbnRlckNvbnRyb2wgY3VzdG9tIGRldmljZSBiYXNlZCBvbiB0aGUgTVBDNTIwMEIgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZjdkYzA2NzM2OWUzMDA2Njc0NGYwOTY5OTVhZWY3ZDk3NTc0ZDE1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRmViIDIzIDE2OjUyOjM2IDIwMDkgKzAxMDAKCiAgICBwb3dlcnBjOiBGaXggY29tcGlsYXRpb24gd2FybmluZyBpbiBib2FyZC5jCgogICAgRml4IHRoaXMgd2FybmluZzoKCiAgICBib2FyZC5jOiBJbiBmdW5jdGlvbiAnYm9hcmRfaW5pdF9yJzoKICAgIGJvYXJkLmM6NjUzOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2knCiAgICBib2FyZC5jOjY1MTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdlJwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5Y2Q2OTAxNjBkM2NlMWE3ZmI0Y2VlZWU2Yzk5Y2VkYjFhYzFkNDljCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRmViIDIzIDE2OjQyOjUxIDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IERvbid0IHdyaXRlIHRoZSBNQUMgYWRkcmVzcyBpbnRvIHRoZSBpbnRlcm5hbCBTb0MgcmVnaXN0ZXJzCgogICAgUmVtb3ZlIHRoaXMgY29kZS4gSXQncyBub3QgbmVlZGVkLiBUaGUgNHh4IEVNQUMgZHJpdmVyIHN0b3JlcyB0aGUgTUFDCiAgICBhZGRyZXNzZXMgaW50byB0aGUgU29DIHJlZ2lzdGVycyBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiYjU3YWQ0YmU3NmQwZTJlN2Y5ZWM1NjY3ODIzNWNjOTg3MmZmNDBmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMTA6MTk6MTkgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogVXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzIGZvciBlc2QgNDA1LzQ0MCBib2FyZHMKCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIGluL291dDgvMTYvMzIgbWFjcm9zIGJ5IGluL291dF84L19iZTE2L19iZTMyCiAgICBtYWNyb3MuIEFsc28gdm9sYXRpbGUgcG9pbnRlciByZWZlcmVuY2VzIGFyZSByZXBsYWNlZCBieSB0aGUKICAgIG5ldyBhY2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNDkyMTZmMDQ1ZmQ4ZTBmNDViY2VmMTIxYzJiYjFjN2QzZGU2OTg4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMTA6MTk6MTggMjAwOSArMDEwMAoKICAgIHBwYzR4eDogVXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzIGZvciBlc2QgNDA1IGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgaW4vb3V0OC8xNi8zMiBtYWNyb3MgYnkgaW4vb3V0XzgvX2JlMTYvX2JlMzIKICAgIG1hY3Jvcy4gQWxzbyB2b2xhdGlsZSBwb2ludGVyIHJlZmVyZW5jZXMgYXJlIHJlcGxhY2VkIGJ5IHRoZQogICAgbmV3IGFjY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE1OTIwNWQxNTE5Mzc1ZDAyN2Y5N2E1NDVhZDY0MmFiMjBmY2U2ZjgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEZlYiAyMCAxMDoxOToxNyAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBDbGVhbnVwIGxpbmtlciBzY3JpcHRzIG9mIGVzZCA0eHggYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjEwM2VlMjg0ZTY4OTM0YTY0ODczMmRiNWUwYjZjZWI0YTFlZDhmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMTA6MTk6MTYgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFRFWFRfQkFTRSBmb3IgREFTQV9TSU0gYm9hcmRzCgogICAgRml4IGJ1aWxkaW5nIERBU0FfU0lNIGJvYXJkcyBieSBpbmNyZWFzaW5nIFUtQm9vdCdzIHNpemUgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwOWRiOGY0ZGU2ODA1ZjFkZGU1MTBjMTY3ZjIwZTU2YTU0MDVkMjllCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMTA6MTk6MTUgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogRFU0MDUgbWFpbnRlbmFuY2UgZml4CgogICAgLXN0cmlwIHVudXNlZCBmZWF0dXJlcwogICAgLWZpeCByZXNldHRpbmcgcGh5CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NTUxMWI0N2FjMjY0N2JlNDgyMThkYmI5M2FmMDViMjFmNDA0ZjY3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMTA6MTk6MTQgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogQWJvcnQgYXV0b2Jvb3Qgb25seSBieSBzcGFjZSBrZXkgb24gQ1BDSTQwNSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMTdlZTE1N2NhOWZmMGQ0Y2M1ODQxZDA2YzRiNzBjMTYwM2RmMjljCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEZlYiAyNCAyMToxNDo1NiAyMDA5ICsxMTAwCgogICAgQWRkIGJhc2ljIHJlbG9jYXRpb24gdG8gaTM4NiBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCA4YzYzZDQ3NjUxZjc3ZDlmYjg4N2NhZDQzMzM3MGI4NjZlYjBhMTkzCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEZlYiAyNCAyMToxNDo0NSAyMDA5ICsxMTAwCgogICAgSW1wbGVtZW50IFNDNTIwIHRpbWVycwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzcyBhdCBnbWFpbC5jb20+Cgpjb21taXQgNmQ3ZjYxMGIwOWY4MTNiMTIzOWVlZGNiZmU5MjFjZmQ0MzlhZWEyNQpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVR1ZSBGZWIgMjQgMjE6MTQ6MzIgMjAwOSArMTEwMAoKICAgIEZhY3RvciBvdXQgU0M1MjAgc3ViLWZlYXR1cmVzCgogICAgTW92ZWQgc3ViLWZlYXR1cmVzIG9mIHRoZSBTQzUyMCBjb2RlIHdoaWNoIGlzIGN1cnJlbnRseSBzZWxlY3RpdmVseSBjb21waWxlZAogICAgdXNpbmcgI2lmZGVmIG91dCBvZiBzYzUyMC5jIGludG8gaW5kaXZpZHVhbCBmaWxlcyBzZWxlY3RpdmVseSBjb21waWxlZCB2aWEKICAgIHRoZSBtYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzcyBhdCBnbWFpbC5jb20+Cgpjb21taXQgYWJmMGNkM2RmZjIyN2NmYjZlODJhZDEzYmU2MmUyOGU2ZTg5ZDVkZgpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVR1ZSBGZWIgMjQgMjE6MTM6NDAgMjAwOSArMTEwMAoKICAgIFJld3JpdGUgaTM4NiBpbnRlcnJ1cHQgaGFuZGxpbmcKCiAgICBSZXdyaXRlIGludGVycnVwdCBoYW5kbGluZyBmdW5jdGlvbmFsaXR5IGZvciB0aGUgaTM4NiBwb3J0LiBTZXBhcmF0ZWQKICAgIGZ1bmN0aW9uYWxpdHkgaW50byBzZXBhcmF0ZSBDUFUgYW5kIEFyY2hpdGVjdHVyZSBjb21wb25lbnRzLgoKICAgIEl0IGFwcGVhcnMgYXMgaWYgdGhlIGkzODYgaW50ZXJydXB0IGhhbmRsZXIgZnVuY3Rpb25hbGl0eSB3YXMgaW50ZW5kZWQKICAgIHRvIGFsbG93IG11bHRpcGxlIGhhbmRsZXJzIHRvIGJlIGluc3RhbGxlZCBmb3IgYSBnaXZlbiBpbnRlcnJ1cHQuCiAgICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGZ1bmN0aW9uYWxpdHkgd2FzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCBhbmQgYWxzbwogICAgaGFkIHRoZSBwcm9ibGVtIHRoYXQgaXJxX2ZyZWVfaGFuZGxlcigpIGRvZXMgbm90IGFsbG93IHRoZSBwYXNzaW5nCiAgICBvZiB0aGUgaGFuZGxlciBmdW5jdGlvbiBwb2ludGVyIGFuZCB0aGVyZWZvcmUgY291bGQgbmV2ZXIgYmUgdXNlZCB0bwogICAgZnJlZSBzcGVjaWZpYyBoYW5kbGVycyB0aGF0IGhhZCBiZWVuIGluc3RhbGxlZCBmb3IgYSBnaXZlbiBJUlEuCgogICAgVGhlcmUgd2VyZSBhbHNvIHZhcmlvdXMgaXNzdWVzIHdpdGggYXJyYXkgYm91bmRzIG5vdCBiZWluZyBmdWxseQogICAgdGVzdGVkLgoKICAgIEkgaGFkIHR3byBvYmplY3RpdmVzIGluIG1pbmQgZm9yIHRoZSBuZXcgaW1wbGVtZW50YXRpb246CgogICAgMSkgS2VlcCB0aGUgaW1wbGVtZW50YXRpb24gYXMgc2ltaWxhciBhcyBwb3NzaWJsZSB0byBleGlzdGluZwogICAgICAgaW1wbGVtZW50YXRpb25zLiBUbyB0aGF0IGVuZCwgSSBoYXZlIHVzZWQgdGhlIGxlb24yLzMKICAgICAgIGltcGxlbWVudGF0aW9ucyBhcyB0aGUgcmVmZXJlbmNlCgogICAgMikgU2VwZXJhdGUgQ1BVIGFuZCBBcmNoaXRlY3R1cmUgc3BlY2lmaWMgZWxlbWVudHMuIEFsbCBzcGVjaWZpYyBpMzg2CiAgICAgICBpbnRlcnJ1cHQgZnVuY3Rpb25hbGl0eSBpcyBub3cgaW4gY3B1L2kzODYvIHdpdGggdGhlIGhpZ2ggbGV2ZWwKICAgICAgIEFQSSBhbmQgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGNvZGUgaW4gbGliX2kzODYuIEZ1bmN0aW9uYWxpdHkKICAgICAgIHNwZWNpZmljIHRvIHRoZSBQQy9BVCBhcmNoaXRlY3R1cmUgKGkuZS4gY2FzY2FkZWQgaTgyNTkgUElDcykgaGFzCiAgICAgICBiZWVuIGZ1cnRoZXIgc3BsaXQgb3V0IGludG8gYW4gaW5kaXZpZHVhbCBmaWxlIHRvIGFsbG93IGZvciB0aGUKICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQSUMgYXJjaGl0ZWN0dXJlIG9mIHRoZSBTQzUyMCBDUFUgKHN1cHBvcnRzCiAgICAgICBtb3JlIElSUXMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzIGF0IGdtYWlsLmNvbT4KCmNvbW1pdCBlY2U0NDRiNDJiNzFlYjViY2UzNGEyNGVjNTg0NTczYjNjOGM0YTk4CkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEZlYiAyNCAyMToxMjozNSAyMDA5ICsxMTAwCgogICAgTW92ZSBhbGk1MTJ4LmgKCiAgICBNb3ZlZCBhbGk1MTJ4LmggZnJvbSBpbmNsdWRlL2FzbS1pMzg2L2ljLyB0byAvaW5jbHVkZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzcyBhdCBnbWFpbC5jb20+Cgpjb21taXQgNmQ4M2UzYWM2MWRjZGJjYjdmMDQ2NjQzMDlhOTY4OWZlMDFjNTcwNApBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVR1ZSBGZWIgMjQgMjE6MTI6MjAgMjAwOSArMTEwMAoKICAgIFJlbmFtZSBTQzUyMCBDb25maWd1cmF0aW9uIE9wdGlvbnMKCiAgICBPcHRpb25zIGFyZSBub3cgYWxsIHVuaWZvcm1seSBDT05GSUdfU1lTX1NDNTIwXzxvcHRpb24+CgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzIGF0IGdtYWlsLmNvbT4KCmNvbW1pdCBmNjJmYjk5OTQxYzYyNTYwNWFhMTZhMDA5N2IzOTZhNWMxNmQyYzg4CkF1dGhvcjogVHJlbnQgUGllcGhvIDx4eXp6eUBzcGVha2Vhc3kub3JnPgpEYXRlOglXZWQgRmViIDE4IDE1OjIyOjA1IDIwMDkgLTA4MDAKCiAgICBGaXggYWxsIGxpbmtlciBzY3JpcHQgdG8gaGFuZGxlIGFsbCByb2RhdGEgc2VjdGlvbnMKCiAgICBBIHJlY2VudCBnY2MgYWRkZWQgYSBuZXcgdW5hbGlnbmVkIHJvZGF0YSBzZWN0aW9uIGNhbGxlZCAnLnJvZGF0YS5zdHIxLjEnLAogICAgd2hpY2ggbmVlZHMgdG8gYmUgYWRkZWQgdGhlIHRoZSBsaW5rZXIgc2NyaXB0LiAgSW5zdGVhZCBvZiBqdXN0IGFkZGluZyB0aGlzCiAgICBvbmUgc2VjdGlvbiwgd2UgdXNlIGEgd2lsZGNhcmQgIi5yb2RhdGEqIiB0byBnZXQgYWxsIHJvZGF0YSBsaW5rZXIgc2VjdGlvbgogICAgZ2NjIGhhcyBub3cgYW5kIG1pZ2h0IGFkZCBpbiB0aGUgZnV0dXJlLgoKICAgIEhvd2V2ZXIsICcqKC5yb2RhdGEqKScgYnkgaXRzZWxmIHdpbGwgcmVzdWx0IGluIHN1Yi1vcHRpbWFsIHNlY3Rpb24KICAgIG9yZGVyaW5nLiAgVGhlIHNlY3Rpb25zIHdpbGwgYmUgc29ydGVkIGJ5IG9iamVjdCBmaWxlLCB3aGljaCBjYXVzZXMgZXh0cmEKICAgIHBhZGRpbmcgYmV0d2VlbiB0aGUgdW5hbGlnbmVkIHJvZGF0YS5zdHIuMS4xIG9mIG9uZSBvYmplY3QgZmlsZSBhbmQgdGhlCiAgICBhbGlnbmVkIHJvZGF0YSBvZiB0aGUgbmV4dCBvYmplY3QgZmlsZS4gIFRoaXMgaXMgZWFzeSB0byBmaXggYnkgdXNpbmcgdGhlCiAgICBTT1JUX0JZX0FMSUdOTUVOVCBjb21tYW5kLgoKICAgIFRoaXMgcGF0Y2ggaGFzIG5vdCBiZSB0ZXN0ZWQgb25lIG1vc3Qgb2YgdGhlIGJvYXJkcyBtb2RpZmllZC4gIFNvbWUgYm9hcmRzCiAgICBoYXZlIGEgbGlua2VyIHNjcmlwdCB0aGF0IGxvb2tzIHNvbWV0aGluZyBsaWtlIHRoaXM6CgogICAgKigudGV4dCkKICAgIC4gPSBBTElHTigxNik7CiAgICAqKC5yb2RhdGEpCiAgICAqKC5yb2RhdGEuc3RyMS40KQogICAgKiguZWhfZnJhbWUpCgogICAgSSBjaGFuZ2UgdGhpcyB0bzoKCiAgICAqKC50ZXh0KQogICAgLiA9IEFMSUdOKDE2KTsKICAgICooLmVoX2ZyYW1lKQogICAgKihTT1JUX0JZX0FMSUdOTUVOVChTT1JUX0JZX05BTUUoLnJvZGF0YSopKSkKCiAgICBUaGlzIG1lYW5zIHRoZSBzdGFydCBvZiByb2RhdGEgd2lsbCBubyBsb25nZXIgYmUgMTYgYnl0ZXMgYWxpZ25lZC4KICAgIEhvd2V2ZXIsIHRoZSBib3VuZGFyeSBiZXR3ZWVuIHRleHQgYW5kIHJvZGF0YS9laF9mcmFtZSBpcyBzdGlsbCBhbGlnbmVkIHRvCiAgICAxNiBieXRlcywgd2hpY2ggaXMgd2hhdCBJIHRoaW5rIHRoZSByZWFsIHB1cnBvc2Ugb2YgdGhlIEFMSUdOIGNhbGwgaXMuCgogICAgU2lnbmVkLW9mZi1ieTogVHJlbnQgUGllcGhvIDx4eXp6eUBzcGVha2Vhc3kub3JnPgoKY29tbWl0IDU2NmI2NTJjN2NkYjBlNWUwNTI5YmIzZDFlYWZmYmQyYmY0NWEwMzIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTg6MjY6MDggMjAwOSAtMDUwMAoKICAgIHJlbW92ZSBiaV9lbmV0KmFkZHIgZnJvbSBnbG9iYWwgZGF0YSBmb3IgYWxsIGFyY2hlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgQ0M6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KICAgIENDOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBzZXpuYW0uY3o+CiAgICBDQzogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIENDOiBTY290dCBNY051dHQgPHNtY251dHRAcHN5ZW50LmNvbT4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZWI4NWFhNTk0YzFiNTdhMWUzYmU5Njg5YjY1MTcxYTEzN2EzNjQzMgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAyMDowNzoxOSAyMDA5IC0wNTAwCgogICAgcHBjOiBtYXJrIGdsb2JhbCBiaV9lbmV0KmFkZHIgYXMgbGVnYWN5CgogICAgVGhlIGVudmlyb25tZW50IGlzIHRoZSBjYW5vbmljYWwgc3RvcmFnZSBsb2NhdGlvbiBvZiB0aGUgbWFjIGFkZHJlc3MsIHNvCiAgICB3ZSdyZSBraWxsaW5nIG9mZiB0aGUgZ2xvYmFsIGRhdGEgbG9jYXRpb24gYW5kIG1vdmluZyBldmVyeXRoaW5nIHRvCiAgICBxdWVyeWluZyB0aGUgZW52IGRpcmVjdGx5LgoKICAgIEluIHRoZSBwcGMgY2FzZSwgdGhlc2UgdGhpbmdzIGFyZSBwYXJ0IG9mIHRoZSBsZWdhY3kgQUJJLCBzbyBrZWVwIHRoZW0KICAgIGFyb3VuZCBidXQgbWFyayB0aGVtIGFzIGxlZ2FjeSBzbyBubyBuZXcgY29kZSB3aWxsIHRvdWNoIHRoZW0uCgogICAgQWxzbyBzdG9wIGNhbGxpbmcgbG9hZF9zZXJudW1fZXRoYWRkcigpIHNpbmNlIGFsbCBib2FyZHMgbm93IGltcGxlbWVudAogICAgdGhpcyBhcyBhIHN0dWIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOWMxNTAxMDJiYzFkZTM3NWQzNmQ5N2ExY2MyZGQwZTk2MzliMTVkZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAyMDowOTo1MiAyMDA5IC0wNTAwCgogICAgYm9hcmRzOiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnYgYW5kIG1vdmUgbG9hZF9zZXJudW1fZXRoYWRkcigpIHRvIGJvYXJkIGluaXQKCiAgICBUaGUgZW52aXJvbm1lbnQgaXMgdGhlIGNhbm9uaWNhbCBzdG9yYWdlIGxvY2F0aW9uIG9mIHRoZSBtYWMgYWRkcmVzcywgc28KICAgIHdlJ3JlIGtpbGxpbmcgb2ZmIHRoZSBnbG9iYWwgZGF0YSBsb2NhdGlvbiBhbmQgbW92aW5nIGV2ZXJ5dGhpbmcgdG8KICAgIHF1ZXJ5aW5nIHRoZSBlbnYgZGlyZWN0bHkuCgogICAgUmF0aGVyIHRoYW4gaGF2ZSBjb21tb24gcHBjIGNvZGUgY2FsbCBhIGJvYXJkLXNwZWNpZmljIGZ1bmN0aW9uIGxpa2UKICAgIGxvYWRfc2VybnVtX2V0aGFkZHIoKSwgaGF2ZSBlYWNoIGJvYXJkIGNhbGwgaXQgaW4gaXRzIG93biBib2FyZC1zcGVjaWZpYwogICAgbWlzY19pbml0X3IoKSBmdW5jdGlvbi4KCiAgICBUaGUgYm9hcmRzIHRoYXQgZ2V0IGNvbnZlcnRlZCBoZXJlIGFyZToKCS0ga3VwNGsva3VwNHgKCS0gcGNzNDQwZXAKCS0gdHFtOHh4CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBDQzogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkyYjUwZmZlZjk3OGYwNTg1OGEwZmY0Y2JlODg0MzBiYzUxYTI4YTIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTk6NTU6MDEgMjAwOSAtMDUwMAoKICAgIGNtY19wdTI6IGdldCBtYWMgYWRkcmVzcyBmcm9tIGVudmlyb25tZW50CgogICAgVGhlIGVudmlyb25tZW50IGlzIHRoZSBjYW5vbmljYWwgc3RvcmFnZSBsb2NhdGlvbiBvZiB0aGUgbWFjIGFkZHJlc3MsIHNvCiAgICB3ZSdyZSBraWxsaW5nIG9mZiB0aGUgZ2xvYmFsIGRhdGEgbG9jYXRpb24gYW5kIG1vdmluZyBldmVyeXRoaW5nIHRvCiAgICBxdWVyeWluZyB0aGUgZW52IGRpcmVjdGx5LgoKICAgIEFsc28gcmVuYW1lIGxvYWRfc2VybnVtX2V0aGFkZHIoKSB0byBtaXNjX2luaXRfcigpIHNvIHdlIGRvbid0IG5lZWQgdG8KICAgIGhhbmRsZSB0aGlzIGJvYXJkIHNwZWNpYWxseSBpbiBjb21tb24gQVJNIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDhkMjFlNjk5ZDdmY2ZiNmFiMTE2MzUxMTAyNjZkZDA5YjdlZGM2MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxNiAxODowMzoxNCAyMDA5IC0wNTAwCgogICAgYm9hcmRzOiBtb3ZlIGJvYXJkX2dldF9lbmV0YWRkcigpIGludG8gYm9hcmQtc3BlY2lmaWMgaW5pdAoKICAgIFRoZSBlbnZpcm9ubWVudCBpcyB0aGUgY2Fub25pY2FsIHN0b3JhZ2UgbG9jYXRpb24gb2YgdGhlIG1hYyBhZGRyZXNzLCBzbwogICAgd2UncmUga2lsbGluZyBvZmYgdGhlIGdsb2JhbCBkYXRhIGxvY2F0aW9uIGFuZCBtb3ZpbmcgZXZlcnl0aGluZyB0bwogICAgcXVlcnlpbmcgdGhlIGVudiBkaXJlY3RseS4KCiAgICBSYXRoZXIgdGhhbiBoYXZlIHRoZSBjb21tb24gcHBjIGNvZGUgaGF2ZSBib2FyZC1zcGVjaWZpYyBob29rcywgbW92ZSB0aGUKICAgIGJvYXJkX2dldF9lbmV0YWRkcigpIGZ1bmN0aW9uIGludG8gdGhlIGJvYXJkLXNwZWNpZmljIGluaXQgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGYxMWU2ZmY1YjE4NTlkOTIxM2YwZDUwMWIzMzA5ZTA2NWY0ODc1NDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTk6Mzk6NTUgMjAwOSAtMDUwMAoKICAgIGFybTogZ2V0IG1hYyBhZGRyZXNzIGZyb20gZW52aXJvbm1lbnQKCiAgICBUaGUgZW52aXJvbm1lbnQgaXMgdGhlIGNhbm9uaWNhbCBzdG9yYWdlIGxvY2F0aW9uIG9mIHRoZSBtYWMgYWRkcmVzcywgc28KICAgIHdlJ3JlIGtpbGxpbmcgb2ZmIHRoZSBnbG9iYWwgZGF0YSBsb2NhdGlvbiBhbmQgbW92aW5nIGV2ZXJ5dGhpbmcgdG8KICAgIHF1ZXJ5aW5nIHRoZSBlbnYgZGlyZWN0bHkuCgogICAgU29tZSB3YXJ0cyBhcmUgcmVtYWluaW5nIGFuZCBzaG91bGQgYmUga2lsbGVkIG9mZiAoYnkgbW92aW5nIHRoZSBmdW5jIHRvCiAgICB0aGUgYXBwcm9wcmlhdGUgYm9hcmQgaW5pdCBjb2RlKToKCS0gZGF2aW5jaV9ldGhfc2V0X21hY19hZGRyCgktIGNzODkwMF9nZXRfZW5ldGFkZHIKCS0gc21jX3NldF9tYWNfYWRkcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDAxMDdjZjY2ZjczNDZlOGM3ZDZjZjBmZTk5ZDJmMjY1MTM0YWZkNTkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTk6MzY6MjAgMjAwOSAtMDUwMAoKICAgIG54ODIzOiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnZpcm9ubWVudAoKICAgIFRoZSBlbnZpcm9ubWVudCBpcyB0aGUgY2Fub25pY2FsIHN0b3JhZ2UgbG9jYXRpb24gb2YgdGhlIG1hYyBhZGRyZXNzLCBzbwogICAgd2UncmUga2lsbGluZyBvZmYgdGhlIGdsb2JhbCBkYXRhIGxvY2F0aW9uIGFuZCBtb3ZpbmcgZXZlcnl0aGluZyB0bwogICAgcXVlcnlpbmcgdGhlIGVudiBkaXJlY3RseS4KCiAgICBGb3IgdGhlIG54ODIzLCB0aGUgc2VyaWFsIG51bWJlciBpcyBtb3ZlZCBvdXQgb2YgbG9hZF9zZXJudW1fZXRoYWRkcigpIGFuZAogICAgaW50byBtaXNjX2luaXRfcigpIGFzIGlzIHRoZSBlbnYgc2V0dXAuICBUaGlzIGxldHMgdXMga2lsbCBvZmYgdGhlIGZvcm1lcgogICAgZnVuY3Rpb24gaW4gdGhlIHByb2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMTliNWI1MzNjY2Q1MjJhYmViNTAxZDUxMDc1MDY5M2MzNWUyMDQ1NgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAxODoyNzoxOCAyMDA5IC0wNTAwCgogICAgbGliXyovYm9hcmQuYzogZG8gbm90IGluaXRpYWxpemUgYmlfZW5ldCphZGRyIGluIGdsb2JhbCBkYXRhCgogICAgU2luY2UgZXZlcnlvbmUgaXMgdXNpbmcgdGhlIGVudmlyb25tZW50IGZvciBtYWMgYWRkcmVzcyBzdG9yYWdlLCB0aGVyZSBpcwogICAgbm8gcG9pbnQgaW4gc2VlZGluZyB0aGUgZ2xvYmFsIGRhdGEuCgogICAgVGhlIGFyY2hlcyB0aGF0IGFyZSBjb252ZXJ0ZWQgaGVyZToKCWkzODYKCW02OGsKCW1pY3JvYmxhemUKCW1pcHMKCW5pb3MKCW5pb3MyCglzaAoJc3BhcmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIENDOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CiAgICBDQzogTWljaGFsIFNpbWVrIDxtb25zdHJAc2V6bmFtLmN6PgogICAgQ0M6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CiAgICBDQzogU2NvdHQgTWNOdXR0IDxzbWNudXR0QHBzeWVudC5jb20+CiAgICBDQzogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc0MGU4YmE3ZDQ3NWM0OWMxYjc2MDU4ZTFiZjM1NGUzNzZiNWM0ZTAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTk6MTk6NTQgMjAwOSAtMDUwMAoKICAgIG5wZTogZ2V0IG1hYyBhZGRyZXNzIGZyb20gZW52aXJvbm1lbnQKCiAgICBUaGUgZW52aXJvbm1lbnQgaXMgdGhlIGNhbm9uaWNhbCBzdG9yYWdlIGxvY2F0aW9uIG9mIHRoZSBtYWMgYWRkcmVzcywgc28KICAgIHdlJ3JlIGtpbGxpbmcgb2ZmIHRoZSBnbG9iYWwgZGF0YSBsb2NhdGlvbiBhbmQgbW92aW5nIGV2ZXJ5dGhpbmcgdG8KICAgIHF1ZXJ5aW5nIHRoZSBlbnYgZGlyZWN0bHkuCgogICAgVGhlIHJlc3VsdGluZyBjb2RlIGNhbiBhbHNvIGJlIHNpbXBsaWZpZWQgZXZlbiBmdXJ0aGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA2YmFjZmE2YThlOWIyNjRkMzdjMTI2MmZjMWYzZTk0OGQxZmVhYjgxCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgRmViIDExIDE5OjE4OjQxIDIwMDkgLTA1MDAKCiAgICBjcHUvOiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnZpcm9ubWVudAoKICAgIFRoZSBlbnZpcm9ubWVudCBpcyB0aGUgY2Fub25pY2FsIHN0b3JhZ2UgbG9jYXRpb24gb2YgdGhlIG1hYyBhZGRyZXNzLCBzbwogICAgd2UncmUga2lsbGluZyBvZmYgdGhlIGdsb2JhbCBkYXRhIGxvY2F0aW9uIGFuZCBtb3ZpbmcgZXZlcnl0aGluZyB0bwogICAgcXVlcnlpbmcgdGhlIGVudiBkaXJlY3RseS4KCiAgICBUaGUgY3B1cyB0aGF0IGdldCBjb252ZXJ0ZWQgaGVyZToKCWF0OTFybTkyMDAKCW1wYzUxMngKCW1wYzV4eHgKCW1wYzgyNjAKCW1wYzh4eAoJcHBjNHh4CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBDQzogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CiAgICBDQzogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAzZjNkOGQzYjM5Y2Y4NWMwY2U3Y2E5MDNiNDM2NzAxZThhYTYxMGIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTk6MDk6NTQgMjAwOSAtMDUwMAoKICAgIGxhbjkxYzk2L3NtYzkxMTExL3NtYzkxMXg6IGdldCBtYWMgYWRkcmVzcyBmcm9tIGVudmlyb25tZW50CgogICAgVGhlIGVudmlyb25tZW50IGlzIHRoZSBjYW5vbmljYWwgc3RvcmFnZSBsb2NhdGlvbiBvZiB0aGUgbWFjIGFkZHJlc3MsIHNvCiAgICB3ZSdyZSBraWxsaW5nIG9mZiB0aGUgZ2xvYmFsIGRhdGEgbG9jYXRpb24gYW5kIG1vdmluZyBldmVyeXRoaW5nIHRvCiAgICBxdWVyeWluZyB0aGUgZW52IGRpcmVjdGx5LgoKICAgIEFsc28sIGRvIG5vdCBib3RoZXIgY2hlY2tpbmcgdGhlIEVFUFJPTSBpZiB0aGUgZW52IGlzIHNldHVwLiAgVGhpcwogICAgc2ltcGxpZmllcyB0aGUgY29kZSBncmVhdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERuZWsgPHdkQGRlbnguZGU+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIENDOiBSb2xmIE9mZmVybWFubnMgPHJvZkBzeXNnby5kZT4KICAgIENDOiBFcmlrIFN0YWhsbWFuIDxlcmlrQHZ0LmVkdT4KICAgIENDOiBEYXJpcyBBIE5ldmlsIDxkbmV2aWxAc25tYy5jb20+CiAgICBDQzogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgoKY29tbWl0IGM1MjdjZTkyNTExY2JmNzIzYzJjYTc3YmVlMWNmOWVjZjgzZGFjODEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTk6MTQ6MDkgMjAwOSAtMDUwMAoKICAgIHNoX2V0aDogZ2V0IG1hYyBhZGRyZXNzIGZyb20gZW52aXJvbm1lbnQKCiAgICBUaGUgZW52aXJvbm1lbnQgaXMgdGhlIGNhbm9uaWNhbCBzdG9yYWdlIGxvY2F0aW9uIG9mIHRoZSBtYWMgYWRkcmVzcywgc28KICAgIHdlJ3JlIGtpbGxpbmcgb2ZmIHRoZSBnbG9iYWwgZGF0YSBsb2NhdGlvbiBhbmQgbW92aW5nIGV2ZXJ5dGhpbmcgdG8KICAgIHF1ZXJ5aW5nIHRoZSBlbnYgZGlyZWN0bHkuCgogICAgVGhlIHNoX2V0aCBkcml2ZXIgY2FuIGFsc28gYmUgc2ltcGxpZmllZCBhIGJpdCBieSB1c2luZyBlbmV0YWRkciBtZW1iZXIgb2YKICAgIHRoZSBldGhfZGV2aWNlIHN0cnVjdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBDQzogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQ0M6IENhcmxvcyBNdW5veiA8Y2FybG9zQGtlbmF0aS5jb20+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAwYTUyMzhjZWE5MDY2NWMyMzAyOTdhOGZkNzdiYjBiM2I2MWNhMTc3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgRmViIDExIDE5OjA2OjA5IDIwMDkgLTA1MDAKCiAgICBjczg5MDA6IGdldCBtYWMgYWRkcmVzcyBmcm9tIGVudmlyb25tZW50CgogICAgVGhlIGVudmlyb25tZW50IGlzIHRoZSBjYW5vbmljYWwgc3RvcmFnZSBsb2NhdGlvbiBvZiB0aGUgbWFjIGFkZHJlc3MsIHNvCiAgICB3ZSdyZSBraWxsaW5nIG9mZiB0aGUgZ2xvYmFsIGRhdGEgbG9jYXRpb24gYW5kIG1vdmluZyBldmVyeXRoaW5nIHRvCiAgICBxdWVyeWluZyB0aGUgZW52IGRpcmVjdGx5LgoKICAgIFRoZSBjczg5MDAgZHJpdmVyIGFsc28gY2hhbmdlcyBzbGlnaHRseSBpbiB0aGF0IHRoZSBoYXJkd2FyZSBpcyBub3QKICAgIGNvbnN1bHRlZCBpZiB0aGUgbWFjIGFkZHJlc3MgaW4gdGhlIGVudiBpcyBzYW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBNYXJpdXMgR3JvZWdlciA8bWdyb2VnZXJAc3lzZ28uZGU+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjNGI4NzYyZjExZDMzN2U2YTlkOTBjMjI3YjI4NzFkNjVkMzcyNDY5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgRmViIDExIDE5OjA0OjI1IDIwMDkgLTA1MDAKCiAgICBiY201NzB4OiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnZpcm9ubWVudAoKICAgIFRoZSBlbnZpcm9ubWVudCBpcyB0aGUgY2Fub25pY2FsIHN0b3JhZ2UgbG9jYXRpb24gb2YgdGhlIG1hYyBhZGRyZXNzLCBzbwogICAgd2UncmUga2lsbGluZyBvZmYgdGhlIGdsb2JhbCBkYXRhIGxvY2F0aW9uIGFuZCBtb3ZpbmcgZXZlcnl0aGluZyB0bwogICAgcXVlcnlpbmcgdGhlIGVudiBkaXJlY3RseS4KCiAgICBTaW5jZSB0aGUgYWRkcmVzcyBpcyBpbiB0aGUgUExNX0RFVklDRV9CTE9DSyBzdHJ1Y3R1cmUgYWxyZWFkeSwgdGhlcmUgaXMKICAgIG5vIG5lZWQgdG8gcGFzcyB0aGUgTm9kZUFkZHJlc3MgYXMgYSBzZWNvbmQgcGFyYW1ldGVyLiAgU28gZHJvcCB0aGUgc2Vjb25kCiAgICBhcmd1bWVudCB0byB0aGUgTE1fU2V0TWFjQWRkcmVzcygpIGZ1bmN0aW9uIChhbmQgdXBkYXRlIHRoZSB0aWdvbjMgZHJpdmVyCiAgICBhY2NvcmRpbmdseSkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDNmODcxNDgyZjA2ZjZhNGVhZjRhM2ZhZmRlODQ4NDZiYWQ4N2I0ZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAxOTowMToyNiAyMDA5IC0wNTAwCgogICAgZHJpdmVycy9uZXQvOiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnZpcm9ubWVudAoKICAgIFRoZSBlbnZpcm9ubWVudCBpcyB0aGUgY2Fub25pY2FsIHN0b3JhZ2UgbG9jYXRpb24gb2YgdGhlIG1hYyBhZGRyZXNzLCBzbwogICAgd2UncmUga2lsbGluZyBvZmYgdGhlIGdsb2JhbCBkYXRhIGxvY2F0aW9uIGFuZCBtb3ZpbmcgZXZlcnl0aGluZyB0bwogICAgcXVlcnlpbmcgdGhlIGVudiBkaXJlY3RseS4KCiAgICBUaGUgZHJpdmVycyB0aGF0IGdldCBjb252ZXJ0ZWQgaGVyZToKCTNjNTg5Cgk0eHhfZW5ldAoJZGMyMTE0eAoJZG05MDAweAoJZW5jMjhqNjAKCWZzbF9tY2RtYWZlYwoJa3M4Njk1ZXRoCgltY2ZmZWMKCXJ0bDgwMTkKCXJ0bDgxNjkKCXMzYzQ1MTBiX2V0aAoJeGlsaW54X2VtYWMKCXhpbGlueF9lbWFjbGl0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgQ0M6IFJvbGYgT2ZmZXJtYW5ucyA8cm9mQHN5c2dvLmRlPgogICAgQ0M6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIENDOiBTYXNjaGEgSGF1ZXIgPHNhc2NoYWhhdWVyQHdlYi5kZT4KICAgIENDOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQ0M6IEdyZWcgVW5nZXJlciA8Z3JlZy51bmdlcmVyQG9wZW5nZWFyLmNvbT4KICAgIENDOiBYdWUgTGlnb25nIDxsZ3h1ZUBob3RtYWlsLmNvbT4KICAgIENDOiBNYXNhbWkgS29taXlhIDxta29taXlhQHNvbmFyZS5pdD4KICAgIENDOiBDdXJ0IEJydW5lIDxjdXJ0QGN1Y3kuY29tPgogICAgQ0M6IE1pY2hhbCBTSU1FSyA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBiNmI0NjI1ZDE3NTAxOWUzODdlNWIwZjY1YTE3MzIyYTc4ZjZiYjkwCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgRmViIDExIDE4OjM4OjM4IDIwMDkgLTA1MDAKCiAgICBib2FyZHM6IGdldCBtYWMgYWRkcmVzcyBmcm9tIGVudmlyb25tZW50CgogICAgVGhlIGJvYXJkcyB0aGF0IGdldCBjb252ZXJ0ZWQgaGVyZSB0byB1c2UgdGhlIGVudmlyb25tZW50IGZvciB0aGUgbWFjCiAgICBhZGRyZXNzIHJhdGhlciB0aGFuIGdsb2JhbCBkYXRhOgoJZGVicmlzCgltZ2NvZ2UKCW1nc3V2ZAoJbXVhczMwMDEKCW5ldHN0YWwKCXBuNjIKCXNpeG5ldAoJdmNtYTkKCXhpbGlueCAodGhlIG9uZXMgdGhhdCB1c2UgeGlsaW54X2VuZXQpCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBDQzogU2FuZ21vb24gS2ltIDxkb2dvaWxAZXRpbnN5cy5jb20+CiAgICBDQzogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBDQzogRGF2aWQgTXVlbGxlciA8ZC5tdWVsbGVyQGVsc29mdC5jaD4KICAgIENDOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgogICAgQ0M6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGRlbnguZGU+CiAgICBDQzogRGF2ZSBFbGxpcyA8REdFQHNpeG5ldGlvLmNvbT4KICAgIENDOiBSaWNhcmRvIFJpYmFsZGEgPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+Cgpjb21taXQgMDZhMGM0MzgxYTY1ZWQ1MDBjODE2YTA1YjlhZTdiMjA3YzNiMWQ0YgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAxODozNjo0NSAyMDA5IC0wNTAwCgogICAgQW1pZ2FPbmVHM1NFL2VuZXQ6IGdldCBtYWMgYWRkcmVzcyBmcm9tIGVudmlyb25tZW50CgogICAgQWx3YXlzIHVzZSB0aGUgTUFDIGFkZHJlc3MgdGhhdCBpcyBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50IGZpcnN0IGJlZm9yZQogICAgZmFsbGluZyBiYWNrIHRvIHRoZSBST00uICBUaGlzIGFsc28gY3V0cyBvdXQgYW55IGNvbXBhcmlzb24gc3RlcHM6IGlmIHRoZQogICAgbWFjIGluIHRoZSBlbnYgaXMgc2FuZSwgdGhlIFJPTSBpcyBuZXZlciBjb25zdWx0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IFRob21hcyBGcmllZGVuIDxUaG9tYXNGQGh5cGVyaW9uLWVudGVydGFpbm1lbnQuY29tPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNTZiNTU1YTY0NGYzY2JiMWIzOTI5Y2I1MmI2MWQzY2U0ODM4ODVmNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAxODo1MjozOCAyMDA5IC0wNTAwCgogICAgbnZlZGl0OiBkbyBub3QgdXBkYXRlIGdsb2JhbCBiaV9lbmV0YWRkciBhbmQgZG8gbm90IGNhbGwgZXRoX3NldF9lbmV0YWRkcigpCgogICAgU2luY2UgdGhlIGV0aGVybmV0IGxheWVyIGhhbmRsZXMgdXBkYXRpbmcgb2YgZGV2aWNlIGFkZHJlc3NlcyBpdHNlbGYgZnJvbQogICAgdGhlIGVudmlyb25tZW50LCB0aGVyZSBpcyBubyBwb2ludCBpbiBjYWxsaW5nIGV0aF9zZXRfZW5ldGFkZHIoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBDQzogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1MDEzNTMzNDY3YzFkZTczMWMyZjBjOWJlYjRiNDFjZTNmMDdjYmViCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgRmViIDExIDE4OjU0OjA3IDIwMDkgLTA1MDAKCiAgICBseW54a2RpOiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDYyYzkzZDkyZjFiNjI2NmIyZjMzYzVmNDAzOTMxYjUxY2JkMmEyNDYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTg6NTE6NDMgMjAwOSAtMDUwMAoKICAgIGJvb3R2eDogZ2V0IG1hYyBhZGRyZXNzIGZyb20gZW52aXJvbm1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBDQzogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGRlMmRmZjZmZjg5Zjk4YzYwNjJmNGQyMjRmZDQzNGEzZWRlMDM1ZDEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMTg6NTA6MTAgMjAwOSAtMDUwMAoKICAgIGJkaW5mbzogZ2V0IG1hYyBhZGRyZXNzIGZyb20gZW52aXJvbm1lbnQKCiAgICBBZGQgYSBuZXcgcHJpbnRfZXRoKCkgZnVuY3Rpb24gdG8gYXV0b21hdGUgdGhlIGV0aCphZGRyIGVudiB2YXIgYWNxdWlzaXRpb24KICAgIGFuZCBkaXNwbGF5LiAgQWZmZWN0cyBhbGwgYXJjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBDQzogU2NvdHQgTWNOdXR0IDxzbWNudXR0QHBzeWVudC5jb20+CiAgICBDQzogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIENDOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBzZXpuYW0uY3o+CiAgICBDQzogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTU4MjNjYTA3NzMzNTY4NjBlNjIyZWUzMzA0YTRiN2NhZmNiZjE5YQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAxODoyMzo0OCAyMDA5IC0wNTAwCgogICAgbmV0OiBnZXQgbWFjIGFkZHJlc3MgZnJvbSBlbnZpcm9ubWVudCBhbmQgdXNlIGV0aCB1dGlsIGZ1bmNzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNTAwYjZjNTFlNGM0MWY0NTYyY2I0ODM0NGFmOThkZWI3ZTM0MjczMQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCAxMyAxNTowNjoyNSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmaW5fbWFjOiBmb3JjZSBib2FyZHMgdG8gc2V0dXAgdGhlIE1BQyB0aGVtc2VsdmVzCgogICAgU2luY2UgdGhlIG9uLWNoaXAgTUFDIGRvZXMgbm90IGhhdmUgYW4gZWVwcm9tIG9yIHNpbWlsYXIgaW50ZXJmYWNlLCBmb3JjZQogICAgYWxsIEJsYWNrZmluIGJvYXJkcyB0aGF0IHVzZSB0aGlzIGRyaXZlciB0byBzZXR1cCB0aGUgYm9hcmQgZGF0YSB3aXRoIGEKICAgIHByb3BlciBNQUMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNmZmNDEzN2YyYWQ2NDBlNGZjOGVhMWIwNDU1MTYxZGRmZjFmNjczMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAxMSAxNDoxMjozNCAyMDA5IC0wNTAwCgogICAgZG9jL1JFQURNRS5lbmV0YWRkcjogZG9jdW1lbnQgcHJvcGVyIE1BQyB1c2FnZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNmNmU2OTkzZTkyZmQwNjU4ZGExNzQ2ZDFjODQ2NDQ2MTJlZTUyMGIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBKYW4gMjkgMTk6NDM6NDQgMjAwOSAtMDUwMAoKICAgIG5ldDogbmV3IHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggZW5ldGFkZHIncwoKICAgIERlY2xhcmUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGJldHdlZW4gdGhlIGVudmlyb25tZW50CiAgICB2YXJpYWJsZXMgKGV0aCphZGRyKSBhbmQgdGhlIGJpbmFyeSBNQUMgYWRkcmVzcyByZXByZXNlbnRhdGlvbi4gIFRoaXMgd2F5CiAgICB3ZSBjYW4gdW5pZnkgYWxsIHRoZSByYW5kb20gcGxhY2VzIHRoYXQgYWxyZWFkeSBkbyB0aGlzIGtpbmQgb2YgdGhpbmcuCgogICAgVGhlIGZ1bmN0aW9ucyBpbiBxdWVzdGlvbjoKCWV0aF9wYXJzZV9lbmV0YWRkciAtICIuLi4iIC0+IHsuLi59CglldGhfZ2V0ZW52X2VuZXRhZGRyIC0gZW52IC0+IHsuLi59CglldGhfc2V0ZW52X2VuZXRhZGRyIC0gey4uLn0gLT4gZW52CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYjY0NDZiNjc3NThlYTFlNDEyMjNmMDc4MjkyNGJiNzNmZDBhODlkMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEZlYiAxNyAwMDowMDo1MyAyMDA5IC0wNTAwCgogICAgY29udmVydCBwcmludF9JUGFkZHIoKSB0byAlcEk0CgogICAgTm93IHRoYXQgb3VyIHByaW50ZiBmdW5jdGlvbnMgc3VwcG9ydCB0aGUgJXBJNCBtb2RpZmllciBsaWtlIHRoZSBrZXJuZWwsCiAgICBsZXQncyBkcm9wIHRoZSBpbmZsZXhpYmxlIHByaW50X0lQYWRkcigpIGZ1bmN0aW9uIGFuZCBjb3ZlcnQgb3ZlciB0byB0aGUKICAgICVwSTQgbW9kaWZpZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNmM2MTY2ZjUyOTgzZGFjNzc1ZTM4NTJmOWQwZjQ5ZDAzM2YyNzEwOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxNiAyMzoyMTozNiAyMDA5IC0wNTAwCgogICAgdnNwcmludGY6IHB1bGwgdXBkYXRlcyBmcm9tIExpbnV4IGtlcm5lbAoKICAgIFRoaXMgYnJpbmdzIGluIHN1cHBvcnQgZm9yIHRoZSAlcCBtb2RpZmllciB3aGljaCBhbGxvd3MgdXMgdG8gZWFzaWx5IHByaW50CiAgICBvdXQgdGhpbmdzIGxpa2UgaXAgYWRkcmVzc2VzLCBtYWMgYWRkcmVzc2VzLCBhbmQgcG9pbnRlcnMuCgogICAgSXQgYWxzbyBjb252ZXJ0cyB0aGUgcmFyZWx5IHVzZWQgJ3EnIGxlbmd0aCBtb2RpZmllciB0byB0aGUgY29tbW9uICdMJwogICAgbW9kaWZpZXIgd2hlbiBkZWFsaW5nIHdpdGggcXVhZCB0eXBlcy4KCiAgICBXaGlsZSB0aGlzIG5ldyBjb2RlIGlzIGEgYml0IGxhcmdlciAofjFrIC50ZXh0KSwgbW9zdCBvZiBpdCBzaG91bGQgYmUgbWFkZQogICAgdXAgYnkgY29udmVydGluZyB0aGUgZXhpc3RpbmcgaXAvbWFjIGFkZHJlc3MgY29kZSB0byB1c2UgZm9ybWF0IG1vZGlmaWVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYTQzZWE1Y2M2ZDYxMjQ3MWZiYzc0ZjBhMjZiMmJlYTU4NjRhYTFkNgpBdXRob3I6IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgpEYXRlOglUaHUgTWFyIDE5IDIzOjA0OjE4IDIwMDkgLTA0MDAKCiAgICAuZ2l0aWdub3JlIGZvciBnZW5lcmF0ZWQgZmlsZXMgaW4gYXBpX2V4YW1wbGVzIGRpcmVjdG9yeQoKICAgIEFkZCAuZ2l0aWdub3JlIGZvciBnZW5lcmF0ZWQgZmlsZXMgaW4gYXBpX2V4YW1wbGVzIGRpcmVjdG9yeQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0MDI4MWE5Y2EyMWE2YjZkN2I5OTZiNGQ0ZWVhYTE5MDI2MzM3MjMxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDE4IDEyOjI3OjA0IDIwMDkgKzA5MDAKCiAgICBuZXQ6IHNoX2V0aDogUmVtb3ZlIHNoX2V0aF9yZXNldCgpIGZyb20gaGFsdCBmdW5jdGlvbgoKICAgIHNoX2V0aF9yZXNldCBpcyBmdW5jdGlvbiB0byByZXNldCBFdGhlciBJUC4KICAgIFRoZSBNQUMgYWRkcmVzcyBpcyBzdG9yZWQgaW4gSVAsIGJ1dCBpdCBpcyBpbml0aWFsaXplZCBieSB0aGlzIGZ1bmN0aW9uLgogICAgT1MgKGUuZy4gTGludXggS2VybmVsKSBjYW4gbm90IHVzZSB0aGlzIGRldmljZSB3aGVuIGluaXRpYWxpemVkLgogICAgVGhpcyByZXZpc2VzIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+Cgpjb21taXQgZjg4NTNkMTA1ZGE3ZDY5YmM5MmE1YjQ1NzhmOWI4NTIzNGU1NThlYwpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAyMCAxMjo0NTo1MCAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBGaXggYnVnIGluIFBDSSBvdXRib3VuZCBtYXAgY29uZmlndXJhdGlvbiBmb3IgY2FueW9ubGFuZHMKCiAgICBQQ0kgb3V0Ym91bmQgYWRkcmVzcyBtYXAgY29uZmlndXJhdGlvbiBkb2Vzbid0IG1hdGNoIHRoZQogICAgUENJIG1lbW9yeSBhZGRyZXNzIHJhbmdlIGNvdmVyZWQgYnkgYXBwcm9wcmlhdGUgVExCIGVudHJ5CiAgICBjb25maWd1cmF0aW9uIGZvciBjYW55b25sYW5kcyBjYXVzaW5nIG1hY2hpbmUgY2hlY2sKICAgIGV4Y2VwdGlvbnMgd2hpbGUgYWNjZXNzaW5nIFBDSSBtZW1vcnkgcmVnaW9ucy4gVGhpcyBwYXRjaAogICAgcHJvdmlkZXMgYSBmaXggZm9yIHRoaXMgaXNzdWUuCgogICAgS2F6dWFraSBJY2hpbm9oZSBvYnNlcnZlZCBhbmQgcmVwb3J0ZWQgdGhpcyBpc3N1ZSB3aGlsZQogICAgdGVzdGluZyBkaXNwbGF5IG91dHB1dCB3aXRoIFBDSSBBVEkgdmlkZW8gY2FyZCBvbiBjYW55b25sYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2E4ODYwMWEzNDEzMjU0OGMzYzU5MWVhODdhYjM0NjhiNTExMjFiMApBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBNYXIgNiAxMDowOTozNyAyMDA5IC0wNTAwCgogICAgQ0ZJOiBnZW9tZXRyeSByZXZlcnNhbCBmb3IgU1RNaWNybyBNMjlXMzIwRFQKCiAgICBGb2xsb3cgdXAgdG8gdGhlIGZsYXNoX2ZpeHVwX3N0bSB0byBmaXggZ2VvbWV0cnkgcmV2ZXJzYWwKICAgIG9uIFNUTWljcm8gTTI5VzMyMEVUIGZsYXNoIGNoaXAuIFRoZSBNMjlXMzIwRFQgaGFzIDQgZXJhc2UgcmVnaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDY5ZjQzNjRkODA3ZDdmZGVhM2RlNzM4NWFkMmY4ZDgzYzU4N2FlYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEZlYiAyNSAxNzoyOTo0MCAyMDA5IC0wNTAwCgogICAgc21jOTExeF9lZXByb206IHVwZGF0ZSByZWdpc3RlciBBUEkKCiAgICBUaGUgc21jOTExeCBkcml2ZXIgY2hhbmdlZCB0aGUgbmFtaW5nIGNvbnZlbnRpb24gZm9yIGl0cyByZWdpc3RlciBmdW5jcywKICAgIHNvIHVwZGF0ZSB0aGUgZWVwcm9tIGNvZGUgYWNjb3JkaW5nbHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQ0M6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNmEzOTdlZjBlNmM1OGNhYWI4YmY0MjdkNDQ3NzE0YmM5YjNiYjlkNApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWFyIDE3IDEwOjA2OjM5IDIwMDkgKzAxMDAKCiAgICBtcGM1Mnh4OiBHZXQgcmlkIG9mIGJvYXJkLXNwZWNpZmljICNpZmRlZidzIGluIGNwdS9tcGM1eHh4L2lkZS5jCgogICAgVG90YWw1MjAwIGFuZCBkaWdzeSBNVEMgdXNlIEkyQyBwb3J0IDIgcGlucyBhcyBhIEFUQSBjaGlwIHNlbGVjdC4KICAgIFRvIGF2b2lkIGFkZGluZyBib2FyZC1zcGVjaWZpYyBpZmRlZnMgdG8gY3B1L21wYzV4eHgvaWRlLmMgbmV3CiAgICBkZWZpbmUgQ09ORklHX1NZU19BVEFfQ1NfT05fSTJDMiB3YXMgaW50cm9kdWNlZC4gSXQgaXMgdXNlZCBieQogICAgVG90YWw1MjAwIGFuZCB3aWxsIGJlIHVzZWQgYnkgZGlnc3kgTVRDIGFuZCBvdGhlciBib2FyZHMgd2l0aAogICAgQVRBIENTIG9uIEkyQyBwaW5zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFiNjI3NWRmYjE3M2JkMmVkYjhmMjA4ZGQwNTBkNmY0N2FlMzk2NTQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxMiAwNzozNzozNCAyMDA5ICswMTAwCgogICAgOHh4OiBhZGQgc3VwcG9ydCBmb3IgbmV3IGtleW1pbGUga21zdXB4NCBib2FyZC4KCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGttc3VweDQgYm9hcmQgZnJvbSBLZXltaWxlLAogICAgYmFzZWQgb24gYSBGcmVlc2NhbGUgTVBDODUyVCBDUFUKCiAgICAtIHNlcmlhbCBjb25zb2xlIG9uIFNNQzEKICAgIC0gMzIgTUIgU0RSQU0KICAgIC0gMzIgTUIgTk9SIEZsYXNoCiAgICAtIEV0aGVybmV0IG92ZXIgU0NDMwogICAgLSBJMkMgQml0YmFuZwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGQwNDQ5NTRmZTJhN2U3YTNkZDEwNGViOWM5ZDIxMDRlMzhkYTI5MTEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxMiAwNzozNzoyOCAyMDA5ICswMTAwCgogICAgOHh4LCBtZ3N1dmQ6IHJlbmFtZSBib2FyZCB0byBhIG1vcmUgZ2VuZXJpYyBuYW1lCgogICAgcmVuYW1pbmcgdGhlICJtZ3N1dmQiIGJvYXJkIHBvcnQgaW50byAia204eHgiLCBiZWNhdXNlCiAgICB0aGVyZSBjb21lIG1vcmUgc2ltaWxhciBib2FyZHMgZnJvbSBrZXltaWxlLgogICAgQ29tcGlsaW5nIHRoZSBtZ3N1dmQgYm9hcmQgd2l0aCAibWFrZSBtZ3N1dmRfY29uZmlnIgogICAgcmVtYWlucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAxOGIyZjM1YmRlMTY3MmUwNzRhM2Q1MDQ4MzgzY2I1NmZkYTc0NWNiCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMTIgMDc6Mzc6MjMgMjAwOSArMDEwMAoKICAgIDh4eCwgbWdzdXZkOiBDb2RpbmcgU3R5bGUgY2xlYW51cCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDM2NDEyM2RiNjczMGQzMjMzMGY4MThiNjUzNjBkMmNkMjczOTY2NjcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxMiAwNzozNzoxOCAyMDA5ICswMTAwCgogICAgcG93ZXJwYzogY29tbW9uIHVwZGF0ZXMgZm9yIGtleW1pbGUgYm9hcmRzCgogICAgLSBhZGRlZCB0byBrZXltaWxlLWNvbW1vbi5oOgogICAgICAtIGJvb3Rjb3VudCBzdXBwb3J0CiAgICAgIC0gQ09NTUFORCBISVNUT1JZCiAgICAgIC0gQ09ORklHX0FVVE9fQ09NUExFVEUKICAgICAgLSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KICAgICAgLSBKRkZTMiBzdXBwb3J0CiAgICAgIC0gQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUKICAgIC0gZXh0cmFjdGVkIGNvbW1vbiBJMkMgc2V0dGluZ3MgZm9yIGFsbCBib2FyZHMKICAgIC0gY29tbW9uIGRlZmF1bHQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgc3VtbWFyaXplZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDUwNmYzOTE4ODhiODJkMWI4M2JkZDc0OWMzY2VhOWViMmZkNjRkZjgKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxMiAwNzozNzoxNSAyMDA5ICswMTAwCgogICAgOHh4LCBpY2FjaGU6IGVuYWJsaW5nIElDYWNoZSBub3QgYmVmb3JlIHJ1bm5pbmcgZnJvbSBSQU0KCiAgICB3aXRoIHRoZSBuZXcgQ09ORklHX1NZU19ERUxBWUVEX0lDQUNIRSBjb25maWcgb3B0aW9uLCBJQ2FjaGUKICAgIGlzIG5vdCBlbmFibGVkIGJlZm9yZSBjb2RlIHJ1bnMgZnJvbSBSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgY2FiZjdiOWM4M2JkNzgwYTU4MDVkZGJiNGMwY2U0MzFkNWI5ZjlmMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEyIDA3OjM3OjExIDIwMDkgKzAxMDAKCiAgICA4Mnh4LCBtZ2NvZ2U6IGZpeCBlbnZpcm9ubWVudCBzZWN0b3Igc2l6ZQoKICAgIFNpemUgb2Ygb25lIGVudmlyb25tZW50IHNlY3RvciBpcyAweDIwMDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDI3MDU3ZDQxNmM3Y2M5ZWIxODYwOTUzZGE4ODM2MzUyYzA3ZjEzZTkKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CU1vbiBNYXIgMTYgMjM6Mjc6MzEgMjAwOSArMDEwMAoKICAgIE5ldFN0YXI6IGNvbmZpZyByZWluZGVudGF0aW9uCgogICAgRml4IGluZGVudGF0aW9uIGJyb2tlbiBieSBzeW1ib2wgcmVuYW1lcy4gIlNvcnQiIGRyaXZlciByZWxhdGVkIGRlZmluaXRvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKY29tbWl0IDhkODIzNWY4NGQzZWYzZjI5YjdkMTRlNzQxMzY5YjU4MjRiNWJiNGEKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDE3IDExOjIxOjQzIDIwMDkgKzAwMDAKCiAgICBDb2xkRmlyZTogRml4IGluY29ycmVjdCBkZWZpbml0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MDE3ZDkzMjVhNTA2N2IyYWIwZDcwYTJkM2M5MDc2MjBjOWFiN2Y4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAyIDE5OjE2OjQ1IDIwMDkgKzAwMDAKCiAgICBDb2xkRmlyZTogRml4IE01MzI5RVZCIGFuZCBNNTM3M0VWQiBuYW5kIGlzc3VlCgogICAgVGhlIE5hbmQgZmxhc2ggd2FzIHVuYWJsZSB0byByZWFkIGFuZCB3cml0ZSBwcm9wZXJseQogICAgZHVlIHRvIE5hbmQgQ2hpcCBTZWxlY3QgKG5DRSkgc2V0dXAgd2FzIGluIHJldmVyc2UKICAgIG9yZGVyLiBBbHNvLCBpbmNyZWFzZSB0aGUgTmFuZCB0aW1lIG91dCB2YWx1ZSB0byA2MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQyYjY4YWYxMDYyZjc1YmI0YTkxY2Y0N2UzMjlhN2U4MTAwY2Q4MTUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDI3IDE1OjE5OjM1IDIwMDkgKzAwMDAKCiAgICBDb2xkRmlyZTogUExBVEZPUk1fQ1BQRkxBR1MgdXBkYXRlcyBmb3IgbmV3IGNvbXBpbGVyCgogICAgVXBkYXRlIFBMQVRGT1JNX0NQUEZMQUdTIHRvIGFjY2VwdCA0LjMueCB2ZXJzaW9uIG9mCiAgICBDb2xkRmlyZSBjb21waWxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2ZTRiYWY0OTk4N2ZjNmY3NWU4NTc0YzBjMjczMDFhODI4YjMxMzIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDI3IDEyOjU3OjQ3IDIwMDkgKzAwMDAKCiAgICBDb2xkRmlyZTogUHJvdmlkZSBnemlwIGltYWdlIHNpemUgVjIgJiBWMyBwbGF0Zm9ybXMKCiAgICBEZWZhdWx0IGd6aXAgYm9vdG0gc2l6ZSBpcyA4TUIuIFNvbWUgcGxhdGZvcm1zIHJlcXVpcmUKICAgIG1vcmUgdGhhbiA4TUIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMzYTllNjM3NDIxMDY3OWE4MWY2MTFjMWJjZjk2ODk4OGJjMjBlNDEKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE4IDExOjQ5OjMxIDIwMDkgKzAwMDAKCiAgICBDb2xkRmlyZTogRml4IE01NDQ1MSBzZXJpYWwgYm9vdCBkcmFtIHNldHVwCgogICAgVGhlIHNlcmlhbCBib290IGRyYW0gZXh0ZW5kZWQvc3RhbmRhcmQgbW9kZSByZWdpc3RlciB3YXMgbm90CiAgICBzZXR1cCBhbmQgd2FzIHVzaW5nIGRlZmF1bHQgRFJBTSBzZXR1cCBjYXVzaW5nIHRoZSBVLWJvb3Qgd2FzCiAgICB1bnN0YWJsZSB0byBib290IHVwIGluIHNlcmlhbCBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzJkMTFkNTgxNTlhNTc1ZjA4YTk4MmNhZDhhNWE5NDFmZmU1Y2MzZApBdXRob3I6IGFydW4gYyA8YXJ1bi5lZGFyYXRoQGdtYWlsLmNvbT4KRGF0ZToJVGh1IERlYyA0IDE1OjU3OjE1IDIwMDggKzA1MzAKCiAgICBDb2xkZmlyZTogWEwgQnVzIG1pbm9yIGZpeGVzCgogICAgQWNjb3JkaW5nIHRvIGNvbGRmaXJlIG1hbnVhbCBkYXRhIHRpbWVvdXQgPiBhZGRyZXNzIHRpbWUgb3V0CiAgICBhbHNvIHVzZSBjb3JyZWN0IG1hY3JvIHRvIHByb2dyYW0gWEFSQl9DRkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBBcnVuIEMgPGFydW5lZGFyYXRoQG1pc3RyYWxzb2x1dGlvbnMuY29tPgoKY29tbWl0IDY1ZDhiYzk0ZDgyMTQ4MTJjY2RmMzM3MmQzZmVmODQ1Y2Y0ZWMyZTUKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAxNyAxMjowNjowNCAyMDA5IC0wNTAwCgogICAgTkFORDogSGF2ZSBuYm9vdCBhY2NlcHQgLmUgYW5kIC5pIGFzIGxlZ2FjeSBuby1vcHMuCgogICAgVGhpcyB3YXMgaW50ZW5kZWQgdG8gaGFwcGVuIGJlZm9yZSwgYnV0IGEgdHJpdmlhbCBidWcgcHJldmVudGVkIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5ODc1MDU1NDA5MThiMjQ2NGI3MzA2OWFmM2E1Yjc2NmRiZDNjZWIKQXV0aG9yOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkRhdGU6CUZyaSBNYXIgMTMgMTQ6Mzg6MTkgMjAwOSArMDEwMAoKICAgIE5BTkQ6IE1ha2UgbmJvb3Qgc2tpcCBiYWQgYmxvY2tzCgogICAgbmJvb3QgY29tbWFuZCBjdXJyZW50bHkgZG9lcyBub3Qgc2tpcCBiYWQgYmxvY2tzIGFuZCBnaXZlcyByZWFkIGVycm9yIHdoZW4KICAgIGxvYWRpbmcgaW1hZ2Ugc3RvcmVkIG92ZXIgYmFkIGJsb2NrLiBXaXRoIHBhdGNoIGFwcGxpZWQsIG5ib290IHdvcmtzIGFzCiAgICBleHBlY3RlZDoKCiAgICBEZXZpY2UgMCBiYWQgYmxvY2tzOgogICAgICAwMDc4MDAwMAogICAgICAwMTRhMDAwMAogICAgICAwMjAwMDAwMAogICAgICAwMmNjMDAwMAogICAgICAwNGFhMDAwMAoKICAgIExvYWRpbmcgZnJvbSBOQU5EIDEyOE1pQiAzLDNWIDgtYml0LCBvZmZzZXQgMHgyYzAwMDAwCiAgICAgICBJbWFnZSBOYW1lOiAgIExpbnV4LTIuNi4yMi1vbWFwMQogICAgICAgQ3JlYXRlZDogICAgICAyMDA4LTExLTIwICAyMzo0NDozMiBVVEMKICAgICAgIEltYWdlIFR5cGU6ICAgQVJNIExpbnV4IEtlcm5lbCBJbWFnZSAodW5jb21wcmVzc2VkKQogICAgICAgRGF0YSBTaXplOiAgICAxMDUyNTIwIEJ5dGVzID0gIDEgTUIKICAgICAgIExvYWQgQWRkcmVzczogMTAwMDgwMDAKICAgICAgIEVudHJ5IFBvaW50OiAgMTAwMDgwMDAKICAgIFNraXBwaW5nIGJhZCBibG9jayAweDAyY2MwMDAwCiAgICBBdXRvbWF0aWMgYm9vdCBvZiBpbWFnZSBhdCBhZGRyIDB4MTA0MDAwMDAgLi4uCiAgICAuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYjJmMzhmZTNjNDU1NWRkMmI4MWM2OTg4MDQwM2MxM2FkNzIzMTUzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEyIDA3OjI3OjI1IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogT25seSB1c2Ugb25lIENTIChyYW5rKSBpbiBERFIyIGNvbmZpZ3VyYXRpb24KCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSBzcG90dGVkIGJ5IE1pa2hhaWwgWm9sb3RhcnlvdiBvbiBTZXF1b2lhIHdpdGgKICAgIHRoZSBERFIyIGNvbmZpZ3VyYXRpb24gdG8gb25seSB1c2Ugb25lIENTIChyYW5rKS4gQXMgdGhpcyBjb2RlIGlzIG1vc3QKICAgIGxpa2VseSBjb3BpZWQgZnJvbSB0aGUgb3JpZ2luYWwgU2VxdW9pYSB2ZXJzaW9uLCB0aGlzIGVycm9yIHdhcyBjb3BpZWQKICAgIGFzIHdlbGwuCgogICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgc29tZSBkZWFkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkxOTliOWNjOGY1NmFjYTI2NTA0YjQ4Y2Y3MDIxNzYyMDhmNDZlNTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMTIgMDc6MjQ6NDAgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogUE1DNDQwOiBPbmx5IHVzZSBvbmUgQ1MgKHJhbmspIGluIEREUjIgY29uZmlndXJhdGlvbgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHNwb3R0ZWQgYnkgTWlraGFpbCBab2xvdGFyeW92IG9uIFNlcXVvaWEgd2l0aAogICAgdGhlIEREUjIgY29uZmlndXJhdGlvbiB0byBvbmx5IHVzZSBvbmUgQ1MgKHJhbmspLiBBcyB0aGlzIGNvZGUgaXMgbW9zdAogICAgbGlrZWx5IGNvcGllZCBmcm9tIHRoZSBvcmlnaW5hbCBTZXF1b2lhIHZlcnNpb24sIHRoaXMgZXJyb3Igd2FzIGNvcGllZAogICAgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWU4NmZkMTVlMWNjZGE0YmU0MWYxZGJhODJiOGM5ZWZlYTlhMzE0NQpBdXRob3I6IE1pa2hhaWwgWm9sb3RhcnlvdiA8bGVib25AbGVib24ub3JnLnVhPgpEYXRlOglXZWQgTWFyIDExIDEwOjU0OjQ2IDIwMDkgKzAyMDAKCiAgICBGaXggQU1DQyBTZXF1b2lhIGJvYXJkIEREUiBtZW1vcnkgY29uZmlndXJhdGlvbgoKICAgIFNlcXVvaWEgYm9hcmQgc2NoZW1hdGljcyAoREVTMDIxMV8xMV9TQ0hfMTEucGRmLCBwYWdlIDUsIHVuaXQgVTFEKQogICAgc3BlY2lmaWVzIHRoYXQgQmFua1NlbCMxIGlzIG5vdCBjb25uZWN0ZWQsIHdoaWxlIGJvb3Rsb2FkZXIgbWVtb3J5CiAgICBjb25maWd1cmF0aW9uIGlzIChib2FyZC9hbWNjL3NlcXVvaWEvc2RyYW0uYyk6CgkgICBtdHNkcmFtKEREUjBfMTAsIDB4MDAwMDAzMDApOwogICAgaS5lLiBib3RoIENoaXAgU2VsZWN0cyB1c2VkIC0gbm90IGNvcnJlY3QuCgogICAgSWYgd2UgY2hhbmdlIHRvIGNvcnJlY3QgdmFsdWUgaGVyZToKCSAgIG10c2RyYW0oRERSMF8xMCwgMHgwMDAwMDEwMCk7CiAgICBtZW1vcnkgaXMgYWNjZXNzaWJsZSBPSyBhbHNvLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2hhaWwgWm9sb3RhcnlvdiA8bGVib25AbGVib24ub3JnLnVhPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGIzZGQ2MjllNzg4NzBiYTJkYzlmODAzMjk3ODcyMWMwZmEwMmE4NTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDE1IDIyOjQwOjA5IDIwMDkgKzAxMDAKCiAgICBQcmVwYXJlIDIwMDkuMDMtcmMyCgogICAgVXBkYXRlIENIQU5FR0xPRywgZml4IG1pbm9yIGNvZGluZyBzdHlsZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDM5NGQzMGRkMWVlMjNiODBmZDVlNTllMTdlYmUwZmVjYTkyN2FiMzEKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTE6NDA6MTAgMjAwOSAtMDQwMAoKICAgIG1wYzgzeHg6IEFkZCBiYW5rIGNvbmZpZ3VyYXRpb24gdG8gRlNMIHNwZF9zZHJhbS5jCgogICAgVGhlIHJvdXRpbmUgYXNzdW1lZCA0IGJhbmsgU0RSQU1zLCBlbmhhbmNlIHRvIGNvbmZpZ3VyZSBmb3IgNCBvciA4CiAgICBiYW5rIFNEUkFNcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgQWNrZWQtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI1ODE2MjZjMWUyNDc0YTNkYWRmNjlkNGYwZTA1ODJlY2NiYzQyMzUKQXV0aG9yOiBOb3JiZXJ0IHZhbiBCb2xodWlzIDxudmJvbGh1aXNAYWltdmFsbGV5Lm5sPgpEYXRlOglGcmkgTWFyIDEzIDA4OjU4OjE0IDIwMDkgKzAxMDAKCiAgICBtcGM4M3h4OiBjb3JyZWN0bHkgc2V0IGVuY3J5cHRpb24gYW5kIEkyQyBidXMgMCBjbG9jawoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB0aGUgY29ycmVjdCBtYXNrIGlzIGFwcGxpZWQgd2hlbiBzZXR0aW5nCiAgICB0aGUgZW5jcnlwdGlvbiBhbmQgSTJDIGJ1cyAwIGNsb2NrIGluIFNDQ1IuCiAgICBGYWlsaW5nIHRvIGRvIHNvIG1heSBsZWFkIHRvIEVOQ0NNIGJlaW5nIDAgaW4gd2hpY2ggY2FzZSBJMkMgYnVzIDAKICAgIHdvbid0IGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vcmJlcnQgdmFuIEJvbGh1aXMgPG52Ym9saHVpc0BhaW12YWxsZXkubmw+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2YTZhNzA0MTUxYzJkN2U0YTdiNDg1NTQ1YjQ4YTYwMjBjY2NhMTcKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglUaHUgTWFyIDEyIDE5OjMwOjUwIDIwMDkgKzAxMDAKCiAgICBPTUFQMzogQWRkIHN1cHBvcnQgZm9yIE9NQVAzIGRpZSBJRAoKICAgIFJlYWQgYW5kIHN0b3JlIE9NQVAzIGRpZSBJRCBpbiBVLUJvb3QgZW52aXJvbm1lbnQuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCBmOTQ5YmQ4ZDA4OWVjMzA1OWM0NjBhYzgyOWMwZDkxOWUxZDdhZjBlCkF1dGhvcjogSm9uIFNtaXJsIDxqb25zbWlybEBnbWFpbC5jb20+CkRhdGU6CVdlZCBNYXIgMTEgMTU6MDg6NTYgMjAwOSAtMDQwMAoKICAgIE1QQzUyMDAgRkVDIE1JSSBzcGVlZCByZWdpc3RlcgoKICAgIFNldCBhIG5vbi16ZXJvIHNwZWVkIGluIHRoZSBNSUkgcmVnaXN0ZXIgc28gdGhhdCBNSUkgY29tbWFuZHMgd2lsbCB3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgoKY29tbWl0IDk0YTM1MzYxMWI5M2FjNGNiNDQzNGE1ZjdlOThhYTA5MDJkYTkxOWUKQXV0aG9yOiBZdXN1a2UuR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CkRhdGU6CUZyaSBNYXIgMTMgMTY6MDg6MTggMjAwOSArMDkwMAoKICAgIHNoOiBhcDMyNXJ4YTogQ2hhbmdlIHRoZSB3YWl0IGN5Y2xlIGluIHRoZSBhcmVhIDUKCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMmRiMGUxMjc4YjlmMTEyNjNlMGExMzMyNmI1N2Q0Zjk5NzgxZjdhYwpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIEZlYiAyNSAxNjowNDoyNiAyMDA5ICswOTAwCgogICAgc2g6IEZpeCBjYW5ub3Qgd29yayBydGw4MTM5IG9uIHIyZHBsdXMKCiAgICBUaGUgcnRsODEzOSBkcml2ZXIgdXNlIHBjaV9tZW1fdG9fcGh5cy4gU28gaXQgbmVlZCBQQ0kgc3lzdGVtIG1lbW9yeQogICAgcmVnaXN0cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2NGYzYzBiOGJhOTlkNjY1MWRiNTkyNzNlNDk3YWI1ZTg1N2M4ZDRmCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgRmViIDI3IDE4OjM1OjQxIDIwMDkgKzA5MDAKCiAgICBzaDogQWRkIG5ldGRldiBoZWFkZXIgZml4aW5nIG9mIHdhcm5pbmcvYnVpbGQKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYWRhOTMxODI1MmY1MWMyNjI2ZTk4MzdjNjIzZjk4MTJiMDMwOGRlYQpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE1hciAzIDE1OjExOjE3IDIwMDkgKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgMzItQml0IEV4dGVuZGVkIEFkZHJlc3MgTW9kZSB0byBzaDc3ODVsY3IKCiAgICBXZSBjYW4gYnVpbHQgJ21ha2Ugc2g3Nzg1bGNyXzMyYml0X2NvbmZpZycuIEFuZCBhZGQgbmV3IGNvbW1hbmQgInBtYiIKICAgIGZvciB0aGlzIG1vZGUuIFRoaXMgY29tbWFuZCBjaGFuZ2VzIFBNQiBmb3IgdXNpbmcgNTEyTUIgc3lzdGVtIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMDZiMTgxNjNiNTdlNmIwMzQ5YjBjMjk5MjIyZDUwZTdiMWU0MWU1MApBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIEZlYiAyNSAxNDoyNjo0MiAyMDA5ICswOTAwCgogICAgc2g6IEFkZCBzb21lIHJlZ2lzdGVyIHZhbHVlIGNvbmZpZ3VyYWJsZSB0byBQQ0kgb2YgU0g3NzgwCgogICAgU29tZSByZWdpc3RlciB2YWx1ZSB3YXMgaGFyZGNvZGVkIGZvciBTeXN0ZW0gbWVtb3J5IHNpemUgMTI4TUIgYW5kCiAgICBtZW1vcnkgb2Zmc2V0IDB4MDgwMDAwMDAuIFRoaXMgcGF0Y2ggZml4ZWQgdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDA2ZTI3MzVlYjg1Y2JlYTdjZWNiM2MzMDhkNmQwNzhiMzY1MWIyMmMKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBGZWIgMjUgMTQ6MjY6NTIgMjAwOSArMDkwMAoKICAgIHNoOiBBZGQgc3lzdGVtIG1lbW9yeSByZWdpc3RyYXRpb24gdG8gUENJIGZvciBTSDQKCiAgICBJdCBpcyBuZWNlc3NhcnkgZm9yIHNvbWUgcGNpIGRldmljZSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGIzMDYxYjQwZGI2OTEyNDVhN2JiOWE1NTM1NGI0ZWRhY2JmMzkwMmQKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBGZWIgMjUgMTQ6MjY6NTUgMjAwOSArMDkwMAoKICAgIHNoOiBBZGQgdmFsdWUgZm9yIFBDSSBzeXN0ZW0gbWVtb3J5IHJlZ2lzdHJhdGlvbiBvZiBzaDc3ODVsY3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmQ4NGFlMzk1NmE2Y2Q3YWViZDg2ZjY2MTEzMDc1MjU5NGU2MDEyNApBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE1hciAzIDE1OjExOjA4IDIwMDkgKzA5MDAKCiAgICBzaDogQWRkIG1hY3JvcyBmb3IgU0gtNEEgMzItQml0IEFkZHJlc3MgRXh0ZW5kZWQgTW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzZTNlZWMzOWRlOGZlMGFlNjJlNmU0ZDRlM2ZhNDQ0MmVlOWVkNmIxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgRmViIDMgMTM6MzU6MDUgMjAwOSArMDkwMAoKICAgIHNoOiB1c2Ugd3JpdGV7OCwxNiwzMn0gaW4gbXM3NzIwc2UgbG93bGV2ZWxfaW5pdAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwNDUyMzUyZGYxMThiYzlkZDY4NGEwNTZhYWFhNWZiNGFlZDExNzhhCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CU1vbiBNYXIgOSAxODowNzo1MyAyMDA5IC0wNTAwCgogICAgdHNlYzogcmVwb3J0IHdoZW4gdGhlcmUgaXMgbm8gdmVuZG9yIHNwZWNpZmljIFBIWSBzdXBwb3J0CgogICAgQ29tbWl0IGFmMWMyYjg0IGFkZGVkIGEgZ2VuZXJpYyBwaHkgc3VwcG9ydCwgd2l0aCBhbiBJRCBvZiB6ZXJvCiAgICBhbmQgYSAzMiBiaXQgbWFzazsgbWVhbmluZyB0aGF0IGl0IHdpbGwgbWF0Y2ggb24gYW55IFBIWSBJRC4KCiAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZXJlIGlzIGEgdGVzdCB0aGF0IGNoZWNrZWQgaWYgYSBtYXRjaGluZwogICAgUEhZIHdhcyBmb3VuZCwgYW5kIGlmIG5vdCwgaXQgcHJpbnRlZCB0aGUgbm9uLW1hdGNoaW5nIElELgogICAgQnV0IHNpbmNlIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGEgbWF0Y2ggKG9uIHRoZSBnZW5lcmljIFBIWSwKICAgIHdvcnN0IGNhc2UpLCB0aGlzIHRlc3Qgd2lsbCBuZXZlciB0cmlwLgoKICAgIEluIHRoZSBjYXNlIG9mIGEgbWlzY29uZmlndXJlZCBQSFkgYWRkcmVzcywgb3Igb2YgYSBQSFkgdGhhdAogICAgaXNuJ3QgZXhwbGljaXRseSBzdXBwb3J0ZWQgb3V0c2lkZSBvZiB0aGUgZ2VuZXJpYyBzdXBwb3J0LAogICAgeW91IHdpbGwgbmV2ZXIgc2VlIHRoZSBJRCBvZiAweGZmZmZmZmZmLCBvciB0aGUgSUQgb2YgdGhlCiAgICByZWFsIChidXQgdW5zdXBwb3J0ZWQpIGNoaXAuICBJdCB3aWxsIHNpbGVudGx5IGZhbGwgdGhyb3VnaAogICAgb250byB0aGUgZ2VuZXJpYyBzdXBwb3J0LgoKICAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoYXQgdGVzdCB1c2VmdWwgYWdhaW4sIGFuZCBlbnN1cmVzIHRoYXQKICAgIHRoZSBzZWxlY3Rpb24gb2YgZ2VuZXJpYyBQSFkgc3VwcG9ydCBkb2Vzbid0IGhhcHBlbiB3aXRob3V0CiAgICBzb21lIHNvcnQgb2Ygbm90aWNlLiAgSXQgYWxzbyBtYWtlcyBpdCBleHBsaWNpdGx5IGNsZWFyIHRoYXQKICAgIHRoZSBnZW5lcmljIFBIWSBtdXN0IGJlIGxhc3QgaW4gdGhlIFBIWSB0YWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzI3OWRmYzEwMTg2Y2ViYTc4ZDM4NjIwMzZmMTU4NzUwZTg2NTk5YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgOSAxMDo1MzowNSAyMDA5ICswMTAwCgogICAgU0lNUEM4MzEzIGJvYXJkOiBmaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcuCgogICAgRml4IHR5cG8gaW4gbWFrZWZpbGUgd2hpY2ggYnJva2Ugb3V0IG9mIHRyZWUgYnVpbGRzLgoKICAgIEFsc28gdXNlIGV4cG9saWNpdCAicm0iIGluc3RlYWQgb2YgImxuIC1zZiIgd2hpY2ggaXMga25vd24gdG8gYmUKICAgIHVucmVsaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDliNWFmZjQ5MWJkNTc0OTM1ZWNhZjg1NDUxNTIwNjZhMjVlZmYzZApBdXRob3I6IGtzaUBrb2k4Lm5ldCA8a3NpQGtvaTgubmV0PgpEYXRlOglNb24gRmViIDIzIDEwOjUzOjEzIDIwMDkgLTA4MDAKCiAgICBBZGQgZVRTRUMgMS8yIElPIG92ZXJyaWRlIGNvbnRyb2wgKGNvcnJlY3RlZCkKCiAgICBUaGlzIGFkZHMgdHNlYzEyaW9vdmNyIHRvIGluY2x1ZGUvYXNtLXBwYy9pbW1hcF84NXh4LmggKHdhcyByZXNlcnZlZC4pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+Cgpjb21taXQgNDhjMmI3YmI0MzJkYTg0ZmNjZTA1YjRkYjZlZmFkMGJlNzNhOTNkYwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciA2IDE5OjA1OjUyIDIwMDkgLTA2MDAKCiAgICBmc2w6IFJlbW92ZSB1bm5lY2Vzc2FyeSBkZWJ1ZyBwcmludGZzCgogICAgVGhlc2Ugd2VyZSBsZWZ0IGluIGFjY2lkZW50YWxseSwgYW5kIGFyZSBub3QgcmVhbGx5IHVzZWZ1bCB1bmxlc3MgdGhlCiAgICBjb2RlIGlzIGFzIGJyb2tlbiBhcyBpdCB3YXMgd2hlbiBpdCB3YXMgYmVpbmcgZGV2ZWxvcGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZWU4NGI4OGI3OGJjZTQyNTE5MGQ4Y2Q3YWRmNGMzMGNiYTBjMmYwCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAyNCAwMjozNzo1OSAyMDA5IC0wNjAwCgogICAgRml4IG1wYzg1eHggZGRyLWdlbjMgZGRyX3NkcmFtX2NmZy4KCiAgICBDb21taXQgZTFiZTBkMjUsICIzMmJpdCBCVWcgZml4IGZvciBERFIyIG9uIDg1NzIiIHByZXZlbnRlZCBvdGhlcgogICAgc2RyYW1fY2ZnIGJpdHMgKHN1Y2ggYXMgZWNjIGFuZCBzZWxmX3JlZnJlc2hfaW5fc2xlZXApIGZyb20gYmVpbmcgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTkyMmZkYjg3YWYyNWMyNWMwMzI0MjQ5MDhkY2Y2MGZiZjMyNTBlYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBGZWIgMjQgMDY6MTM6MTAgMjAwOSArMDEwMAoKICAgIFBYQTogdGltZXIgdXNlIGRvX2RpdiBhbmQgc2ltcGxpZnkgaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRiMDBkMWFhODJiNmFmOWI0ZTYyOGE1NzI5YTEyMDg2ZTQ0NTU4YjMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDkgMTA6NTE6MzkgMjAwOSArMDEwMAoKICAgIFNJTVBDODMxMyBib2FyZDogZml4IG91dCBvZiB0cmVlIGJ1aWxkaW5nLgoKICAgIEZpeCB0eXBvIGluIG1ha2VmaWxlIHdoaWNoIGJyb2tlIG91dCBvZiB0cmVlIGJ1aWxkcy4KCiAgICBBbHNvIHVzZSBleHBvbGljaXQgInJtIiBpbnN0ZWFkIG9mICJsbiAtc2YiIHdoaWNoIGlzIGtub3duIHRvIGJlCiAgICB1bnJlbGlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjcwZmQxM2UyZmU0Y2Y1OGUyNTEyNzFjMjdmOWMwNmUxNDFkN2Y5YQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgRmViIDI0IDExOjMwOjUxIDIwMDkgKzAxMDAKCiAgICA4MzYwLCBrbWV0ZXIxOiBhZGRlZCBib290Y291bnQgZmVhdHVyZS4KCiAgICBhZGQgQ09ORklHX0JPT1RDT1VOVF9MSU1JVCBmZWF0dXJlIGZvciA4MzYwIENQVS4KCiAgICBUaGUgYm9vdGNvdW50ZXIgdXNlcyA4IGJ5dGVzIGZyb20gdGhlIG11cmFtLAogICAgYmVjYXVzZSBubyBvdGhlciBtZW1vcnkgd2FzIGZvdW5kIG9uIHRoaXMKICAgIENQVSBmb3IgdGhlIGJvb3Rjb3VudCBmZWF0dXJlLiBTbyB3ZSBtdXN0CiAgICBjb3JyZWN0IHRoZSBtdXJhbSBzaXplIGluIERUUyBiZWZvcmUgYm9vdGluZwogICAgTGludXguCgogICAgVGhpcyBmZWF0dXJlIGlzIGFjdHVhbCBvbmx5IGltcGxlbWVudGVkIGZvcgogICAgTVBDODM2MCwgYmVjYXVzZSBub3QgYWxsIDgzeHggQ1BVIGhhdmUgcWUsCiAgICBhbmQgdGhlcmVmb3JlIG5vIG11cmFtLCB3aGljaCB0aGlzIGZlYXR1cmUKICAgIHVzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFlN2VkMjU2NTAzMWUwMWFiYzE4YzcxMzAzMGEwYTk4MjljMDc2ODQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNCAxMTozMDo0OCAyMDA5ICswMTAwCgogICAgODN4eCwga21ldGVyOiBRRV9FTkVUMTAgZXJyYXRhIGZvciBTaWxpY29uIFJldmlzaW9uIDIuMQoKICAgIG9sZCBjb2RlIGltcGxlbWVudGVkIHRoZSBRRV9FTkVUMTAgZXJyYXRhIG9ubHkgZm9yIFNpbGljb24KICAgIFJldmlzaW9uIDIuMC4gTmV3IGNvZGUgcmVhZHMgbm93IHRoZSBTaWxpY29uIFJldmlzaW9uCiAgICByZWdpc3RlciBhbmQgc2V0cyBkZXBlbmRlbmQgb24gdGhlIFNpbGljb24gUmV2aXNpb24gdGhlCiAgICB2YWx1ZXMgYXMgYWR2aXNlZCBpbiB0aGUgUUVfRU5FVDEwIGVycmF0YS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjA1Zjc4ZTM0YTNmMDEwMzY5M2I4OTFmMjU3M2VkZDM1MmU3ZDQ5NQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgRmViIDI0IDExOjMwOjQ0IDIwMDkgKzAxMDAKCiAgICA4M3h4LCBrbWV0ZXIxOiB1cGRhdGVzIGZvciAyMDA5LjAzCgogICAgLSBIUkNXIHVwZGF0ZQogICAgICBIUkNXSF9CT09UU0VRX0RJU0FCTEUgbm90IEhSQ1dIX0JPT1RTRVFfTk9STUFMCiAgICAgIEhSQ1dIX0xBTEVfRUFSTFkgYWRkZWQKICAgIC0gRERSLVNEUkFNIHNldHRpbmdzIG1vZGlmaWVkLiBUaGlzIHNvbHZlcyBzcG9yYWRpY2FsbHkKICAgICAgcHJvYmxlbXMgd2l0aCB0aGlzIG1lbW9yeS4KICAgIC0gQ1MxIG5vdyAxMjggTUIgd2luZG93IHNpemUKICAgIC0gQ1MzIG5vdyA1MTIgTUIgd2luZG93IHNpemUKICAgIC0gUFJBTSBhY3RpdmF0ZWQKICAgIC0gTVREUEFSVFNfREVGQVVMVCBkZWZpbmVkCiAgICAtIENPTkZJR19IT1NUTkFNRSBhZGRlZAogICAgLSBNT05JVE9SX0xFTiBub3cgMzg0IEtCCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDExOGNiZTNjMzVjODk4ZjhkMDIwYjI5ZDZkYzE4MDMwN2NhY2YxNDcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNCAxMTozMDo0MCAyMDA5ICswMTAwCgogICAgODN4eCwga21ldGVyMTogYXV0b2RldGVjdCBzaXplIG9mIEREUiBJSSBSQU0KCiAgICBpdCBpcyBwb3NzaWJsZSB0aGF0IHNvbWUgYm9hcmQgdmFyaWFudHMgaGF2ZSBkaWZmZXJlbnQgRERSIElJCiAgICBSQU0gc2l6ZXMuIFNvIHdlIGF1dG9kZXRlY3QgdGhlIHNpemUgb2YgdGhlIGFzc2VtYmxlZCBSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxYmNlNGZmZjc1MGQ3MzRiMWZhNzQ2N2ViMDhmOTM5MDJjOTdjYTYKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNCAxMTozMDozNyAyMDA5ICswMTAwCgogICAgODN4eCwgaTJjOiBhZGQgbXV4IHN1cHBvcnQgZm9yIGZzbF9pMmMKCiAgICBUaGlzIHBhdGNoIGFkZHMgSTJDIG11eCBzdXBwb3J0IGZvciB0aGUgZnNsX2kyYyBkcml2ZXIuIFRoaXMKICAgIGFsbG93cyB5b3UgdG8gYWRkICJuZXciIGkyYyBidXNzZXMsIHdoaWNoIGFyZSByZWFjaGVkIG92ZXIKICAgIGkyYyBtdXhlcy4gRm9yIG1vcmUgaW5mb3MsIHBsZWFzZSBsb29rIGluIHRoZSBSRUFETUUgYW5kCiAgICBzZWFyY2ggZm9yIENPTkZJR19JMkNfTVVYLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOWYwZTkzMDQxZGJmZTIyZjhkMzliOThlNGY3ZjllYTg3Yjc3ODAzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjQgMTE6MzA6MzQgMjAwOSArMDEwMAoKICAgIDgzeHgsIGttZXRlcjE6IGFkZCBJMkMsIGR0dCwgZWVwcm9tIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgSTJDIHN1cHBvcnQgZm9yIHRoZSBLZXltaWxlIGttZXRlcjEgYm9hcmQuCiAgICBJdCB1c2VzIHRoZSBGaXJzdCBJMkMgQ29udHJvbGxlciBmcm9tIHRoZSBDUFUsIGZvcgogICAgYWNjZXNzaW5nIDQgdGVtcGVyYXR1cmUgc2Vuc29ycywgYW4gZWVwcm9tIHdpdGggSVZNIGRhdGEKICAgIGFuZCB0aGUgYm9vdGVlcHJvbSBvdmVyIGEgcGNhOTU0NyBtdXguCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRiMWQ3MmFmZDc3Mjg3YmM4NTc3MjEwZjNmNzFhYjI0OWRjZjE0NmYKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNCAxMTozMDozMCAyMDA5ICswMTAwCgogICAgaTJjLCBkdHQ6IG1vdmUgZHR0X2luaXQgKCkgdG8gYm9hcmRfaW5pdF9yICgpCgogICAgSW4gY2FzZSB3aGVyZSBhIGJvYXJkIG5vdCB1c2VzIENPTkZJR19QT1NULCBpdCBpcyBub3QKICAgIG5lY2Vzc2FyeSB0byBpbml0IHRoZSBEVFRzIHdoZW4gcnVubmluZyBmcm9tIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YjAwNTU1NDdmMDI0NjkwOGI3OWNjMzAwMTcwZDg3MzgwYjY5ZTE4CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNSAxMjozMTozMiAyMDA5ICswODAwCgogICAgODN4eDogRml4IHNvbWUgYnVncyBpbiBzcGQgc2RyYW0gY29kZQoKICAgIDEuIFJEX1RPX1BSRSBtaXNzZWQgdG8gYWRkIHRoZSBBTCwgYW5kIG5lZWQgbWluIDIgY2xvY2tzIGZvcgogICAgICB0UlRQIGFjY29yZGluZyB0byBERFIyIEpFREVDIHNwZWMuCiAgICAyLiBXUlRPUkQgLSB0V1RSIG5lZWQgbWluIDIgY2xvY2tzIGFjY29yZGluZyB0byBERFIyIEpFREVDIHNwZWMuCiAgICAzLiBhZGQgdGhlIHN1cHBvcnQgb2YgRERSMi01MzMsNjY3LDgwMCBESU1NcwogICAgNC4gY3BvCiAgICA1LiBtYWtlIHRoZSBBTCB0byBtaW4gdG8gZ2FpbiBiZXR0ZXIgcGVyZm9ybWFuY2UuCgogICAgVGhlIE1pY3JvbiBNVDlIVEY2NDcyQ0hZLTY2N0QxIERJTU1zIHRlc3QgcGFzc2VkIG9uCiAgICBNUEM4Mzd4RU1EUyBwbGF0Zm9ybSBhdCAyNjZNSHovMzMzTUh6LzQwME1IeiBkYXRhIHJhdGUuCgogICAgaXRlbXMgMSwgMiBhbmQgNToKICAgIEFja2VkLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCiAgICBSZXBvcnRlZC1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiN2JlNjNhYmVjNDU4NThjMDQ0ZjBmYmQ2YWVlZjUyNGM0NjYzZjliCkF1dGhvcjogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KRGF0ZToJV2VkIEZlYiA0IDE4OjI3OjQ5IDIwMDkgKzAyMDAKCiAgICBNUEM4MzQ5SVRYOiBzZXZlcmFsIGNvbmZpZyBpc3N1ZXMgZml4ZWQKCiAgICBUaGUgcHJldmlvdXMgdmVyc2lvbiByZWJvb3RlZCBmb3JldmVyIHdpdGggRERSIGJpZ2dlciB0aGFuIDI1Nk1CLgogICAgQWNjZXNzIHRoZSBEUzEzMzkgUlRDIGNoaXAgaXMgb24gSTJDMSBidXMuCiAgICBBbGxvdyBESENQLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZhbGVyaXkgR2x1c2hrb3YgPGd2dkBsc3RlYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdlMmVjMWRlMWQyZDcyM2I1OWQ3ZGQyZmI4NWZmNzFiOTUyZDYzYWYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEZlYiAxOSAxODoyMDozOSAyMDA5ICswMzAwCgogICAgbXBjODN4eDogTVBDODM3WEVNRFM6IEluaXRpYWxpemUgU2VyRGVzIGJlZm9yZSBuZWdhdGluZyBQQ0lFIHJlc2V0IHNpZ25hbAoKICAgIFRoZSBTZXJEZXMgaW5pdGlhbGl6YXRpb24gc2hvdWxkIGJlIGZpbmlzaGVkIGJlZm9yZSBuZWdhdGluZyB0aGUgcmVzZXQKICAgIHNpZ25hbCBhY2NvcmRpbmcgdG8gdGhlIHJlZmVyZW5jZSBtYW51YWwuIFRoaXMgaXNuJ3QgYW4gaXNzdWUgb24gcmVhbAogICAgaGFyZHdhcmUsIGJ1dCB3ZSdkIGJldHRlciBzdGljayB0byB0aGUgc3BlY2lmaWNhdGlvbnMgYW55d2F5LgoKICAgIFN1Z2dlc3RlZC1ieTogTGl1IERhdmUgPERhdmVMaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YzJkNjNlYzBlOTUyMDk0OGI2ZDU5OGVhMzJlOWFhNGUwZGU4NDdmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBGZWIgMjUgMTI6Mjg6MzIgMjAwOSArMDEwMAoKICAgIGkyYywgZHR0OiBtb3ZlIGR0dF9pbml0ICgpIHRvIGJvYXJkX2luaXRfciAoKQoKICAgIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gaW5pdCB0aGUgRFRUcyBzbyBlYXJseSwKICAgIHNvIG1vdmUgdGhpcyBpbml0IHRvIGJvYXJkX2luaXRfciAoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAwMGNjNTU5NWE3Y2FhYzgwNjZiNDA4Nzc0MzgzYTk1NmMyZTI2Nzk3CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglXZWQgRmViIDI1IDIwOjI4OjEzIDIwMDkgKzAxMDAKCiAgICBsY2Q6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGluIGNvbW1vbi9sY2QuYwoKICAgIEZpeCBmb2xsb3dpbmcgd2FybmluZyB3aGlsZSBjb21waWxhdGlvbiBmb3IgbWNjMjAwIGJvYXJkOgoKICAgIGxjZC5jOiBJbiBmdW5jdGlvbiAnbGNkX2Rpc3BsYXlfYml0bWFwJzoKICAgIGxjZC5jOjYyNTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdjbWFwJwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBmNWE3N2EwOWM5M2ZlN2YwNGMwYzU2ZjY0ZWE0MzZmN2QzMThkNjc0CkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEZlYiAyNCAyMToxMToyNCAyMDA5ICsxMTAwCgogICAgTW92ZWQgU0M1MjAgRmlsZXMgKGZpeCBjb21taXQgNDA3OTc2MTg1ZTBkZGEyYzkwZTg5MDI3MTIxYTEwNzFiOWM3N2JmYikKCiAgICBGaXhlcyBjb21taXQgNDA3OTc2MTg1ZTBkZGEyYzkwZTg5MDI3MTIxYTEwNzFiOWM3N2JmYgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzcyBhdCBnbWFpbC5jb20+Cgpjb21taXQgNzViYTZkNjkzYjhmNjI0N2FhNGI4MTMyM2EyZWUyZmEyODIyMjIxNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAyMyAxMDoyOTo0NyAyMDA5IC0wNTAwCgogICAgc21jOTExeDogc3BsaXQgb3V0IHVzZWZ1bCBkZWZpbmVzL2Z1bmN0aW9ucyBpbnRvIGxvY2FsIGhlYWRlcgoKICAgIFRoZSBzbWM5MTF4IGRyaXZlciBoYXMgYSBsb3Qgb2YgdXNlZnVsIGRlZmluZXMvZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkCiAgICBieSBwaWVjZXMgb2YgY29kZSAoc3VjaCBhcyBleGFtcGxlIGVlcHJvbSBwcm9ncmFtbWVycykuICBSYXRoZXIgdGhhbgogICAgZm9yY2luZyBlYWNoIHBsYWNlIHRvIGR1cGxpY2F0ZSB0aGVzZSBkZWZpbmVzL2Z1bmN0aW9ucywgc3BsaXQgdGhlbSBvdXQKICAgIG9mIHRoZSBzbWRjOTExeCBkcml2ZXIgaW50byBhIGxvY2FsIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIENDOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBDQzogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgQ0M6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KICAgIENDOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGEyYmI3MTA1YTc5YWY4ZjJmZmE5Zjg3MjU2ZmNlNmMxY2JjYmQ4ZTEKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjQgMTA6NDQ6MDIgMjAwOSArMDEwMAoKICAgIEFSTTogYWRkIGFuICJlZXQiIHZhcmlhbnQgb2YgdGhlIGlteDMxX3BoeWNvcmUgYm9hcmQKCiAgICBUaGUgImVldCIgdmFyaWFudCBvZiB0aGUgaW14MzFfcGh5Y29yZSBib2FyZCBoYXMgYW4gT0xFRCBkaXNwbGF5LCB1c2luZyBhCiAgICBzNmU2M2Q2IGRpc3BsYXkgY29udHJvbGxlciBvbiB0aGUgZmlyc3QgU1BJIGludGVyZmFjZSwgdXNpbmcgR1BJTzU3IGFzIGEKICAgIGNoaXAtc2VsZWN0IGZvciBpdC4gV2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24geW91IGNhbiBkaXNwbGF5IDI1NiBjb2xvdXIgQk1QCiAgICBpbWFnZXMgaW4gMTYtYml0IFJHQiAoUkdCNTY1KSBMQ0QgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYzk5ZjZhYjMxYzU2MzU4NzRiYTdhMmU4ZDM3NzkxYmZiZjAyZjhmCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglGcmkgRmViIDYgMTA6Mzc6NTcgMjAwOSArMDEwMAoKICAgIHZpZGVvOiBhZGQgYW4gaS5NWDMxIGZyYW1lYnVmZmVyIGRyaXZlcgoKICAgIEFkZCBhIGRyaXZlciBmb3IgdGhlIFN5bmNocm9ub3VzIERpc3BsYXkgQ29udHJvbGxlciBhbmQgdGhlIERpc3BsYXkKICAgIEludGVyZmFjZSBvbiBpLk1YMzEsIHVzaW5nIElQVSBmb3IgRE1BIGNoYW5uZWwgc2V0dXAuIFNvIGZhciBvbmx5CiAgICBkaXNwbGF5aW5nIG9mIGJpdG1hcHMgaXMgc3VwcG9ydGVkLCBubyB0ZXh0IG91dHB1dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBBY2tlZC1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGIyNDVlNjVlZTNjNGNjZTNjY2YwMDhhMjFmNDUyODIzOTY1NTg3NmMKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgNiAxMDozNzo1MyAyMDA5ICswMTAwCgogICAgTENEOiBzdXBwb3J0IDhicHAgQk1QcyBvbiAxNmJwcCBkaXNwbGF5cwoKICAgIFRoaXMgcGF0Y2ggYWxzbyBzaW1wbGlmaWVzIHNvbWUgaWZkZWZzIGluIGxjZC5jLCBpbnRyb2R1Y2VzIGEgZ2VuZXJpYwogICAgdmlkaW5mb190LCB3aGljaCBuZXcgZHJpdmVycyBhcmUgZW5jb3VyYWdlZCB0byB1c2UgYW5kIG9sZCBkcml2ZXJzIHRvIHN3aXRjaAogICAgb3ZlciB0by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBBY2tlZC1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGEzMDNkZmIwZTlhOTNlNTE2ZWE5NDI3YjVjMDk1NDNkNWY3NGFkZTEKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KRGF0ZToJRnJpIEZlYiA2IDEwOjM3OjQ5IDIwMDkgKzAxMDAKCiAgICBBZGQgMTZicHAgQk1QIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgMTZicHAgQk1QIHN1cHBvcnQgdG8gdGhlIGNvbW1vbiBsY2QgY29kZS4KCiAgICBVc2UgQ09ORklHX0JNUF8xNkJQUCBhbmQgc2V0IExDRF9CUFAgdG8gTENEX0NPTE9SMTYgdG8gZW5hYmxlIHRoZSBjb2RlLgoKICAgIEF0IHRoZSBtb21lbnQgaXQncyBvbmx5IGJlZW4gdGVzdGVkIG9uIHRoZSBNSU1DMjAwIEFWUjMyIGJvYXJkLCBidXQgZXh0ZW5kaW5nCiAgICB0aGlzIHRvIG90aGVyIHBsYXRmb3JtcyBzaG91bGQgYmUgYSBzaW1wbGUgdGFzayAhIQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgQWNrZWQtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA2ODk1NTFjNWZmMWIzOTRiODg0MTJmM2RmMjIxNDRlNzk0NjhkM2E5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglGcmkgRmViIDYgMTA6Mzc6NDEgMjAwOSArMDEwMAoKICAgIEEgZHJpdmVyIGZvciB0aGUgUzZFNjNENiBTUEkgZGlzcGxheSBjb250cm9sbGVyIGZyb20gU2Ftc3VuZwoKICAgIFRoaXMgaXMgYSBkcml2ZXIgZm9yIHRoZSBTNkU2M0Q2IFNQSSBPTEVEIGRpc3BsYXkgY29udHJvbGxlciBmcm9tIFNhbXN1bmcuCiAgICBJdCBvbmx5IHByb3ZpZGVzIGFjY2VzcyB0byBjb250cm9sbGVyJ3MgcmVnaXN0ZXJzIHNvIHRoZSBjbGllbnQgY2FuIGZyZWVseQogICAgY29uZmlndXJlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZmM3YTkzYzg0ZjNmMTM0NDg0ODExYTBkOWFkNzUxZmJjMWE3ZGE2ZApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxMyAwOToyNjo0MCAyMDA5ICswMTAwCgogICAgaS5NWDMxOiBzdXBwb3J0IEdQSU8gYXMgYSBjaGlwLXNlbGVjdCBpbiB0aGUgbXhjX3NwaSBkcml2ZXIKCiAgICBTb21lIFNQSSBkZXZpY2VzIGhhdmUgc3BlY2lhbCByZXF1aXJlbWVudHMgb24gY2hpcC1zZWxlY3QgaGFuZGxpbmcuCiAgICBXaXRoIHRoaXMgcGF0Y2ggd2UgY2FuIHVzZSBhIEdQSU8gYXMgYSBjaGlwLXNlbGVjdCBhbmQgc3RyaWN0bHkgZm9sbG93CiAgICB0aGUgU1BJX1hGRVJfQkVHSU4gYW5kIFNQSV9YRkVSX0VORCBmbGFncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiMzBkZTNjY2NmODg2NzU2NmNkMzE0ZTdjNzAzMzkwNGFmYTVkYzlkCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTYXQgRmViIDcgMDE6MTg6MDcgMjAwOSArMDEwMAoKICAgIGkuTVgzMTogYWRkIGEgc2ltcGxlIGdwaW8gZHJpdmVyCgogICAgVGhpcyBpcyBhIG1pbmltYWwgZHJpdmVyLCBzbyBmYXIgb25seSBtYW5hZ2luZyBvdXRwdXQuIEl0IHdpbGwKICAgIGJlIHVzZWQgYnkgdGhlIG14Y19zcGkuYyBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjliNmExNTc1ZDlmMWNhMTkyZTRjYjYwZTU0N2FhNjZmMDhiYWEzZgpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU2F0IEZlYiA3IDAwOjA5OjEyIDIwMDkgKzAxMDAKCiAgICBpLk1YMzE6IGZpeCBTUEkgZHJpdmVyIGZvciBzaG9ydGVyIHRoYW4gMzIgYml0CgogICAgRml4IHNldHRpbmcgdGhlIFNQSSBDb250cm9sIHJlZ2lzdGVyLCA4IGFuZCAxNi1iaXQgdHJhbnNmZXJzCiAgICBhbmQgYSB3cm9uZyBwb2ludGVyIGluIHRoZSBmcmVlIHJvdXRpbmUgaW4gdGhlIG14Y19zcGkgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdlOTE1NTgwMzJhMGMxOTMyZGQ3ZjRmNTYyZjljN2NjNTVlZmM0OTYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEZlYiAxOSAxODoyMDo1MiAyMDA5ICswMzAwCgogICAgbXBjODN4eDogTVBDODM3WEVSREI6IEFkZCBQQ0llIHN1cHBvcnQKCiAgICBPbiBNUEM4Mzc3RS1SREIgYW5kIE1QQzgzNzhFLVJEQiBib2FyZHMgd2UgaGF2ZSBQQ0llIGFuZCBtaW5pLVBDSWUKICAgIHNsb3RzLiBMZXQncyBzdXBwb3J0IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUwYTRkMDhlOGYzMWRlYmJkNGVhMTJjYWYxMjY1ZjM2NDNjMzhkNWIKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEZlYiAxOSAxODoyMDo1MCAyMDA5ICswMzAwCgogICAgbXBjODN4eDogUENJOiBGaXggaGFyZC1jb2RlZCBmaXJzdF9idXNubyB2YWx1ZQoKICAgIFdlIHNob3VsZCB1c2UgcGNpX2xhc3RfYnVzbm8oKSBpbiBwY2lfaW5pdF9idXMoKSwgb3RoZXJ3aXNlIHdlJ2xsCiAgICBlcnJvbmVvdXNseSByZS11c2UgUENJMCdzIGZpcnN0X2J1c25vIGZvciBQQ0kxIGhvc2VzLgoKICAgIE5PVEU6IFRoZSBwYXRjaCBpcyB1bnRlc3RlZC4gQWxsIE1QQzgzeHggRlNMIGJvYXJkcyBJIGhhdmUgaGF2ZQogICAgUENJMSBpbiBtaW5pUENJIGZvcm0sIGZvciB3aGljaCBJIGRvbid0IGhhdmUgYW55IGNhcmRzIGhhbmR5LgoKICAgIEJ1dCBsb29raW5nIGluIGNwdS9tcGM4NXh4L3BjaS5jOgogICAgLi4uCiAgICAjaWZkZWYgQ09ORklHX01QQzg1WFhfUENJMgoJICAgIGhvc2UgPSAmcGNpX2hvc2VbMV07CgoJICAgIGhvc2UtPmZpcnN0X2J1c25vID0gcGNpX2hvc2VbMF0ubGFzdF9idXNubyArIDE7CgogICAgQW5kIGNvbnNpZGVyaW5nIHRoYXQgd2UgZG8gdGhlIHNhbWUgZm9yIE1QQzgzeHggUENJLUUgc3VwcG9ydCwKICAgIEkgdGhpbmsgdGhpcyBwYXRjaCBpcyBjb3JyZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTg3OGQ0MjcxMjhjMWE5MjI2MDQ1ZWJlMDVmYmFkYWEwMmViOWRkCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBGZWIgMTkgMTg6MjA6NDYgMjAwOSArMDMwMAoKICAgIG1wYzgzeHg6IFBDSTogRml4IGJ1cy1yYW5nZSBmZHQgZml4dXBzIGZvciBQQ0kxIGNvbnRyb2xsZXJzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBjb3B5LXBhc3RlIGlzc3VlOiBwY2lfaG9zZVswXSdzIGZpcnN0IGFuZCBsYXN0CiAgICBidXNub3Mgd2VyZSB1c2VkIHRvIGZpeHVwIHBjaTEncyBub2Rlcy4KCiAgICBXZSBkb24ndCBzZWUgdGhpcyBidWcgdHJpZ2dlcmluZyBvbmx5IGJlY2F1c2UgTGludXggcmVlbnVtZXJhdGUKICAgIGJ1c2VzIGFueXdheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjI0YTk5ZjY2NjZhYzI3OGVjOWY5YzEzMzQ1MThhZjgyODgzM2QxOQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgRmViIDE5IDE4OjIwOjQ0IDIwMDkgKzAzMDAKCiAgICBtcGM4M3h4OiBQQ0llOiBGaXggQ09ORklHX1BDSV9TQ0FOX1NIT1cgcmVwb3J0aW5nIGJvZ3VzIHZhbHVlcwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW4gY29uZmlnIHNwYWNlIHJlYWQgYWNjZXNzb3JzOiB3ZSBzaG91bGQKICAgIGZpbGwtaW4gdGhlIHZhbHVlIGV2ZW4gaWYgd2UgZmFpbCAoZS5nLiBza2lwcGluZyBkZXZpY2VzKSwgb3RoZXJ3aXNlCiAgICBDT05GSUdfUENJX1NDQU5fU0hPVyByZXBvcnRzIGJvZ3VzIHZhbHVlcyBkdXJpbmcgYm9vdCB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTJkNzJiYTU0M2M3YjY5MjRiNWI1ZDM5M2RjZDgwYjJiOWMzYTAyMgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgRmViIDE5IDE4OjIwOjQyIDIwMDkgKzAzMDAKCiAgICBtcGM4M3h4OiBQQ0llOiBEb24ndCBzdGFydCBidXMgZW51bWVyYXRpb24gYXQgMAoKICAgIEN1cnJlbnRseSB3ZSBhc3NpZ24gZmlyc3RfYnVzbm8gPSAwIGZvciB0aGUgZmlyc3QgUENJZSBob3NlLCBidXQgdGhpcwogICAgc2NoZW1lIHdvbid0IHdvcmsgaWYgd2UgaGF2ZSBvcmRpbmFyeSBQQ0kgaG9zZSBhbHJlYWR5IHJlZ2lzdGVyZWQgKGl0cwogICAgZmlyc3RfYnVzbm8gdmFsdWUgaXMgMCB0b28pLgoKICAgIFRoZSBvbGQgY29kZSB3b3JrZWQgZmluZSBvbmx5IGJlY2F1c2Ugd2UgaGF2ZSBQQ0kgZGlzYWJsZWQgb24KICAgIE1QQzgzN1hFTURTIGJvYXJkcyBpbiBzdGFuZC1hbG9uZSBtb2RlIChzZWUgY29tbWl0IDAwZjdiYmFlOTJlM2IxM2YyYjMKICAgICJtcGM4M3h4OiBmaXggUENJIHNjYW4gaGFuZyBvbiB0aGUgc3RhbmRhbG9uZSBNUEM4Mzd4RS1NRFMgYm9hcmRzIikuCiAgICBCdXQgb24gTVBDODM3WEVSREIgYm9hcmRzIHdlIGhhdmUgUENJIGFuZCBQQ0llLCBzbyB0aGUgYnVnIGFjdHVhbGx5CiAgICB0cmlnZ2Vycy4KCiAgICBTbywgdG8gZml4IHRoZSBpc3N1ZSwgd2Ugc2hvdWxkIHVzZSBwY2lfbGFzdF9idXNubygpICsgMSBmb3IgdGhlCiAgICBmaXJzdF9idXNubyAoaS5lLiBsYXN0IGF2YWlsYWJsZSBidXNubykuCgogICAgUmVwb3J0ZWQtYnk6IEh1YW5nIENoYW5nbWluZyA8Q2hhbmctTWluZy5IdWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNjMmE4Yzc3NTFkZGJhZTMxMTY2NjAwNjRmNDQ2ODg4NTM4YjkzZTkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEZlYiAxOSAxODoyMDo0MSAyMDA5ICswMzAwCgogICAgUENJOiBBZGQgcGNpX2xhc3RfYnVzbm8oKSBoZWxwZXIKCiAgICBUaGlzIGlzIGp1c3QgYSBoYW5keSByb3V0aW5lIHRoYXQgcmVwb3J0cyBsYXN0IFBDSSBidXNubzogd2Ugd2FsawogICAgZG93biBhbGwgdGhlIGhvc2VzIGFuZCByZXR1cm4gbGFzdCBob3NlJ3MgbGFzdF9idXNuby4KCiAgICBXaWxsIGJlIHVzZWQgYnkgUENJL1BDSWUgaW5pdGlhbGl6YXRpb24gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmQ3NjcyOWJjYmZkNjRiNWQwMTZhOWI5MzZmMDU4OTMxZmMwNmVhZgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEZlYiAyMyAxMzo1Njo1MSAyMDA5IC0wNjAwCgogICAgTVBDODZ4eDogc2V0IENPTkZJR19NQVhfTUVNX01BUFBFRCB0byAyRyBieSBkZWZhdWx0CgogICAgQ3VycmVudGx5LCB3ZSBnZXQgMjU2TUIgYXMgdGhlIGRlZmF1bHQsIGJ1dCBzaW5jZSBhbGwgdGhlIDg2eHgKICAgIGJvYXJkIGNvbmZpZ3MgZGVmaW5lIGEgMkcgQkFUIG1hcHBpbmcgZm9yIFJBTSwgcmFpc2UgZGVmYXVsdAogICAgdG8gMkcuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjMzMWUxOGI5ZGYwYWI5OGViZjNhYjQ0YzBlZmVhMTMxMTk0OWFhYQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEZlYiAxMiAxMDo0MzozMiAyMDA5IC0wNjAwCgogICAgbXBjODY0MWhwY246IEluZGljYXRlIDM2LWJpdCBhZGRyIG1hcCBpbiBib290IG1lc3NhZ2VzCgogICAgSWYgMzYtYml0IGFkZHJlc3NpbmcgaXMgZW5hYmxlZCwgcHJpbnQgYSBtZXNzYWdlIG9uIHRoZSBjb25zb2xlCiAgICB3aGVuIHdlIGJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU4YTUxOGMzZDhhMmM3ZGUxMWQ0MTRlOGI5MDM0OTVkYWVlN2RjN2UKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmotbGlzdEBtaW1jLmNvLnVrPgpEYXRlOglGcmkgRmViIDEzIDE1OjQ4OjE4IDIwMDkgKzAwMDAKCiAgICBTZXR1cCBleHRyYSBNSU1DMjAwIGNoaXAgc2VsZWN0cwoKICAgIEFkZGVkIGNvZGUgdG8gc2V0dXAgdGhlIGV4dHJhIEZsYXNoIGFuZCBGUkFNIGNoaXAgc2VsZWN0cyBhcyB1c2VkIG9uIHRoZQogICAgTUlNQzIwMCBib2FyZC4KCiAgICBWMiBtb3ZlcyB0aGUgaW5pdCBjb2RlIGZyb20gdGhlIGNvbW1vbiAiY3B1LmMiIGZpbGUgaW50byB0aGUgYm9hcmQgc3BlY2lmaWMKICAgIHNldHVwIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgODA1MzQ4ODZhNzJhMDA4OGVlZjllNzgxYThlMGI3ZDA0ZWE0MWYzNgpBdXRob3I6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgpEYXRlOglNb24gTm92IDI0IDEyOjEwOjU2IDIwMDggKzAwMDAKCiAgICBNSU1DMjAwOiB0aWR5IEdDTEsgaW5pdCBjb2RlCgogICAgQ2hhbmdlIHRoZSBNSU1DMjAwIHN0YXJ0dXAgY29kZSB0byB1c2UgdGhlIGJ1aWx0LWluIChyYXRoZXIgdGhhbgogICAgaGFyZC1jb2RlZCkgZnVudGlvbnMgZm9yIHNldHRpbmcgdXAgZ2NsayBvdXRwdXRzLgoKICAgIFdlJ2xsIGFsc28gbW92ZSB0aGUgY29kZSB0byB0aGUgbmV3LCBtb3JlLWFwcHJvcHJpYXRlCiAgICBib2FyZF9wb3N0Y2xrX2luaXQoKSByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGI0MjNmOTQwNjNiZjA0ZTkyMDQ3ZmY4NWM3ZTUzNDQxZWIzYjcxMmIKQXV0aG9yOiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MzIgMjAwOSArMDEwMAoKICAgIEFWUjMyOiBNdXN0IGFkZCBOT1BzIGFmdGVyIGRpc2FibGluZyBpbnRlcnJ1cHRzIGZvciBBVDMyVUMzQTA1MTJFUwoKICAgIFRoZSBBVDMyVUMzQTA1MTJFUyBjaGlwIGhhcyBhIGJ1ZyB3aGVuIGRpc2FibGluZyBpbnRlcnJ1cHRzLiBBcyBhCiAgICB3b3JrYXJvdW5kLCB0d28gTk9QcyBjYW4gYmUgaW5zZXJ0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIERyaXZla2xlcHAgPHBhdWxkcml2ZWtsZXBwQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE9sYXYgTW9ya2VuIDxvbGF2bXJrQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmNWY2NTJmYTkxYWE2OWRiODExN2QyMTFhZjFiNGZlMDlmMmVkZDNiCkF1dGhvcjogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MjkgMjAwOSArMDEwMAoKICAgIEFWUjMyOiBNYWtlIEdQSU8gaW1wbG1lbnRhdGlvbiBjcHUgZGVwZW5kZW50CgogICAgVGhlcmUgYXJlIHNvbWUgZGlmZmVyZW5jZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIEdQSU8gaW4gdGhlCiAgICBhdDMydWMgY2hpcCBjb21wYXJlZCB0byB0aGUgYXA3MDB4IHNlcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdW5uYXIgUmFuZ295IDxndW5uYXJAcmFuZ295LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgRHJpdmVrbGVwcCA8cGF1bGRyaXZla2xlcHBAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogT2xhdiBNb3JrZW4gPG9sYXZtcmtAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGEzOGRlMDgzZDI5NzlkYjM2ODBmMGQwOTc4YzUwOWExNzJjOGZhMDAKQXV0aG9yOiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MjggMjAwOSArMDEwMAoKICAgIEFWUjMyOiBNb3ZlIGFkZHJzcGFjZS5oIHRvIGFyY2gtZGlyZWN0b3J5LCBhbmQgbW92ZSBzb21lIGZ1bmN0aW9ucyBmcm9tIGlvLmggdG8gYWRkcnNwYWNlLmgKCiAgICBUaGUgQVZSMzJBIGFyY2hpdGVjdHVyZSAod2hpY2ggQVQzMlVDM0Etc2VyaWVzIGlzIGJhc2VkIG9uKSBoYXMgYQogICAgZGlmZmVyZW50IG1lbW9yeSBsYXlvdXQgdGhhbiB0aGUgQVZSMzJCLWFyY2hpdGVjdHVyZS4gVGhpcyBwYXRjaCBtb3ZlcwogICAgYWRkcnNwYWNlLmggdG8gYW4gYXJjaC1kZXBlbmRlbnQgZGlyZWN0b3J5IGluIHByZXBhcmF0aW9uIGZvcgogICAgQVQzMlVDM0Etc3VwcG9ydC4gSXQgYWxzbyBtb3ZlcyBzb21lIGFkZHJlc3Mtc3BhY2UgbWFuaXB1bGF0aW9uCiAgICBmdW5jdGlvbnMgZnJvbSBpby5oIHRvIGFkZHJzcGFjZS5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1bm5hciBSYW5nb3kgPGd1bm5hckByYW5nb3kuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBEcml2ZWtsZXBwIDxwYXVsZHJpdmVrbGVwcEBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDhmMmFhMzI5ODYxMGI0NDEyN2RiYzQ3OTZkODAzOGFhNTg0N2UwYgpBdXRob3I6IE9sYXYgTW9ya2VuIDxvbGF2bXJrQGdtYWlsLmNvbT4KRGF0ZToJRnJpIEphbiAyMyAxMjo1NjoyNyAyMDA5ICswMTAwCgogICAgQVZSMzI6IE1ha2UgY2FjaGVmbHVzaCBjcHUtZGVwZW5kZW50CgogICAgVGhlIEFUMzJVQzNBIHNlcmllcyBvZiBwcm9jZXNzb3JzIGRvZXNuJ3QgY29udGFpbiBhbnkgY2FjaGUsIGFuZCBpc3N1aW5nCiAgICBjYWNoZSBjb250cm9sIGluc3RydWN0aW9ucyBvbiB0aG9zZSB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbi4gVGhpcyBjb21taXQKICAgIG1ha2VzIGNhY2hlZmx1c2guaCBhcmNoLWRlcGVuZGVudCBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIEFUMzJVQzNBLXN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIERyaXZla2xlcHAgPHBhdWxkcml2ZWtsZXBwQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE9sYXYgTW9ya2VuIDxvbGF2bXJrQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyZjcwYzQ5ZTViOTgxMzYzNWFkNzM2NjZhYTMwZjMwNGM3ZmRlZGE5CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTAgMDk6Mzg6NTIgMjAwOSArMDEwMAoKICAgIG5ldGxvb3A6IHNwZWVkIHVwIE5ldExvb3AKCiAgICBOZXRMb29wIHBvbGxzIGV2ZXJ5IGN5Y2xlIHdpdGggZ2V0ZW52IHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzLgogICAgVGhpcyBpcyBob3JyaWJseSBzbG93LCBlc3BlY2lhbGx5IHdoZW4gdGhlIGVudmlyb25tZW50IGlzIGJpZy4KCiAgICBUaGlzIHBhdGNoIHJlYWRzIG9ubHkgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBOZXRMb29wLAogICAgd2hlbiB0aGV5IHdlcmUgY2hhbmdlZC4KCiAgICBBbHNvIG1vdmVkIHRoZSBpbml0IHBhcnQgb2YgdGhlIE5ldExvb3AgZnVuY3Rpb24gaW4gYSBzZXBlcmF0ZQogICAgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFkMmQxNjM5M2U5ZjY4NGU0YTkyNTVmNDJlOGJmZGQ4MTliNjdhODcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBEZWMgMjIgMDI6NTY6MDcgMjAwOCAtMDUwMAoKICAgIHNtYzkxMXhfZWVwcm9tOiBuZXcgZXhhbXBsZSBhcHAgZm9yIG1hbmFnaW5nIG5ld2VyIFNNQyBwYXJ0cwoKICAgIEEgZm9yd2FyZCBwb3J0IG9mIHRoZSBsYXN0IHZlcnNpb24gdG8gd29yayB3aXRoIHRoZSBuZXdlciBzbWM5MTF4IGRyaXZlci4KICAgIEkgb25seSBoYXZlIGEgYm9hcmQgd2l0aCBhIExBTjkyMTggcGFydCBvbiBpdCwgc28gdGhhdCBpcyB0aGUgb25seSBvbmUKICAgIEkndmUgdGVzdGVkLiAgQnV0IHRoZXJlIGlzbid0IGFueXRoaW5nIGluIHRoaXMgdGhhdCB3b3VsZCBtYWtlIGl0IHRlcnJpYmx5CiAgICBjaGlwIHNwZWNpZmljIGFmYWlrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIENDOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBDQzogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgQ0M6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNzM2MzIzYTQ5MGI2NjRlYzBlZGMzZGRiMmMxYzRhNjgyNGRiNDVjNgpBdXRob3I6IFBpZXRlciBIZW5uaW5nIDxwaGVubmluZ0B2YXN0ZWNoLmNvLnphPgpEYXRlOglTdW4gRmViIDIyIDIzOjE3OjE1IDIwMDkgLTA4MDAKCiAgICBBZGRlZCBWaXRlc3NlIFZTQzgyMTEgZGVmaW5pdGlvbnMgdG8gVFNFQyBkcml2ZXIKCiAgICBBZGRlZCB0aGUgc3RydWN0IGNvbnRhaW5pbmcgUEhZIHNldHRpbmdzIGZvciB0aGUgVml0ZXNzZSBWU0M4MjExIHBoeSB0bwogICAgdGhlIHBoeV9pbmZvIGxpc3QgaW4gdHNlYy5jCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIEhlbm5pbmcgPHBoZW5uaW5nQHZhc3RlY2guY28uemE+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDMyNjg4ZTU3MmZmOTY3MTViNDE0MjBlOWE3ZjI4MGRiNmMzOTliNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gRmViIDIzIDAwOjIyOjIxIDIwMDkgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HOyAgUHJlcGFyZSAyMDA5LjAzLXJjMQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODBiODI3YzJiNzgzMjljNjUwM2IyNzFlNDNkOWViNjkzZDY0NDcxMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBGZWIgMjIgMjM6NDU6NDAgMjAwOSArMDEwMAoKICAgIEFSTTogc3luY2hyb25pemUgbWFjaC10eXBlcy5oIHdpdGggbGludXggdjIuNi4yOS1yYzUtMzE1LWc2ODNmZGM1CgogICAgVGhlIGZpbGUgd2FzIGdlbmVyYXRlZCBmcm9tIGJ1aWxkaW5nIHZlcnNhdGlsZV9kZWZjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxNDIwOWFjMTNmZjYzMWUzNmM5YTlkZDQyNmM1OWMyZTJmNWRhYjAwCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU3VuIEZlYiAyMiAxNDoyNDoxMSAyMDA5ICswOTAwCgogICAgTUlQUzogRml4IEdDQy00LjIgJ2Rpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlJyB3YXJuaW5ncwoKICAgIENvbXBpbGluZyBkYmF1MXgwMCBhbmQgZ3RoMiBib2FyZHMgd2l0aCBHQ0MtNC4yLCB5b3Ugd291bGQgc2VlIG5ldyB3YXJuaW5ncwogICAgbGlrZSB0aGlzOgoKICAgIHNrdXJpYmF5QHVidW50dTp1LWJvb3QuZ2l0JCAuL01BS0VBTEwgZGJhdTEwMDAKICAgIENvbmZpZ3VyaW5nIGZvciBkYmF1MXgwMCBib2FyZC4uLgogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX3NlbmQnOgogICAgYXUxeDAwX2V0aC5jOjE1ODogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAxIG9mICd2aXJ0X3RvX3BoeXMnIGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBhdTF4MDBfZXRoLmM6IEluIGZ1bmN0aW9uICdhdTF4MDBfcmVjdic6CiAgICBhdTF4MDBfZXRoLmM6MjExOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ3ZpcnRfdG9fcGh5cycgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9pbml0JzoKICAgIGF1MXgwMF9ldGguYzoyNTI6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAndmlydF90b19waHlzJyBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX3JlY3YnOgogICAgYXUxeDAwX2V0aC5jOjIxMTogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAxIG9mICd2aXJ0X3RvX3BoeXMnIGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBhdTF4MDBfZXRoLmM6IEluIGZ1bmN0aW9uICdhdTF4MDBfaW5pdCc6CiAgICBhdTF4MDBfZXRoLmM6MjUyOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ3ZpcnRfdG9fcGh5cycgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9zZW5kJzoKICAgIGF1MXgwMF9ldGguYzoxNTg6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAndmlydF90b19waHlzJyBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKICAgIFdlJ3JlIHBhc3NpbmcgYSB2b2xhdGlsZSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gd2hpY2ggaXMgZXhwZWN0aW5nIGEgbm9uLQogICAgdm9sYXRpbGUgcG9pbnRlci4gIFRoYXQncyBwb3RlbnRpYWxseSBkYW5nZXJvdXMsIHNvIGdjYyB3YXJucyBhYm91dCBpdC4KICAgIENvbmZpcm1lZCB3aXRoIEVMREsgNC4yIChHQ0MgNC4yLjIpIGFuZCBTb3VyY2V5IEcrKyA0LjIgKEdDQyA0LjIuMykuCgogICAgVG8gZml4IHRoaXMsIHdlIGFkZCBhIHZvbGF0aWxlIGF0dHJpYnV0ZSB0byB0aGUgYXJndW1lbnQgaW4gcXVlc3Rpb24uCiAgICBUaGUgdmlydF90b19waHlzIGZ1bmN0aW9uIGluIExpbnV4IGtlcm5lbCBhbHNvIGRvZXMgdGhlIHNhbWUgdGhpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBhYmE0NWM4NWIyMmY4YzU3ZmMyZmVkYmE4ZTk0OGUwNmMyZTJmNWIzCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJRnJpIEZlYiAyMCAxNzo1MToyOCAyMDA5ICswMTAwCgogICAgT01BUDM6IENsZWFuIHVwIE1NQyBjb2RlCgogICAgQ2xlYW4gdXAgT01BUDMgTU1DIGNvZGU6CgogICAgKiBDb252ZXJ0IHJlZ2lzdGVyIGFjY2VzcyB0byBzdHJ1Y3QgJiByZWFkeC93cml0ZXggc3R5bGUKICAgICogUmVwbGFjZSBoYXJkY29kZSB2YWx1ZXMgYnkgbWFjcm9zCiAgICAqIFJlbW92ZSBtYWNybyBkZWZpbmVkIHR3aWNlCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCBjZmNkZjRhOWIzNjFkMDE1YzBkZWJhYzczZmJmN2M1MTFkZjRhOTM0CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVGh1IEZlYiAxMiAxODo1NTo0MyAyMDA5ICswMTAwCgogICAgT01BUDM6IFBhbmRvcmE6IFVwZGF0ZSBwaW4gbXV4CgogICAgQ2xvY2sgcGluIG11c3QgaGF2ZSBpbnB1dCBlbmFibGVkIGZvciBNTUMzIHRvIHdvcmsuCiAgICBBbHNvIGVuYWJsZSBwdWxsLXVwcyBmb3IgY21kL2RhdGEgbGluZXMgdG8gYmUgY29uc2lzdGVudAogICAgd2l0aCByZW1haW5pbmcgTU1DIGhvc3QgcGluIHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYXp2eWRhcyBJZ25vdGFzIDxub3Rhc2FzQGdtYWlsLmNvbT4KCmNvbW1pdCA2NTMwYThiZjhhMDI3NGI5NDE5MTQxZTRjMmM1YTIzNWNjZTUzODBmCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVGh1IEZlYiAxMiAxODo1NTo0MiAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBPTUFQMyBhdXRvIGRldGVjdGlvbgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBPTUFQMyBjcHUgdHlwZSBhdXRvIGRldGVjdGlvbiBiYXNlZCBvbiBPTUFQMyByZWdpc3RlcgogICAgYW5kIHJlbW92ZXMgaGFyZGNvZGVkIHZhbHVlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBTYWtvbWFuIDxzYWtvbWFuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgZjk1NmZkMDMzOGY0OTkwNzkzYTEwZjc2NzkyOWJhNDk2MzY2NTI2MQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVRodSBGZWIgMTIgMTg6NTU6NDEgMjAwOSArMDEwMAoKICAgIE9NQVAzOiBCZWFnbGU6IEFkZCBib2FyZCByZXZpc2lvbiBkZXRlY3Rpb24KCiAgICBXaXRoIEJlYWdsZUJvYXJkIHJldmlzaW9uIEMgc29tZSBIVyBjaGFuZ2VzIGFyZSBpbnRyb2R1Y2VkIChlLmcuIFBpbk1VWCkKICAgIHdoaWNoIG1pZ2h0IG5lZWQgZGlmZmVyZW50IHNvZnR3YXJlIGhhbmRsaW5nLiBGb3IgdGhpcywgR1BJTyBwaW4gMTcxIChHUElPCiAgICBtb2R1bGUgNiwgb2Zmc2V0IDExKSBjYW4gYmUgdXNlZCB0byBjaGVjayBmb3IgYm9hcmQgcmV2aXNpb24uIElmIHRoaXMgcGluCiAgICBpcyBsb3csIHdlIGhhdmUgYSByZXYgQyBib2FyZC4gRWxzZSBpdCBtdXN0IGJlIGEgcmV2aXNpb24gQXggb3IgQnggYm9hcmQuCgogICAgVG8gaGFuZGxlIGJvYXJkIGRpZmZlcmVuY2VzIHlvdSBjYW4gY2FsbCBmdW5jdGlvbiBiZWFnbGVfZ2V0X3JldmlzaW9uKCkuCiAgICBFLmcuOgoKICAgIGlmIChiZWFnbGVfZ2V0X3JldmlzaW9uKCkpIHsKCiAgICAvKiBkbyBzcGVjaWFsIHJldmlzaW9uIEMgc3R1ZmYgaGVyZSAqLwoKICAgIH0KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgoKY29tbWl0IDI4OGYzY2Q5MTI5MThiOTc5MTlkMTNiNmY3ZmIxM2ZiZGRmNzRkNjgKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglUaHUgRmViIDEyIDE4OjU1OjQwIDIwMDkgKzAxMDAKCiAgICBPTUFQMzogT3Zlcm86IENsZWFuIHVwIHBpbiBtdXggYW5kIEdQSU8gY29uZmlndXJhdGlvbgoKICAgICogTWFrZSBPdmVybyBHUElPMTE0IGFuIGlucHV0IGZvciB0b3VjaHNjcmVlbiBQRU5ET1dOCiAgICAqIE1ha2UgT3Zlcm8gR1BJTzE0NC0xNDcgcmVhZGFibGUKICAgICogTWFrZSBPdmVybyBFSENJIHBpbm11eCBtYXRjaCBiZWFnbGUgcmV2IGMgc2V0dXAKICAgICogQWRqdXN0IHBpbm11eCBmb3IgU01TQzkxMVggbmV0d29yayBjaGlwIHN1cHBvcnQKICAgICogUmVtb3ZlIHVubmVjZXNzYXJ5IEdQSU8gc2V0dXAKICAgICogRml4IG1lcmdlIGVycm9yIGluIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmUgU2Frb21hbiA8c2Frb21hbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgoKY29tbWl0IDI1NzkwMTliODI0OGU1ZjE2NmU2MGUzNzA2NTc2NmVmYzhhNDlkYmMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDIyIDE3OjA4OjQxIDIwMDkgKzAxMDAKCiAgICBubWRrODgxNTogZml4IG9uZW5hbmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDE3NmMwM2EyNDY5Njc2ZGY1YmYxOWNmOTNhMWE2ZjU4MmY2YTEyMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMjIgMTc6NTY6NTAgMjAwOSArMDEwMAoKICAgIG5vbWFkaWsvbmFuZDogZml4ICdlY2M1MTInIGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5NzUxYTQ1NmY3MDJiYTJmY2RmZDFiZGJjMDEzODkyN2VmMDA3ODU4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAyMiAxNzo0OTo0MyAyMDA5ICswMTAwCgogICAgZGF2aW5jaTogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdkYXZpbmNpX2VycmF0YV93b3JrYXJvdW5kcycKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRmNTcyODk4N2Y0ZjlmNzg0NTY4ODQ4MmFhMmI3ZjIxMjc3NjgxNjUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDIyIDE1OjQ5OjI4IDIwMDkgKzAxMDAKCiAgICBhcm06IGFkZCB1YXJ0IGRjYyBzdXBwb3J0CgogICAgU2VyaWFsIGRyaXZlciB2aWEgdGhlIEVtYmVkZGVkSUNFIG1hY3JvY2VsbCdzIERDQyBjaGFubmVsIHVzaW5nCiAgICBjby1wcm9jZXNzb3IgMTQuCgogICAgSXQgZG9lcyBpbmNsdWRlIGEgdGltZW91dCB0byBlbnN1cmUgdGhhdCB0aGUgc3lzdGVtIGRvZXMgbm90CiAgICB0b3RhbGx5IGZyZWV6ZSB3aGVuIHRoZXJlIGlzIG5vdGhpbmcgY29ubmVjdGVkIHRvIHJlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwY2QxOGZhOTgyZjlhOGMxYTkwY2U5NzEzNzlhN2Q2NDA4OTc2ZDQ4CkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CUZyaSBOb3YgMjEgMTQ6MzU6NTYgMjAwOCAtMDUwMAoKICAgIEFSTSBEYVZpbmNpOiBBZGQgY29tbW9uIHBlcmlwaGVyYWxzIGFuZCBtb2R1bGVzIGVuYWJsZSBmdW5jdGlvbnMuCgogICAgVGFrZW4gYWxsIHRoZSBkdXBsaWNhdGVkIGNvZGUgZm9yIGVuYWJsaW5nIGNvbW1vbiBtb2R1bGVzIGFuZCBhcHBseQogICAgc29mdHdhcmUgd29ya2Fyb3VuZHMgZnJvbSB0aGUgYm9hcmQgc3BlY2lmaWMgY29kZSBpbnRvIGNvbW1vbgogICAgZnVuY3Rpb25zLiBBbHNvIGFkZGVkIGNvbW1lbnRzIGV4cGxhaW5pbmcgdGhlIHdvcmthcm91bmRzCiAgICAoZnJvbSBUSSBlcnJhdGEgZG9jdW1lbnRzKSBhbmQgcmVwbGFjZWQgc29tZSBudW1lcmljYWwgYml0IG51bWJlcnMKICAgIHdpdGggbW9yZSBtZWFuaW5nZnVsIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgZDNiZTFiY2FlN2E4MjA3ZTBhNzlmZmQwMzVkMGU5MGY4MDM3ODI5NQpBdXRob3I6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CkRhdGU6CU1vbiBGZWIgOSAxNTo1MzozMyAyMDA5ICswMTAwCgogICAgRW5hYmxlIEV0aGVybmV0IGZvciBOb21hZGlrIDg4MTUgRXZhbHVhdGlvbiBLaXQKCiAgICBUaGlzIHRyaXZpYWxseSBlbmFibGVzIEV0aGVybmV0IHN1cHBvcnQgaW4gdGhlIGRlYnVnIGJvYXJkCiAgICBieSBzZXR0aW5nIHVwIHRoZSBwcm9wZXIgY2hpcCBzZWxlY3QuCgogICAgU2lnbmVkLW9mZi1ieTogQWxlc3NhbmRybyBSdWJpbmkgPHJ1YmluaUB1bmlwdi5pdD4KICAgIEFja2VkLWJ5OiBBbmRyZWEgR2FsbG8gPGFuZHJlYS5nYWxsb0BzdG53aXJlbGVzcy5jb20+Cgpjb21taXQgMGQ4YzZlYWIyNDgxMDQ2ZTk0NDYyNjRiZmU5NDAyYmI5OGRkZjQzMwpBdXRob3I6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CkRhdGU6CU1vbiBGZWIgOSAxNTo1MzozMSAyMDA5ICswMTAwCgogICAgTmFuZCBkcml2ZXIgZm9yIE5vbWFkaWsgU29DCgogICAgVGhpcyBkcml2ZXIgaW1wbGVtZW50cyB0aGUgRUNDIGFsZ29yaXRobSBkZXNjcmliZWQgaW4KICAgIHRoZSBDUFUgZGF0YSBzaGVldCBhbmQgdXNlcyB0aGUgT09CIGxheW91dCBjaG9zZW4gaW4KICAgIGFscmVhZHktcmVsZWFzZWQgZGV2ZWxvcG1lbnQgc3lzdGVtcyAoc2hpcHBlZCB3aXRoIGEgY3VzdG9tLW1hZGUKICAgIHUtYm9vdCAxLjMuMSkuCgogICAgU2lnbmVkLW9mZi1ieTogQWxlc3NhbmRybyBSdWJpbmkgPHJ1YmluaUB1bmlwdi5pdD4KICAgIEFja2VkLWJ5OiBBbmRyZWEgR2FsbG8gPGFuZHJlYS5nYWxsb0BzdG53aXJlbGVzcy5jb20+Cgpjb21taXQgZWYzMzljYzJiNjhlNGNiZWYzZjkzNzZhNDUzMTVlMWI5NzRiYmQ4ZApBdXRob3I6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CkRhdGU6CU1vbiBGZWIgOSAxNTo1MzozMSAyMDA5ICswMTAwCgogICAgQWRkZWQgbm9tYWRpay5oIGhlYWRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CiAgICBBY2tlZC1ieTogQW5kcmVhIEdhbGxvIDxhbmRyZWEuZ2FsbG9Ac3Rud2lyZWxlc3MuY29tPgoKY29tbWl0IDYwZWNlNmQ4MDQzZDFkZDgwZjVkZDMyYzU0MTIxMzcxNmQ2MjRiMTkKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBPY3QgMjkgMjA6MDU6MTggMjAwOCArMDkwMAoKICAgIHI4YTY2NTk3LWhjZDogZml4IGNhbm5vdCB1c2UgZXh0ZXJuYWwgaHViCgogICAgRml4IHRoZSBwcm9ibGVtIHRoYXQgY2Fubm90IHVzZSBleHRlcm5hbCBodWIsIGJlY2F1c2UgdGhpcyBkcml2ZXIKICAgIGRpZCBub3QgY29udHJvbCBjb3JyZWN0bHkgYSBERVZBRER4IHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGUxZmZhZWU3MjgxOTBlNzZhNDU5NmEzNTc5ZDk0ZTczMDE0MzU4NWYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBGZWIgMTkgMDE6MjA6MjcgMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBkaXNhYmxlIHN5c2NvbnRyb2wgY29kZSBmb3Igbm93CgogICAgTG9va3MgbGlrZSB0aGUgaW5pdGNvZGUgdXBkYXRlcyBmZWxsIG91dCBvZiBvcmRlciBkdXJpbmcgbXkgbWVyZ2VzLiAgVGhlCiAgICBwYXRjaCB0aGF0IHJlYWxseSBmaXhlcyB1cCB0aGlzIGNvZGUgaXMgcGFydCBvZiBwb3dlci1vbiBvdmVyaGF1bCBhbmQgc28KICAgIGlzIHRvbyBsYXJnZSBmb3IgbWVyZ2luZyBhdCB0aGlzIHBvaW50LiAgSW5zdGVhZCwgd2UgY2FuIGRpc2FibGUgdGhlIGNvZGUKICAgIGFzIG5vIGN1cnJlbnRseSBpbi10cmVlIGJvYXJkIGRlcGVuZHMgb24gaXQuICBUaGUgbmV4dCBtZXJnZSB3aW5kb3cgd2lsbAogICAgZml4IHRoaW5ncyB1cCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMWIyMjhkNjhmNTQ4MzJlZGQ4NjdlZjk4NTIwZjc2MGY2ODE5MmFiNwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEZlYiAxOSAwMToxOTo0OSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IGJmNTM3LXN0YW1wOiBmaXggSTJDIGJvYXJkIGRlZmluZXMKCiAgICBUaGUgcHJldmlvdXMgbWVyZ2UgZm9yIGNsZWFuaW5nIHVwIHRoZSBJMkMgZHJpdmVyIGluY29ycmVjdGx5IHJldmVydGVkIHRoZQogICAgQ0ZHX3h4eCByZW5hbWUgZm9yIHNvbWUgb2YgdGhlIEkyQyBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDA5ZmVlOGU4Njc3YTYyNjVlODkxNDRjY2MxNjNiZjAwZTMyMTc2OWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gRmViIDIyIDAxOjE5OjUyIDIwMDkgKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWRjYjUwYWZiYjYzYTQzOTMyMGE5ODUzODBhMGFmMmRjYTA3OWQxZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBGZWIgMjIgMDE6MTc6NDcgMjAwOSArMDEwMAoKICAgIE1ha2VmaWxlOiBmaXggY2xlYW51cAoKICAgIENvbW1pdCBlNDk0M2VjNSBtb3ZlZCB0aGUgQVJNIGJvYXJkcyB0byBhIHZlbmRvciBkaXJlY3RvcnkgYnV0IGZvcmdvdAogICAgdG8gYWRhcHQgdGhlIGNsZWFudXAgcnVsZXMgaW4gdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlZGZmN2JjYzRkNTU0MGRmOGI0MTYyNzQ2NTJmZjAyZTk0YzM4YjllCkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJRnJpIEZlYiAyMCAxMzowMTo1NiAyMDA5IC0wNTAwCgogICAgQ2xlYW51cCB0aGUgY29tbWVudCBmb3IgbTY4ayBsaW51eCBib290IGFyZ3VtZW50IHBhc3NpbmcuCgogICAgVGhpcyBwYXRjaCBjbGFyaWZpZXMgdGhlIHdheSBtNjhrIHBhc3NlcyBsaW51eCBib290IGFyZ3VtZW50LgogICAgVGhlIG9uZSBnb3RjaGEgaGVyZSBpcyB0aGF0IHRoZSBhc3NlbWJseSBpbnN0cnVjdGlvbiB0aGF0CiAgICB0aGUgY29tcGlsZXIgdXNlcyB0byBqdW1wIHRvIHRoZSBrZXJuZWwgaXMgJ2pzcicgd2hpY2ggcHVzaGVzIHRoZQogICAgcHJvZ3JhbSBjb3VudGVyIGZvciB0aGUgaW5zdHJ1Y3Rpb24gYWZ0ZXIgdGhlIGpzciBpbnRvIHRoZSBzdGFjayBwb2ludGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRkNDE2NTBlZWM5NTk2NjgyODBhNjEyNDY3YmQ5NWM3YjgzOTg1MTMKQXV0aG9yOiBQZXRlciBHcmlmZmluIDxwZ3JpZmZpbkBtcGMtZGF0YS5jby51az4KRGF0ZToJVHVlIEZlYiAxMCAxNjo0NDo0NSAyMDA5ICswMDAwCgogICAgc2g6IEZpeCByc2s3MjAzIGluIHRyZWUgYnVpbGQKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBHcmlmZmluIDxwZ3JpZmZpbkBtcGMtZGF0YS5jby51az4KCmNvbW1pdCBmY2EwY2VjZmY3M2RiOTlkOTlhZDA5NGNjYTc5ODA0NzJiOGExMWI1CkF1dGhvcjogTWlua3l1IEthbmcgPG1rNy5rYW5nQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgRmViIDE4IDA5OjA1OjUyIDIwMDkgKzA5MDAKCiAgICBib290bTogUmVkdWNlIHRoZSB1bm5lY2Vzc2FyeSBtZW1tb3ZlCgogICAgQWx0aG91Z2ggbG9hZCBhZGRyZXNzIGFuZCBpbWFnZSBzdGFydCBhZGRyZXNzIGFyZSBzYW1lIGFkZHJlc3MsCiAgICBib290bSBjb21tYW5kIGFsd2F5cyBkb2VzIG1lbW1vdmUuCiAgICBUaGF0IGlzIHVubmVjZXNzYXJ5IG1lbW1vdmUgYW5kIGNhbiBiZSB0YWtlbiBmZXcgbWlsbGlzZWNvbmRzCiAgICAoYWJvdXQgNTAwIG1zZWMgdG8gMTAwMCBtc2VjKS4KICAgIElmIHNraXAgdGhpcyBtZW1tb3ZlLCB3ZSBjYW4gcmVkdWNlIHRoZSBib290IHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlua3l1IEthbmcgPG1rNy5rYW5nQHNhbXN1bmcuY29tPgoKY29tbWl0IDY3MGNiZGU4ZGE4MzY5MGZlZDEwNjRjMzM1OGY1NGFlMWQ2OTNlZDIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLmV1PgpEYXRlOglTdW4gRmViIDE1IDIyOjI5OjE1IDIwMDkgKzAxMDAKCiAgICBmcGdhOiBGaXggU3BhcnRhbiBJSUkgRlBHQSBib290aW5nCgogICAgVGhpcyBwYXRjaCBkb2VzIHNvbWUgbWlub3IgZml4aW5nIG9mIHRoZSBYaWxpbnggU3BhcnRhbiBJSUkKICAgIEZQR0EgYm9vdCBjb2RlOgoKICAgIC0gRml4ZWQgY2FsbCBvcmRlciBvZiBwb3N0IGNvbmZpZ3VyYXRpb24gY2FsbGJhY2sgYW5kCiAgICAgIHN1Y2Nlc3MgbWVzc2FnZSBwcmludGluZyAocmVzdWx0IG9mIGNvcHktcGFzdGU/KQogICAgLSByZW1vdmUgb2Jzb2xldGUgY29tbWVudAogICAgLSBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDM4MThiNjc3NjQxMDM4ZDI3YjI2NjNmYmQ2NzcxYWQzOGM5MzJmODYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLmV1PgpEYXRlOglTdW4gRmViIDE1IDIyOjI4OjM2IDIwMDkgKzAxMDAKCiAgICBmcGdhOiBGaXggU3BhcnRhbiBJSSBGUEdBIGJvb3RpbmcKCiAgICBUaGlzIHBhdGNoIGRvZXMgc29tZSBtaW5vciBmaXhpbmcgb2YgdGhlIFhpbGlueCBTcGFydGFuIElJCiAgICBGUEdBIGJvb3QgY29kZToKCiAgICAtIEZpeGVkIGNhbGwgb3JkZXIgb2YgcG9zdCBjb25maWd1cmF0aW9uIGNhbGxiYWNrIGFuZAogICAgICBzdWNjZXNzIG1lc3NhZ2UgcHJpbnRpbmcgKHJlc3VsdCBvZiBjb3B5LXBhc3RlPykKICAgIC0gcmVsb2NhdGUgcG9zdCBjb25maWd1cmF0aW9uIGNhbGxiYWNrIG9ubHkgd2hlbiBpdAogICAgICBpcyBpbXBsZW1lbnRlZAogICAgLSByZW1vdmUgb2Jzb2xldGUgY29tbWVudAogICAgLSBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGI0NzQ2ZDhiZjlmNGVkNmRjOGE3NmM1ZDUyZGI2Njk2MDRhZmY4NGIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMjA6MjY6NTIgMjAwOSAtMDUwMAoKICAgIGRyaXZlcnMvc2VyaWFsL25zMTY1NTA6IG1vdmUgaWZkZWYgaW50byBNYWtlZmlsZSBDT0JKUy0kKC4uLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmJjYjRiODA2Y2VmOGE1ZGQwOGZhYzlhNGE2NzJiOTZkOWVlODA0ZQpBdXRob3I6IERlcmVrIE91IDxkb3VAc2ljb25peC5jb20+CkRhdGU6CVR1ZSBGZWIgMyAxNjowMDowNyAyMDA5IC0wNzAwCgogICAgbGNkX3B1dGMgYnVnIGZpeCBmb3IgdGFiLgoKICAgIFNpZ25lZC1vZmYtYnk6IERlcmVrIE91IDxkb3VAc2ljb25peC5jb20+Cgpjb21taXQgMzVjOWUxNGQ4MDk2ZTUxOWZlNzZjOTUzYTQzZDUyYTA5NjE3MzQ1YwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJTW9uIEZlYiAyIDA5OjQ2OjIxIDIwMDkgKzA5MDAKCiAgICBNSVBTOiBjcHUvbWlwcy9NYWtlZmlsZTogQWRkIGEgbWlzc2luZyBTVEFSVCBsaW5lCgogICAgSW4gdGhlIGNvbW1pdCA3OWI1MWZmODIwNWYwMzU0ZDUzMDA1NzA2MTRjMWQyZGI0OTk2NzljIChbTUlQU10gY3B1L21pcHMvCiAgICBNYWtlZmlsZTogU3BsaXQgW0NTXU9CSlMgb250byBzZXBhcmF0ZSBsaW5lcyksIEkgd3JvbmdseSBkZWxldGVkIGEgU1RBUlQKICAgIGxpbmUuICBUaGlzIHBhdGNoIHB1dHMgaXQgYmFjay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgOWE2M2I3ZjRmOGYzYzk5Y2YwMTdlMGQzZDRhMTUyZGZjZDkxM2I1YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBGZWIgMjEgMjE6NTE6MjEgMjAwOSArMDEwMAoKICAgIEVuYWJsZSBleHQyIHN1cHBvcnQgZm9yIFRRTTh4eEwvTSBiYXNlZCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUzYmE3ZjEzN2M3YzQ1NGFkNjI2Y2QwYmQyZTg0ZDczYzdhODY0NGYKQXV0aG9yOiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMDM6NDc6NTAgMjAwOSArMDEwMAoKICAgIEFSTTpQWEEgVXNlIG5ldyBkZWZpbml0aW9ucyBpbiBtbWMuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbSBSaXggPFRvbS5SaXhAd2luZHJpdmVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjgyYmVlYWMzNGRjOWFiMThmYWI1OGIyNjk3M2QyZTI5ZDExMzcxNwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMCAwMzo0Nzo1MCAyMDA5ICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiBQWEEncyBtbWNfcmVhZC9tbWNfd3JpdGUvbW1jX2JyZWFkIGZ1bmN0aW9ucwoKICAgIFRoZXNlIG5hbWVzIGFyZSBiZWluZyB0YWtlbiBvdmVyIGJ5IHRoZSBuZXcgTU1DIGZyYW1ld29yay4JSG9wZWZ1bHkKICAgIHRoZSBQWEEgY2FuIGJlIGVhc2lseSBwb3J0ZWQsIGFuZCB0aGVzZSBmdW5jdGlvbnMgd2lsbCBnbyBhd2F5IGVudGlyZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYjAzZDkyZTU1ODQ5MzU4ODZmZjkxZDVhYTA3NTVkYzg4ODhiNzE4NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBGZWIgMjAgMDM6NDc6NTAgMjAwOSArMDEwMAoKICAgIHB4YTogbW92ZSBtbWMgZHJpdmVycyB0byBkcml2ZXJzL21tYwoKICAgIGludHJvZHVjZSBuZXcgbWFjcm8gQ09ORklHX1BYQV9NTUMgdG8gYWN0aXZhdGUgaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk0OTBmNDY1NjQyYzgwYzA1NDg1NDY4OWEyZWYxYTc3ZDY1Y2YxZjMKQXV0aG9yOiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBGZWIgMTkgMTk6Mjc6MjIgMjAwOSAtMDYwMAoKICAgIEFSTTpQWEEgUmVtb3ZlIHJlZGVmaW5pdGlvbiBvZiBtbWNfY2lkIGFuZCBtbWNfY3NkLgoKICAgIFRoZXNlIHN0cnVjdHVyZXMgYXJlIGRlZmluZWQgaW4gdGhlIGNvbW1vbiBtbWMuaAoKICAgIFRoaXMgd2FzIGNvbXBpbGUgY2hlY2tlZCBvbiBjZXJmMjUwLgoKY29tbWl0IDk0YTMzMTI5MjBiNmY5YjVkYTI3MzA5NTQ5ZmI3MzY1MDcxOGMxMGEKQXV0aG9yOiBNaWNoYSBLYWxmb24gPHNtaWNoYWsudXZAZ21haWwuY29tPgpEYXRlOglXZWQgRmViIDExIDE5OjUwOjExIDIwMDkgKzAyMDAKCiAgICBweGE6IGZpeGluZyBnZXRfdGltZXIgdG8gcmV0dXJuIHRpbWUgaW4gbWlsaXNlY29uZHMuCgogICAgRml4aW5nIHRoZSBnZXRfdGltZXIgZnVuY3Rpb24gdG8gcmV0dXJuIHRpbWUgaW4gbWlsaXNlY29uZHMgaW5zdGVhZCBvZgogICAgdGlja3MuIEFsc28gZml4ZWQgUFhBIGJvYXJkcyB0byB1c2UgdGhlIGNvbnZlbnRpb25hbCB2YWx1ZSBvZiAxMDAwIGZvcgogICAgQ09ORklHX1NZU19IWi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYSBLYWxmb24gPHNtaWNoYWsudXZAZ21haWwuY29tPgoKY29tbWl0IGU1ZTg4YzM2MTRiNzliNTQ3MTk5MDVmNjZhZWZiNTFmOTQ5NGJjMWYKQXV0aG9yOiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBGZWIgMTkgMTY6NDU6NDMgMjAwOSAtMDYwMAoKICAgIEFSTTpPTUFQMyBDaGFuZ2UgbW1jX2luaXQgdG8gbW1jX2xlZ2FjeV9pbml0CgogICAgb21hcDNfbW1jLmMgd2FzIGNoYW5nZWQgdG8gZGVmaW5lIG1tY19sZWdhY3lfaW5pdC4KICAgIFJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zLgoKICAgIENvbXBpbGUgdGVzdGVkIG9uIGFsbCBhcm0KICAgIFJ1bnRpbWUgdGVzdGVkIG9uIFpvb20xLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbSBSaXggPFRvbS5SaXhAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCA5ZTgwYmIyMTYyOTk4ODA2MzU3NGY4OGNhMGQyOGJhYWRmZjRkOTYzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTkgMTc6MjM6NTggMjAwOSArMDEwMAoKICAgIDgyeHgsIG1nY29nZTogdXBkYXRlcyBmb3IgMjAwOS4wMwoKICAgIC0gYWN0aXZhdGUgQ1M0IGZvciBhY2Nlc3NpbmcgdGhlIEZQR0EKICAgIC0gYWN0aXZhdGUgUnggYnVmIGxlbiA+IDEgb24gU01DCiAgICAtIHByYW0gYWN0aXZhdGVkCiAgICAtIE1URFBBUlRTX0RFRkFVTFQgZGVmaW5lZAogICAgLSB1cGRhdGUgdGhlIHNpemUgb2YgdGhlIGZsYXNoZXMgaW4gdGhlIERUUwogICAgICBiZWZvcmUgYm9vdGluZyBMaW51eAogICAgLSBNT05JVE9SX0xFTiB1cGRhdGVkIHRvIDM4NGsKICAgIC0gYWRkZWQgQ09ORklHX0hPU1ROQU1FCiAgICAtIGFkZGVkIENPTkZJR19FTlZfQlVGRkVSX1BSSU5UCiAgICAtIEVudmlyb25tZW50IHNpemUgcmVkdWNlZCB0byAxNmsKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBkZjkwOTU1NGUyNDAxZjMwNzkyNWUxYmQ0NWQ1NzZlNDE3NmQ5ZGU5CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTkgMTc6MjQ6MDEgMjAwOSArMDEwMAoKICAgIDh4eCwgbWdzdXZkOiB1cGRhdGVzIGZvciAyMDA5LjAzCgogICAgLSBhY3RpdmF0ZSBSeCBidWYgbGVuID4gMSBvbiBTTUMKICAgIC0gcHJhbSBhY3RpdmF0ZWQKICAgIC0gTVREUEFSVFNfREVGQVVMVCBkZWZpbmVkCiAgICAtIHVwZGF0ZSB0aGUgc2l6ZSBvZiB0aGUgZmxhc2ggaW4gdGhlIERUUwogICAgICBiZWZvcmUgYm9vdGluZyBMaW51eAogICAgLSBNT05JVE9SX0xFTiB1cGRhdGVkIHRvIDM4NGsKICAgIC0gYWRkZWQgQ09ORklHX0hPU1ROQU1FCiAgICAtIGFkZGVkIENPTkZJR19FTlZfQlVGRkVSX1BSSU5UCiAgICAtIEVudmlyb25tZW50IHNpemUgcmVkdWNlZCB0byAxNmsKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzNTExYjRlMjA4ZTEyYmU4NWI1MzI4NjZmMWM2NjBhYTJlMDIxNTU3CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEZlYiAxOCAxOTo1OTozOSAyMDA5ICswMTAwCgogICAgTU1DOiBEb24ndCB1c2UgbmV3IGZyYW1ld29yayBjb2RlIGlmIG5vdCBlbmFibGVkCgogICAgRG9uJ3QgdXNlIGNvZGUgb2YgbmV3IE1NQyBmcmFtZXdvcmsgaW4gY21kX21tYyBpZiBDT05GSUdfR0VORVJJQ19NTUMKICAgIGlzbid0IGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCAzMjQ4MmJlNjc3NzVlMDBiNGNiYzQ5ZmJhNjIzNDdjMWVjYzYyMjljCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxOSAxMzo1MzoyOSAyMDA5ICswMTAwCgogICAgVFFNOHh4TDogbWFrZSBzb21lIHJvb20gaW4gbG93IG1lbW9yeSBmb3IgZnV0dXJlIG5lZWRzCgogICAgVEhlIFRRTTh4eEwgdXNlIGEgYWhuZC1vcHRpbWl6ZWQgbGlua2VyIHNjcmlwdCB0byBlZmZpY2llbnRseSB1c2UgdGhlCiAgICBzbWFsbCBib290IHNlY3RvcnMgaW4gdGhlIGZsYXNoLiBUaGlzIHBhdGNoIG1ha2VzIHNvbWUgcm9vbSBpbiB0aGUKICAgIGZpcnN0IHNlY3RvciB0byBwcmVwYXJlIGZvciBhIHNpemUgaW5jcmVhc2Ugb2YgbGliX2dlbmVyaWMvdnNwcmludGYubwogICAgYnkgYSBmdXR1cmUgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjMTU3Y2VjM2MzZjZkZmMxOTQ1MzJiM2EzY2E4N2Y4NWI2NDI5NjJhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxOCAxODowNjoxOCAyMDA5IC0wNjAwCgogICAgUkVBRE1FOiByZW1vdmUgZHVwbGljYXRlIGVudHJ5CgogICAgaXQncyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgb3JpZ2luYWwgY29tbWl0ICgyYWQ2YjUxMykgdGhhdCBhZGRlZCB0d28KICAgIGlkZW50aWNhbCBlbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWJiYTMwZWZlMTcxN2JlYTEzMDI2ZTE1YzdjN2Q5MDY0MTlmYWM2OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTkgMDA6NDE6MDggMjAwOSArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzNjlkMGFhOTY3NGI2NWM4M2Y4NTUzYjliY2Y5ZDIwN2RjMzY5MjIzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxOCAxNzo0Mzo1OSAyMDA5IC0wNjAwCgogICAgc2F0YV9zaWwzMTE0OiBmaXggY29tcGlsZXIgd2FybmluZwoKICAgIGp1ZGdpbmcgZnJvbSBvdGhlciBwcmludGZzIGluIHRoZSBzYW1lIGZpbGUsIGl0IHNlZW1zIGF0YSBzaG91bGQgYmUKICAgIHBvc3RwZW5kZWQgd2l0aCB0aGUgaW50ZXJmYWNlIG51bWJlciwgbm90IHRoZSBhZGRyZXNzIG9mIHRoZSBnbG9iYWwKICAgIHBvcnQgdmFyaWFibGUuICBGaXhlcyB0aGlzIGZvciBjdXJyZW50IHUtYm9vdC1tcGM4M3h4IHRyZWU6CgogICAgQ29uZmlndXJpbmcgZm9yIE1QQzgzNDlJVFggYm9hcmQuLi4KICAgIHNhdGFfc2lsMzExNC5jOiBJbiBmdW5jdGlvbiAnc2F0YV9idXNfc29mdHJlc2V0JzoKICAgIHNhdGFfc2lsMzExNC5jOjk5OiB3YXJuaW5nOiBmb3JtYXQgJyV1JyBleHBlY3RzIHR5cGUgJ3Vuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCAyIGhhcyB0eXBlICdzdHJ1Y3Qgc2F0YV9wb3J0IConCiAgICBzYXRhX3NpbDMxMTQuYzoxMDg6IHdhcm5pbmc6IGZvcm1hdCAnJXUnIGV4cGVjdHMgdHlwZSAndW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDIgaGFzIHR5cGUgJ3N0cnVjdCBzYXRhX3BvcnQgKicKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1Njc1YWE1Y2VlZWYzMDc0MDk3MGFiOGNhMGM4Y2JjMzI0OTQ1Y2QKQXV0aG9yOiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+CkRhdGU6CVdlZCBGZWIgMTggMTQ6MzA6NDQgMjAwOSAtMDgwMAoKICAgIENyZWF0ZSBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgcmVzdHJpY3RlZCBuczE2NTUwIGZ1bmN0aW9ucwoKICAgIFRoaXMgcGF0Y2ggd2lsbCBjcmVhdGUgYSBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgYSBtaW5pbXVtIGNvbmZpZ3VyYXRpb24gZm9yCiAgICB0aGUgbnMxNjU1MCBzZXJpYWwgZHJpdmVyIGF0IGRyaXZlcnMvc2VyaWFsL25zMTY1NTAuYyBhbmQgd2lsbCBhcHBseSB0aGlzIG5ldwogICAgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gdGhlIFNJTVBDODMxMy5oIGNvbmZpZyBmaWxlIGluIG9yZGVyIHRvIGZpeCB0aGUgTkFORAogICAgYm9vdHN0cmFwIGJ1aWxkIGVycm9yLiAgVGhpcyBvcHRpb24gd2lsbCBleGNsdWRlIGFsbCBmdW5jdGlvbnMgd2l0aCBleGNlcHRpb24gb2YKICAgIE5TMTY1NTBfcHV0YyBhbmQgTlMxNjU1MF9pbml0LiAgVGhpcyB3aWxsIGJlIHVzZWQgcHJpbWFyaWx5IHRvIHNhdmUgc3BhY2UgYW5kCiAgICByZW1vdmUgdW51c2VkIGNvZGUgZnJvbSBidWlsZHMgaW4gd2hpY2ggc3BhY2UgaXMgbGltaXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+Cgpjb21taXQgN2IwYmMwMjE5ZGI4OTgxNjEzMjU5NDczY2YxOTY5OWFjMjU5YjRmYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTggMTY6MTQ6MjkgMjAwOSAtMDYwMAoKICAgIG1rY29uZmlnOiBpbmNsdWRlIGJvYXJkIGNvbmZpZy5oIGJlZm9yZSBhc20vY29uZmlnLmgKCiAgICBzd2FwcGluZyB0aGUgaW5jbHVkZSBvcmRlciBzdXBwcmVzc2VzIHdhcm5pbmdzIGZvciBib2FyZCBjb25maWdzCiAgICB0aGF0IGRlZmluZSB0aGVpciBvd24gQ09ORklHX01BWF9NRU1fTUFQUEVEOgoKICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9yMWFhaGEvZ2l0L3UtYm9vdC9pbmNsdWRlL2NvbmZpZy5oOjUsCgkJICAgIGZyb20gL2hvbWUvcjFhYWhhL2dpdC91LWJvb3QvaW5jbHVkZS9jb21tb24uaDozNSwKCQkgICAgZnJvbSBzaW1wYzgzMTMuYzoyNjoKICAgIC9ob21lL3IxYWFoYS9naXQvdS1ib290L2luY2x1ZGUvY29uZmlncy9TSU1QQzgzMTMuaDo4MToxOiB3YXJuaW5nOgogICAgIkNPTkZJR19NQVhfTUVNX01BUFBFRCIgcmVkZWZpbmVkCiAgICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcjFhYWhhL2dpdC91LWJvb3QvaW5jbHVkZS9jb25maWcuaDo0LAoJCSAgICBmcm9tIC9ob21lL3IxYWFoYS9naXQvdS1ib290L2luY2x1ZGUvY29tbW9uLmg6MzUsCgkJICAgIGZyb20gc2ltcGM4MzEzLmM6MjY6CiAgICAvaG9tZS9yMWFhaGEvZ2l0L3UtYm9vdC9pbmNsdWRlL2FzbS9jb25maWcuaDoyODoxOiB3YXJuaW5nOiB0aGlzIGlzCiAgICB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4ODQ1YWJkYzBkY2YyMGQwOTQ0ZTk2NTE1M2Y1YWU3YTljMzA3N2MKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgRmViIDE4IDIxOjM1OjM4IDIwMDkgKzAxMDAKCiAgICBGaXggYnVpbGQgZXJyb3JzIGFmdGVyIG1ha2luZyBmbGFzaF9nZXRfaW5mbygpIG5vbi1zdGF0aWMKCiAgICBGaXggZm9yIHRoZXNlIGJ1aWxkIHByb2JsZW1zOgogICAgZXJyb3I6IHN0YXRpYyBkZWNsYXJhdGlvbiBvZiAnZmxhc2hfZ2V0X2luZm8nIGZvbGxvd3Mgbm9uLXN0YXRpYyBkZWNsYXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjQ5OTZkNmIyMTQwZTVkYTdmMWMzNDZmMzdhNjdiMTk5MDdiMzA3YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAxOCAxMzoxODowMCAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBQQ0llOiBDaGFuZ2UgMTZHQiBpbmJvdW5kIG1lbW9yeSB0byA0R0IKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSByZWNlbnRseSBzZWVuIG9uIHNvbWUgNHh4IHBsYXRmb3Jtcy4gRm9yCiAgICBleGFtcGxlIG9uIEtpbGF1ZWEgUENJZSBzbG90ICMwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNTBmZTRiZDYxM2M2ZDM1YTJjMzQwNTVmMDJlOTUwMWRkNmE5YWQ1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDE4IDE0OjA1OjM3IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IFNvbWUgbW9yZSBQTUM0MDUgY29kaW5nLXN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmY2ZWI5MTcwYmY5MWI3MmVhNTFkY2VhMmE4YjljMTFiMGUyMGJjNQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QuZXU+CkRhdGU6CVN1biBGZWIgMTUgMjI6Mjc6NDcgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFBNQzQwNSBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBwcmVwYXJlcyB0aGUgZ29vZCBvbGQgUE1DNDA1IGJvYXJkIHN1cHBvcnQgZm9yCiAgICB1cGNvbWluZyBQTUM0MDVWMiBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM1NTNiNWY0YTBjNzdmYzc2ZTFkMjVlNzFjOGFhYTQ3NjU3ZTJkNmYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLmV1PgpEYXRlOglTdW4gRmViIDE1IDIyOjI2OjU0IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IENsZWFudXAgUE1DNDA1IGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGNvZGluZyBzdHlsZSBmb3IgUE1DNDA1IGJvYXJkIHN1cHBvcnQuCiAgICBBbHNvIHNvbWUgdW5uZWVkZWQgZmVhdHVyZXMvY29kZSBpcyByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI0ZTg1ZDBmMzdiNWI5MjRmYmY4MzQ4NjdhZDZkMGIzMWI4NmY2NjcKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEZlYiA1IDA0OjA4OjIwIDIwMDkgKzAxMDAKCiAgICBxb25nOiBjaGFuZ2VzIHRvIERhdmUvREVOWCBRb25nIGNvbmZpZ3VyYXRpb24KCiAgICAxLiBDaGFuZ2VzIHRvIHRoZSBkZWZhdWx0IGVudmlyb25tZW50OgogICAgICAtICJib290Y21kIiBkZWZpbmVkIGFzICJydW4gZmxhc2hfc2VsZiIKICAgICAgLSAic2F2ZWVudiIgY29tbWFuZCByZW1vdmVkIGZyb20gInVwZGF0ZSIKICAgICAgLSAidWJvb3QiIGNoYW5nZWQgdG8gInUtYm9vdCIgKGFsc28gaW4gImxvYWQiKQogICAgICAtICJhZGRtdGQiIHZhcmlhYmxlIGRlZmluZWQgKGFuZCBhZGRlZCB0byBhbGwgYm9vdCBjb21tYW5kcykKICAgIDIuIENPTkZJR19DTURfSkZGUzIgZGVmaW5lZCB0byBlbmFibGUgIm10ZHBhcnRzIiBjb21tYW5kCiAgICAzLiBNVERJRFNfREVGQVVMVCBhbmQgTVREUEFSVFNfREVGQVVMVCBkZWZpbmVkCiAgICA0LiBDT05GSUdfU1lTX0NCU0laRSBjaGFuZ2VkIGZyb20gMjU2IHRvIDUxMi4gVGhhdCBzb2x2ZXMgdGhlIHByb2JsZW0KICAgIHdpdGggdHJ1bmNhdGVkICJib290YXJncyIgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgNWYwMzIwMTA4ODcwZTVkNjI5ODNkMWQ1YzEzYTJhMDg3ZGRkZjY4NgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMSAxNzowNzo1MiAyMDA5ICswMTAwCgogICAgY29tbW9uL2NvbnNvbGU6IGF2b2lkIGlmZGVmIENPTkZJR19DT05TT0xFX01VWCB3aGVuIGl0J3MgcG9zc2libGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGVjNmYxNDk5NDYwMjI3NjY2MGY3MjY0YzZhYjNiOTFlZjFmNzYxNGQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDEgMTc6MDc6NTEgMjAwOSArMDEwMAoKICAgIGNvbW1vbi9jb25zb2xlOiBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZGFhZjc0ZjE3NmI1NDhkZmQzNGE5OTkwMjMxZjQxODkyMDFkNTdiYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEphbiAyOSAyMDowMjoyMyAyMDA5IC0wNTAwCgogICAgbXBjOHh4X3BjbWNpYTogbW92ZSBDT05GSUdfOHh4IG91dCBvZiAuYyBmaWxlIGFuZCBpbnRvIE1ha2VmaWxlCgogICAgTW92ZSB0aGUgQ09ORklHXzh4eCBtcGM4eHhfcGNtY2lhLmMgcHJvdGVjdGlvbiBvdXQgb2YgdGhlIEMgZmlsZSBhbmQKICAgIGludG8gdGhlIE1ha2VmaWxlIHNvIHdlIGF2b2lkIHBvaW50bGVzcyBjb21waWxpbmcgb2YgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDdiZDI3MjJlODkwYmM4NzdhM2MwNTdkN2NjZGRjODA0NTFjOTk5MzkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBKYW4gMjkgMjA6MDI6MDcgMjAwOSAtMDUwMAoKICAgIGRpc2s6IGNvbnZlcnQgcGFydF8qIGZpbGVzIHRvIENPQkotJChDT05GSUdfWFhYKSBzdHlsZQoKICAgIE1vdmUgdGhlIENPTkZJR19YWFggb3V0IG9mIHRoZSBwYXJ0X1hYWC5jIGZpbGUgYW5kIGludG8gTWFrZWZpbGUgdG8KICAgIGF2b2lkIHBvaW50bGVzcyBjb21waWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZjA1ZmE5MjA1ZTA0OTg2MTc2ZGM3YWI4YjcxMGJjYjVmYmU5ZjMzOApBdXRob3I6IFBldHJpIExlaHRpbmVuIDxwZXRyaS5sZWh0aW5lbkBpbm9pLmZpPgpEYXRlOglUaHUgSmFuIDI5IDEwOjM1OjQwIDIwMDkgKzAyMDAKCiAgICBpbmNsdWRlL2ltYWdlLmg6IEVhc2UgZ3JlcHBpbmcgb2YgaW1hZ2VfKiBmdW5jdGlvbnMKCiAgICBCZWNhdXNlIHRoZSBmdW5jdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgdXNpbmcgbWFjcm9zLCBncmVwcGluZyBmb3IKICAgIHRoZWlyIGRlZmluaXRpb25zIGlzIG5vdCBwb3NzaWJsZS4gVGhpcyBwYXRjaCBhZGRzIHRoZSByZWFsIGZ1bmN0aW9uCiAgICBuYW1lcyBpbiBjb21tZW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRyaSBMZWh0aW5lbiA8cGV0cmkubGVodGluZW5AaW5vaS5maT4KICAgIEFja2VkLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmRhYjM5ZDM1OGU2M2FhNDdmNDAwYThhNzZiOGQ1ZjI4Mzg0MmRmMwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEphbiAyOCAxOTowODoxNCAyMDA5IC0wNTAwCgogICAgcmVuYW1lIENPTkZJR19DTURfRU5WIHRvIENPTkZJR19DTURfU0FWRUVOVgoKICAgIFRoZSBDT05GSUdfQ01EX0VOViBvcHRpb24gY29udHJvbHMgZW5hYmxlbWVudCBvZiB0aGUgYHNhdmVlbnZgIGNvbW1hbmQKICAgIHJhdGhlciB0aGFuIGEgZ2VuZXJpYyAiZW52IiBjb21tYW5kLCBvciBhbnl0aGluZyBlbHNlIHJlbGF0ZWQgdG8gdGhlCiAgICBlbnZpcm9ubWVudC4gIFNvLCBsZXQncyBtYWtlIHN1cmUgdGhlIGRlZmluZSBpcyBuYW1lZCBhY2NvcmRpbmdseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGIwNTkyYjg5ZTBmOWY4MWM5ZTE1MGM4MWQ5NmY4YTQzZTRkNjEwMQpBdXRob3I6IFZhbGVyaXkgR2x1c2hrb3YgPGd2dkBsc3RlYy5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMjA6MDI6MTcgMjAwOSArMDIwMAoKICAgIGRpc2FibGUgaW1scyBjb21tYW5kIGlmIG5vIGZsYXNoIGlzIGRlZmluZWQKCiAgICBEZWZhdWx0IENPTkZJR19DTURfSU1MUyBtdXN0IGJlIGRpc2FibGVkIHdoZW4gQ09ORklHX1NZU19OT19GTEFTSCBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KCmNvbW1pdCA5MjNhYTQ4MTI2MjU5YzEzZGU5NTEzMTIwM2YxZDI4YmZhNWNiODg5CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEphbiAyMyAxMzoyNzoxOCAyMDA5ICswMTAwCgogICAgQVBJOiBJbXByb3ZlIGdsdWUgbWlkLWxheWVyIG9mIHRoZSBBUEkgZGVtbyBhcHBsaWNhdGlvbi4KCiAgICAtIEV4dGVuZCB1Yl9kZXZfcmVhZCgpIGFuZCB1Yl9kZXZfcmVjdigpIHNvIHRoZXkgcmV0dXJuIHRoZSBsZW5ndGggYWN0dWFsbHkKICAgIHJlYWQsIHdoaWNoIGFsbG93cyBmb3IgYmV0dGVyIGNvbnRyb2wgYW5kIGVycm9yIGhhbmRsaW5nICh0aGlzIGludHJvZHVjZXMKICAgIGFkZGl0aW9uYWwgZXJyb3IgY29kZSBBUElfRVNZU0MgcmV0dXJuZWQgYnkgdGhlIGdsdWUgbWlkLWxheWVyKS4KCiAgICAtIENsZWFuIHVwIGRlZmluaXRpb25zIG5hbWluZyBhbmQgdXNhZ2UuCgogICAgLSBPdGhlciBtaW5vciBjb3NtZXRpY3MuCgogICAgTm90ZSB0aGVzZSBjaGFuZ2VzIGRvIG5vdCB0b3VjaCB0aGUgQVBJIHByb3Blciwgc28gdGhlIGludGVyZmFjZSBiZXR3ZWVuCiAgICBVLUJvb3QgYW5kIHN0YW5kYWxvbmUgYXBwbGljYXRpb25zIHJlbWFpbnMgdW5jaGFuZ2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgNDRhOTRlNTk2YmEwZjZkMDk1MWIxNjU0MDNjNTIwYmY1NWIxYzU2ZgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTM6Mjc6MTcgMjAwOSArMDEwMAoKICAgIEFQSTogT25seSBvdXRwdXQgdGVzdCBkYXRhIHdoZW4gcmVhZGluZyB3YXMgc3VjY2Vzc2Z1bC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+Cgpjb21taXQgN2ZiNmM0ZjliMDZjNTUzOTA0M2M4YmZjNjU2NTcxMGI4MDkwODQxZApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTM6Mjc6MTYgMjAwOSArMDEwMAoKICAgIEFQSTogUHJvdmlkZSBzeXNjYWxsIGVudHJ5IHBvaW50IGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiODRkN2Q4ZjFlMTA2NmY4MTA4NjYzMDRhMTZhMzU4M2Y4OGU3Yzk4CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEphbiAyMyAxMzoyNzoxNSAyMDA5ICswMTAwCgogICAgQVBJOiBVc2Ugc3RhY2sgcG9pbnRlciBhcyBBUEkgc2lnbmF0dXJlIHNlYXJjaCBoaW50IGluIHRoZSBnbHVlIGxheWVyLgoKICAgIERlLWhhcmRjb2RlIHJhbmdlIGluIFJBTSB3ZSBzZWFyY2ggZm9yIHRoZSBBUEkgc2lnbmF0dXJlLiBJbnN0ZWFkIHVzZSB0aGUgc3RhY2sKICAgIHBvaW50ZXIgYXMgYSBoaW50IHRvIG5hcnJvdyBkb3duIHRoZSByYW5nZSBpbiB3aGljaCB0aGUgc2lnbmF0dXJlIGNvdWxkIHJlc2lkZQogICAgKGl0IGlzIG1hbGxvYydlZCBvbiB0aGUgVS1Cb290IGhlYXAsIGFuZCBpcyBob3BlZCB0byByZW1haW4gaW4gc29tZSBwcm94aW1pdHkKICAgIGZyb20gc3RhY2sgYXJlYSkuIEFkanVzdCBQb3dlclBDIGNvZGUgaW4gQVBJIGRlbW8gdG8gdGhlIG5ldyBzY2hlbWUuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgQ3p1YmFrIDxyY3pAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4NmI0YmFmZGZhZjY2OWVkZThmZDk5MDQ0YWJjN2UyN2VhMjliNGY1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxNyAxMDoyNjozOCAyMDA5ICswMTAwCgogICAgVFFNODI2MDogZml4IGxvY2F0aW9ucyBvZiBrZXJuZWwgYW5kIHJhbWRpc2sgaW1hZ2VzIGluIGZsYXNoCgogICAgQWZ0ZXIgaW50cm9kdWNpbmcgcmVkdW5kYW50IGVudmlyb25tZW50IHRoZSBrZXJuZWwgaW1hZ2VzIHdhcwogICAgb3ZlcmxhcHBpbmcgd2l0aCBlbnZpcm9ubWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJiNjhiMjMzNzNmOTYxOTlhMGNhZmJmZDdhOWY3OWVkNjIzODFlYmIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAxMSAxOToyNjoxNSAyMDA5ICswMTAwCgogICAgODN4eDogYWRkIG1pc3NpbmcgVElNSU5HX0NGRzFfQ0FTTEFUXyogZGVmaW5lcwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOWUzNGZlMmU4NmY3YjZjYzgyNjBmNGIyNGNiZGM3ZGQ4MWUwNGM1CkF1dGhvcjogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KRGF0ZToJVGh1IEZlYiA1IDE0OjM1OjIxIDIwMDkgKzAyMDAKCiAgICBtcGM4MzQ5aXR4OiBhbGxvdyBTQVRBIGJvb3QgZnJvbSB0aGUgb25ib2FyZCBTSUwxMzM0CgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdXNpbmcgb2YgU0FUQSBkZXZpY2VzIGNvbm5lY3RlZAogICAgdG8gdGhlIG9uYm9hcmQgUENJIFNJTDEzMzQgU0FUQSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZhbGVyaXkgR2x1c2hrb3YgPGd2dkBsc3RlYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxYWMzODdmNDY0NTQ5OTc0Njg1NmFkYzFhZWFhOTc4N2RhMmVjYTYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMzAgMTY6NTA6MTQgMjAwOCAtMDUwMAoKICAgIDgzeHg6IEFkZCBlU0RIQyBzdXBwb3J0IG9uIDgzNzkgRU1EUyBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MDUyMmRjODM2OWE4OTkzODM2OWZiY2VlNTcyZTY2MjM3M2JjOWEzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDMwIDE2OjUxOjMzIDIwMDggLTA1MDAKCiAgICA4NXh4OiBBZGQgZVNESEMgc3VwcG9ydCBmb3IgODUzNiBEUwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDU4NmVmMjRlZDVjYWY2Y2U1NTkxZGY3NmYzNTUwMDlkYTJjZDc5CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDMwIDE2OjQ3OjE2IDIwMDggLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIEZyZWVzY2FsZSBlU0RIQyBmb3VuZCBvbiA4Mzc5IGFuZCA4NTM2IFNvQ3MKCiAgICBUaGlzIHVzZXMgdGhlIG5ldyBNTUMgZnJhbWV3b3JrCgogICAgU29tZSBjb250cmlidXRpb25zIGJ5IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI3MmNjNzBiMjExZTk0NWU0NDEzMTIyYWE3Mzg2OGY2YWRhNzMyYTUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMzAgMTY6NDE6MDEgMjAwOCAtMDUwMAoKICAgIEFkZCBNTUMgRnJhbWV3b3JrCgogICAgSGVyZSdzIGEgbmV3IGZyYW1ld29yayAoYmFzZWQgcm91Z2hseSBvZmYgdGhlIGxpbnV4IG9uZSkgZm9yIG1hbmFnaW5nCiAgICBNTUMgY29udHJvbGxlcnMuICBJdCBoYW5kbGVzIGFsbCBvZiB0aGUgc3RhbmRhcmQgU0QvTU1DIHRyYW5zYWN0aW9ucywKICAgIGxlYXZpbmcgdGhlIGhvc3QgZHJpdmVycyB0byBpbXBsZW1lbnQgb25seSB3aGF0IGlzIG5lY2Vzc2FyeSB0bwogICAgZGVhbCB3aXRoIHRoZWlyIHNwZWNpZmljIGhhcmR3YXJlLgoKICAgIFRoaXMgYWxzbyBob29rcyB0aGUgaW5mcmFzdHJ1Y3R1cmUgaW50byB0aGUgUG93ZXJQQyBib2FyZCBjb2RlCiAgICAoc2ltaWxhciB0byBob3cgdGhlIGV0aGVybmV0IGluZnJhc3RydWN0dXJlIG5vdyBob29rcyBpbikKCiAgICBTb21lIG9mIHRoaXMgY29kZSB3YXMgY29udHJpYnV0ZWQgYnkgRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWRlOTdmOTg1NmY2OTczODBjYzUwNDEyNmFiOTI1NjFlZDIzODgwMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAzMCAxNjozMTozOSAyMDA4IC0wNTAwCgogICAgRWxpbWluYXRlZCBhcmNoLXNwZWNpZmljIG1tYyBoZWFkZXIgcmVxdWlyZW1lbnQKCiAgICBUaGUgY3VycmVudCBNTUMgaW5mcmFzdHJ1Y3R1cmUgcmVsaWVzIG9uIHRoZSBleGlzdGVuY2Ugb2YgYW4KICAgIGFyY2gtc3BlY2lmaWMgaGVhZGVyIGZpbGUuCVRoaXMgaXNuJ3QgbmVjZXNzYXJ5LCBhbmQgYSBjb3VwbGUKICAgIGRyaXZlcnMgd2VyZSBmb3JjZWQgdG8gaW1wbGVtZW50IGR1bW15IGZpbGVzIHRvIG1lZXQgdGhpcyByZXF1aXJlbWVudC4KICAgIEluc3RlYWQsIHdlIG1vdmUgdGhlIHN0dWZmIGluIHRob3NlIGhlYWRlciBmaWxlcyBpbnRvIGEgbW9yZSBhcHByb3ByaWF0ZQogICAgcGxhY2UsIGFuZCBlbGltaW5hdGUgdGhlIHN0dWJzIGFuZCB0aGUgI2luY2x1ZGUgb2YgYXNtL2FyY2gvbW1jLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWJiNTQ2NmNjZjRjZTUwZjQxMmQ0NTk1ODZmNGY0YjgxY2I3M2FjMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAzMCAxNjoyMTowMCAyMDA4IC0wNTAwCgogICAgQ29udmVydCBtbWNfaW5pdCB0byBtbWNfbGVnYWN5X2luaXQKCiAgICBUaGlzIGlzIHRvIGdldCBpdCBvdXQgb2YgdGhlIHdheSBvZiBpbmNvbWluZyBNTUMgZnJhbWV3b3JrCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyZTJlZDAyMzNhNWVmMjk5MzYxYWJlYzRmYmRhZWZiNjM0NTZlZmYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMzAgMTY6MTk6MjUgMjAwOCAtMDUwMAoKICAgIEVsaW1pbmF0ZSBzdXBwb3J0IGZvciB1c2luZyBNTUMgYXMgbWVtb3J5CgogICAgTU1DIGNhcmRzIGFyZSBub3QgbWVtb3J5LCBzbyB3ZSBzdG9wIHRyZWF0aW5nIHRoZW0gdGhhdCB3YXkuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxYmUwZDI1ZWNmNDk0YWU4MTI0NWNhNDM4NzM4YmE4MzlkNjMyOWIKQXV0aG9yOiBQb29uYW1fQWdncndhbC1iMTA4MTIgPGIxMDgxMkBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSmFuIDQgMDg6NDY6MzggMjAwOSArMDUzMAoKICAgIDMyYml0IEJVZyBmaXggZm9yIEREUjIgb24gODU3MgoKICAgIFRoaXMgZXJyYXRhIGZpeCBpcyByZXF1aXJlZCBmb3IgMzIgYml0IEREUjIgY29udHJvbGxlciBvbiA4NTcyLgogICAgTWF5ICBhbHNvIGJlIHJlcXVpcmVkIGZvciBQMTBYWDIwWFggcGxhdGZvcm1zCgogICAgU2lnbmVkLW9mZi1ieTogUG9vbmFtX0FnYXJ3YWwtYjEwODEyIDxiMTA4MTJAbGMxMTA2LnppbjMzLmFwLmZyZWVzY2FsZS5uZXQ+Cgpjb21taXQgZTBjNGZhYzc5ZDRkNzQ1NzJkZGQ0M2Y3NWU3MTg5Y2VjY2E4ZDBhZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEZlYiAxNiAwOTo0MDoyMCAyMDA5IC0wNjAwCgogICAgVFFNODV4eDogRml4IGEgY291cGxlIHdhcm5pbmdzIGluIFRRTTg1NDggYnVpbGQKCiAgICBUaGUgZWNtIHZhcmlhYmxlIGluIHNkcmFtLmMgd2FzIGJlaW5nIGRlY2xhcmVkIGZvciBhbGwgODU0OCwgYnV0IG9ubHkKICAgIHVzZWQgYnkgc3BlY2lmaWMgODU0OCBib2FyZHMsIHNvIHdlIG1ha2UgdGhhdCB2YXJpYWJsZSByZXF1aXJlIHRob3NlCiAgICBzcGVjaWZpYyBib2FyZHMsIHRvbwoKICAgIFRoZSBuYW5kIGNvZGUgd2FzIHVzaW5nIGFuIGluZGV4ICJpIiBpbnRvIGEgdGFibGUsIGFuZCB0aGVuIHJlLXVzaW5nICJpIgogICAgdG8gc2V0IGFkZHJlc3NlcyBmb3IgZWFjaCB1cG0uICBIb3dldmVyLCB0aGVuIGl0IHJlbGllZCBvbiB0aGUgb2xkIHZhbHVlCiAgICBvZiBpIHN0aWxsIGJlaW5nIHRoZXJlIHRvIGVuYWJsZSB0aGluZ3MuICBDaGFuZ2VkIHRoZSBzZWNvbmQgImkiIHRvICJqIgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZjA3YTViYWVjZTBlY2ZjNTI4NGNmZGE4YTRlNjhlYWY5Mjc4MmY4CkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVdlZCBGZWIgMTEgMTg6Mzg6MjYgMjAwOSArMDEwMAoKICAgIE1QQzg1eHg6IFRRTTg1NDg6IHdvcmthcm91bmQgZm9yIGVycmF0dW0gRERSIDE5IGFuZCAyMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBERFIyMCBhY2NvcmRpbmcgdG8gTVBDODU0OAogICAgRGV2aWNlIEVycmF0YSBkb2N1bWVudCwgUmV2LiAxOiAiQ0tFIHNpZ25hbCBtYXkgbm90IGZ1bmN0aW9uIGNvcnJlY3RseQogICAgYWZ0ZXIgYXNzZXJ0aW9uIG9mIEhSRVNFVCIuIEZ1cnRoZXJtb3JlLCB0aGUgYnVnIEREUjE5IGlzIGZpeGVkIGluCiAgICBwcm9jZXNzb3IgdmVyc2lvbiAyLjEgYW5kIHRoZSB3b3JrLWFyb3VuZCBtdXN0IGJlIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgMDgwNDA4ZmRjNzE3MDZhZGNiODgzZDIyMTI1NjM3YzU0ZjYwMTBiMQpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgRmViIDExIDE4OjM4OjI1IDIwMDkgKzAxMDAKCiAgICBNUEM4NXh4OiBUUU04NTQ4OiB1c2UgY2FjaGUgZm9yIEFHIGFuZCBCRSB2YXJpYW50cwoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgYWNjZXNzZXMgdG8gdGhlIHN5c3RlbSBtZW1vcnkgY2FjaGFibGUgYnkgcmVtb3ZpbmcgdGhlCiAgICBjYWNoaW5nLWluaGliaXRlZCBhbmQgZ3VhcmRlZCBmbGFncyBmcm9tIHRoZSByZWxldmFudCBUTEIgZW50cmllcyBmb3IKICAgIHRoZSBUUU04NTQ4X0JFIGFuZCBUUU04NTQ4X0FHIG1vZHVsZXMuIEZZSSwgdGhlIEZyZWVzY2FsZSBNUEM4NSogYm9hcmRzCiAgICBhcmUgY29uZmlndXJlZCBzaW1pbGFybHkuCgogICAgVGhpcyByZXN1bHRzIGluIGEgYmlnIGF2ZXJhbGwgcGVyZm9ybWFjZSBpbXByb3ZlbWVudC4gVEZUUCBkb3dubG9hZHMsCiAgICBOQU5EIEZsYXNoIGFjY2Vzc2VzLCBrZXJuZWwgYm9vdHMsIGV0Yy4gYXJlIG11Y2ggZmFzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IGRjNWY1NWQ2MzZkN2JmMjFiYTE3NzU4ZmFjNGI5MjllYzRjMDU5ZjIKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxODozODoyNCAyMDA5ICswMTAwCgogICAgTVBDODV4eDogVFFNODU0OF9BRzogYWRkIDEgR2lCIEREUjItU0RSQU0gY29uZmlndXJhdGlvbgoKICAgIFRoaXMgcGF0Y2ggYWRkIHN1cHBvcnQgZm9yIHRoZSAxIEdpQiBERFIyLVNEUkFNIG9uIHRoZSBUUU04NTQ4X0FHCiAgICBtb2R1bGUuCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgODhiMGU4OGQxODY0NzkzNDllNWEyYjc3MWU4Mjc3NTEwOWUxMGZiNApBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgRmViIDExIDE4OjM4OjIzIDIwMDkgKzAxMDAKCiAgICBNUEM4NXh4OiBUUU04NTQ4OiBmaXggU0RSQU0gdGltaW5nIGZvciA1MzMgTUh6CgogICAgQWNjb3JkaW5nIHRvIG5ldyBUUU04NTQ4IHRpbWluZyBzcGVjaWZpY2F0aW9uOgogICAgUmVmcmVzaCBSZWNvdmVyeTogMzQgLT4gNTMgY2xvY2tzCiAgICBDS0UgcHVsc2Ugd2lkdGg6ICAxIC0+IDMgY3ljbGVzCiAgICBXaW5kb3cgZm9yIGZvdXIgYWN0aXZpdGllczogMTMgLT4gMTQgY3ljbGVzCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgYTg2NWJjZGFjODkyNzhjYWM0ZGZjMDdkZWM4Mjk5NDAzMTEwNDk5ZApBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgRmViIDExIDE4OjM4OjIyIDIwMDkgKzAxMDAKCiAgICBNUEM4NXh4OiBUUU04NTQ4OiBhZGQgc3VwcG9ydCBmb3IgdGhlIFRRTTg1NDhfQUcgbW9kdWxlCgogICAgVGhlIFRRTTg1NDhfQUcgaXMgYSB2YXJpYW50IG9mIHRoZSBUUU04NTQ4IG1vZHVsZSB3aXRoIDEgR2lCIG1lbW9yeSwKICAgIENBTiBhbmQgd2l0aG91dCBQQ0kvUENJLVggYW5kIFJUQy4gVS1Cb290IGNhbiBiZSBidWlsdCBmb3IgdGhpcyBtb2R1bGUKICAgIHdpdGggIiQgbWFrZSBUUU04NTQ4X0FHX2NvbmZpZyIuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgYWQ3ZWU1ZDQzYjBkYjk0MDc5ZDU2NTIxZGFiY2EyNTY3NGYyODc0NwpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgRmViIDExIDE4OjM4OjIxIDIwMDkgKzAxMDAKCiAgICBNUEM4NXh4OiBUUU04NTQ4OiBhZGQgc3VwcG9ydCBmb3IgdGhlIFRRTTg1NDhfQkUgbW9kdWxlCgogICAgVGhlIFRRTTg1NDhfQkUgaXMgYSB2YXJpYW50IG9mIHRoZSBUUU04NTQ4IG1vZHVsZSB3aXRoIE5BTkQgYW5kIENBTgogICAgaW50ZXJmYWNlLiBXaXRoIE5BTkQgc3VwcG9ydCwgdGhlIGltYWdlIGlzIHNpZ25pZmljYW50bHkgbGFyZ2VyIGFuZAogICAgVEVYVF9CQVNFIGlzIGFkanVzdGVkIGFjY29yZGluZ2x5LiBVLUJvb3QgY2FuIGJlIGJ1aWx0IGZvciB0aGlzCiAgICBtb2R1bGUgd2l0aCAiJCBtYWtlIFRRTTg1NDhfQkVfY29uZmlnIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBhMzE4MjM0ODc4YzM0NmU2NzNiMmVmOGRjNGIxNGIzMzhmZTdmYzJiCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVdlZCBGZWIgMTEgMTg6Mzg6MjAgMjAwOSArMDEwMAoKICAgIE1QQzg1eHg6IFRRTTg1eHg6IG1ha2Ugc3RhbmRhcmQgUENJL1BDSS1YIGNvbmZpZ3VyYWJsZQoKICAgIFRoZSBUUU04NTQ4X0FHIG1vZHVsZSBkb2VzIG5vdCBoYXZlIHRoZSBzdGFuZGFyZCBQQ0kvUENJLVggaW50ZXJmYWNlCiAgICBjb25uZWN0ZWQgYnV0IGp1c3QgdGhlIFBDSSBFeHByZXNzIGludGVyZmFjZSAuIFNvIGZhciBpdCB3YXMgbm90CiAgICBwb3NzaWJsZSB0byBkaXNhYmxlIGl0IHdpdGhvdXQgZGlzYWJsaW5nIHRoZSBjb21wbGV0ZSBQQ0kgaW50ZXJmYWNlCiAgICAoQ09ORklHX1BDSSkgaW5jbHVkaW5nIFBDSSBFeHByZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IDMxY2E5MTE5YzMxODZjZWM1NzliNTRkMmE3YTJiMzYxYjRkMmI3YmYKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxODozODoxOSAyMDA5ICswMTAwCgogICAgTVBDODV4eDogVFFNODV4eDogZml4IGZsYXNoIHByb3RlY3Rpb24gZm9yIGJvb3QgbG9hZGVyCgogICAgQXMgdGhlIHJlc2V0IHZlY3RvciBpcyBsb2NhdGVkIGF0IDB4ZmZmZmZmZmMsIGFsbCBmbGFzaCBzZWN0b3JzIGZyb20gdGhlCiAgICBiZWdpbm5pbmcgb2YgdGhlIFUtQm9vdCBiaW5hcnkgdG8gMHhmZmZmZmZmZiBtdXN0IGJlIHByb3RlY3RlZC4gT24gdGhlCiAgICBUUU04NTQ4LUFHIGhhdmluZyBzbWFsbCBzZWN0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIGZsYXNoIGl0IGhhcHBlbmVkIHRoYXQKICAgIHRoZSBsYXN0IHR3byBzZWN0b3Igd2VyZSBub3QgcHJvdGVjdGVkIGFuZCBhbiAiZXJhc2UgYWxsIiBsZWZ0IGFuCiAgICB1bi1ib290YWJsZSBzeXN0ZW0gYmVoaW5kOgoKICAgIEJhbmsgIyAyOiBDRkkgY29uZm9ybWFudCBGTEFTSCAoMzIgeCAxNikgIFNpemU6IDMyIE1CIGluIDI3MCBTZWN0b3JzCiAgICAgIEFNRCBTdGFuZGFyZCBjb21tYW5kIHNldCwgTWFudWZhY3R1cmVyIElEOiAweEVDLCBEZXZpY2UgSUQ6IDB4MjU3RQogICAgICBFcmFzZSB0aW1lb3V0OiA4MTkyIG1zLCB3cml0ZSB0aW1lb3V0OiAxIG1zCgogICAgICBGRkZBMDAwMCBFIFJPICAgRkZGQzAwMDAJIFJPICAgRkZGRTAwMDAJIFJPICAgRkZGRTQwMDAJIFJPICAgRkZGRTgwMDAJIFJPCiAgICAgIEZGRkVDMDAwCSBSTyAgIEZGRkYwMDAwCSBSTyAgIEZGRkY0MDAwCSBSTyAgIEZGRkY4MDAwIEUgICAgICBGRkZGQzAwMAoKICAgIFRoZSBzYW1lIGJ1ZyBzZWVtcyB0byBiZSBpbiBkcml2ZXJzL210ZC9jZmlfZmxhc2guYzpmbGFzaF9pbml0KCkgYW5kIG1hbnkKICAgIGJvYXJkIEJTUHMgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBhMWM4YTcxOTI2MjE1MWY5NzExOWU3NjE2NjA0M2VlM2RhM2Y5N2IyCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIEZlYiA2IDE0OjMwOjQwIDIwMDkgLTA2MDAKCiAgICA4Nnh4OiBVcGRhdGUgQ1BVIGluZm8gb3V0cHV0IG9uIGJvb3R1cAoKICAgIC0gVXBkYXRlIHN0eWxlIG9mIDg2eHggQ1BVIGluZm9ybWF0aW9uIG9uIGJvb3QgdG8gbW9yZSBjbG9zZWx5CiAgICAgIG1hdGNoIDg1eHggYm9hcmRzCiAgICAtIEZpeCBkZXRlY3Rpb24gb2YgODY0MS84NjQxRAogICAgLSBVc2Ugc3RybWh6KCkgdG8gZGlzcGxheSBmcmVxdWVuY2llcwogICAgLSBEaXNwbGF5IEwxIGluZm9ybWF0aW9uCiAgICAtIERpc3BsYXkgTDIgY2FjaGUgc2l6ZQogICAgLSBGaXhlZCBDUFUvU1ZSIHZlcnNpb24gb3V0cHV0CgogICAgPT0gQmVmb3JlID09CiAgICBGcmVlc2NhbGUgUG93ZXJQQwogICAgQ1BVOgoJQ29yZTogRTYwMCBDb3JlIDAsIFZlcnNpb246IDAuMiwgKDB4ODAwNDAyMDIpCglTeXN0ZW06IFVua25vd24sIFZlcnNpb246IDIuMSwgKDB4ODA5MDAxMjEpCglDbG9ja3M6IENQVToxMDY2IE1IeiwgTVBYOiA1MzMgTUh6LCBERFI6IDI2NiBNSHosIExCQzogMTMzIE1IegoJTDI6IEVuYWJsZWQKICAgIEJvYXJkOiBYLUVTIFhQZWRpdGU1MTcwIDNVIFZQWCBTQkMKCiAgICA9PSBBZnRlciA9PQogICAgQ1BVOiAgIDg2NDFELCBWZXJzaW9uOiAyLjEsICgweDgwOTAwMTIxKQogICAgQ29yZTogIEU2MDAgQ29yZSAwLCBWZXJzaW9uOiAyLjIsICgweDgwMDQwMjAyKQogICAgQ2xvY2sgQ29uZmlndXJhdGlvbjoKCSAgIENQVToxMDY2LjY2NyBNSHosIE1QWDo1MzMuMzMzIE1IegoJICAgRERSOjI2Ni42NjcgTUh6ICg1MzMuMzMzIE1UL3MgZGF0YSByYXRlKSwgTEJDOjEzMy4zMzMgTUh6CiAgICBMMTogICAgRC1jYWNoZSAzMiBLQiBlbmFibGVkCgkgICBJLWNhY2hlIDMyIEtCIGVuYWJsZWQKICAgIEwyOiAgICA1MTIgS0IgZW5hYmxlZAogICAgQm9hcmQ6IFgtRVMgWFBlZGl0ZTUxNzAgM1UgVlBYIFNCQwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgMjJjMDBmOGQ3ZDQ1NGQ3N2U3NTlkZjU4NDE1ZDJkM2YzZDdlMTU0YwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVRodSBGZWIgNSAxMToyNToyNCAyMDA5IC0wNjAwCgogICAgODZ4eDogVXBkYXRlIEdsb2JhbCBVdGlsaXRpZXMgc3RydWN0dXJlCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA0ZWY2MzBkZjc3M2U0NTgwNmQ3MDFiZjVkMjVjMzI4Nzc4YmI0Y2RlCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVGh1IEZlYiA1IDExOjI1OjI1IDIwMDkgLTA2MDAKCiAgICA4Nnh4OiBSZXNldCB1cGRhdGUKCiAgICBVcGRhdGUgdGhlIDg2eHggcmVzZXQgc2VxdWVuY2UgdG8gdHJ5IGV4ZWN1dGluZyBhIGJvYXJkLXNwZWNpZmljIHJlc2V0CiAgICBmdW5jdGlvbi4gIElmIHRoZSBib2FyZC1zcGVjaWZpYyByZXNldCBpcyBub3QgaW1wbGVtZW50ZWQgb3IgZG9lcyBub3QKICAgIHN1Y2NlZWQsIHRoZW4gYXNzZXJ0ICNIUkVTRVRfUkVRLiAgVXNpbmcgI0hSRVNFVF9SRVEgaXMgYSBtb3JlIHN0YW5kYXJkCiAgICByZXNldCBwcm9jZWR1cmUgdGhhbiB0aGUgcHJldmlvdXMgbWV0aG9kIGFuZCBhbGxvd3MgYWxsIGJvYXJkCiAgICBwZXJpcGhlcmFscyB0byBiZSByZXNldCBpZiBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBlZGYwZTI1MjRhOGM2YTNlOTFjMDA5YzQ5NmEwYWEwYWU4OWNkOGFiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAxMCAyMzo1Mzo0MCAyMDA5IC0wNjAwCgogICAgZnNsLWRkcjogQWxsb3cgc3lzdGVtIHRvIGJvb3QgaWYgd2UgaGF2ZSBtb3JlIHRoYW4gNEcgb2YgbWVtb3J5CgogICAgUHJldmlvdXNseSBpZiB3ZSA+PTRHIG9mIG1lbW9yeSBhbmQgIUNPTkZJR19QSFlTXzY0QklUIHdlJ2QgcmVwb3J0CiAgICBhbiBlcnJvciBhbmQgaGFuZy4JSW5zdGVhZCBvZiBkb2luZyB0aGF0IHNpbmNlIEREUiBpcyBtYXBwZWQgaW4gdGhlCiAgICBsb3dlc3QgcHJpb3JpdHkgTEFXcyB3ZSBzZXR1cCB0aGUgRERSIGNvbnRyb2xsZXIgYW5kIHRoZSBtYXggYW1vdW50CiAgICBvZiBtZW1vcnkgd2UgcmVwb3J0IGJhY2sgaXMgd2hhdCB3ZSBjYW4gbWFwIChDT05GSUdfTUFYX01FTV9NQVBQRUQpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGQ5NDlhZmYzOGNmYjQzODhjYmQ3Mzg3NmU3N2JjZDA2ZDYwMWYyMApBdXRob3I6IFNyaWthbnRoIFNyaW5pdmFzYW4gPHNyaWthbnRoLnNyaW5pdmFzYW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMSAxNzoxNzozMyAyMDA5IC0wNjAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBQMjAyMAoKICAgIEFkZGVkIHZhcmlvdXMgcDIwMjAgcHJvY2Vzc29yIHNwZWNpZmljIGRldGFpbHM6CiAgICAqIFNWUiBmb3IgcDIwMjAsIHAyMDIwRQogICAgKiBpbW1hcCB1cGRhdGVzIGZvciBMQVdzIGFuZCBERFIgb24gcDIwMjAKICAgICogTEFXIGRlZmluZXMgcmVsYXRlZCB0byBwMjAyMAoKICAgIFNpZ25lZC1vZmYtYnk6IFNyaWthbnRoIFNyaW5pdmFzYW4gPHNyaWthbnRoLnNyaW5pdmFzYW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRyYXZpcyBXaGVhdGxleSA8VHJhdmlzLldoZWF0bGV5QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGNiNjllNGRlODcwMmUxMDgzMjRlMWM0MDM2M2YzMGVmNmYyZTI5MTgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDEwIDE3OjM2OjE1IDIwMDkgLTA2MDAKCiAgICA4NXh4OiBwcmludCBib290IGhlYWRlciBpbmZvIHRvIGRpc3RpbnF1aXNoIDM2LWJpdCBhZGRyIG1hcCBvbiBNUEM4NTcyIERTCgogICAgQWRkZWQgc29tZSBpbmZvIHRoYXQgaXMgcHJpbnRlZCBvdXQgd2hlbiB3ZSBib290IHRvIGRpc3RpcXVpc2ggaWYgd2UKICAgIGJ1aWx0IE1QQzg1NzJEU19jb25maWcgdnMgTVBDODU3MkRTXzM2QklUX2NvbmZpZyBzaW5jZSB0aGV5IGhhdmUKICAgIGRpZmZlcmVudCBhZGRyZXNzIG1hcHMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmZWVkZThiMDcwMTNiMzNmY2E4ZGQyYTkxNmIzYWM4NmJmNGQ0YzBhCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDUgMjA6MTA6MjIgMjAwOCAtMDYwMAoKICAgIEZpeHVwIFNHTUlJIFBIWSBpZHMgaW4gdGhlIGRldmljZSB0cmVlCgogICAgVGhlIGRldmljZSB0cmVlJ3MgUEhZIGFkZHJlc3NlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGlmIHdlJ3JlIHVzaW5nIHRoZQogICAgU0dNSUkgUmlzZXIgQ2FyZC4KCiAgICBUaGUgODU3MiwgODUzNiwgYW5kIDg1NDQgRFMgYm9hcmRzIHdlcmUgbW9kaWZpZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uLgoKICAgIENvZGUgaWRlYSB0YWtlbiBmcm9tIExpdSBZdSA8eXUubGl1QGZyZWVzY2FsZS5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkYzBjZjY4ZjhmMTAxMDQyOTk3ZDc1MTg4MDgxZDg1MjZkNzA1ZWEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTEgMTU6MTA6MzEgMjAwOSAtMDYwMAoKICAgIE1ha2Ugc29tZSBtaW5vciB3aGl0ZXNwYWNlIGNoYW5nZXMgdG8gZWxpbWluYXRlIGxpbmUtd3JhcHBpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWU1Njk4NmEyYjc0ZDE5N2Y1MWVjYTcwZmFkN2I4MzZiMTkwMGM0ZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxMSAxNTowNzoyNCAyMDA5IC0wNjAwCgogICAgQWRkIGV0aF9nZXRfZGV2X2J5X2luZGV4CgogICAgVGhpcyBhbGxvd3MgY29kZSB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGV0aGVybmV0IGRldmljZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjY3MzA1MTIwYWFmMjY4YTYxNDAxMjUzNDY2NzgxNjZkMTRmMWY0NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBGZWIgOSAyMjowMzowNCAyMDA5IC0wNjAwCgogICAgODV4eDogRml4IGJ1ZyBpbiBkZXZpY2UgdHJlZSBzZXR1cCBpbiAzNi1iaXQgcGh5c2ljYWwgY29uZmcKCiAgICBJbiB0aGUgMzYtYml0IHBoeXNpY2FsIGNvbmZpZyBmb3IgTVBDODU3MkRTIHdoZW4gbmVlZCB0aGUgc3RhcnQgYWRkcmVzcwogICAgb2YgbWVtb3J5IGFuZCBpdCBzaXplIHRvIGJlIGtlcHQgaW4gcGh5c18qX3QgaW5zdGVhZCBvZiBhIHVsb25nIHNpbmNlCiAgICB3ZSBzdXBwb3J0ID40RyBvZiBtZW1vcnkgaW4gdGhlIGNvbmZpZyBhbmQgdWxvbmcgY2FudCByZXByZXNlbnQgdGhhdC4KICAgIE90aGVyd2lzZSB3ZSBlbmQgdXAgc2VlaW5nIHRoZSBtZW1vcnkgbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUgcmVwb3J0aW5nCiAgICBiYWNrIHdlIGhhdmUgbWVtb3J5IHN0YXJ0aW5nIEAgMCBhbmQgb2Ygc2l6ZSAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWQ5N2RjZTE4NDQ1ZmYwNWJmMzI2MDk0ZTY5MWEwMWFhOTVhYThkYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBGZWIgOSAyMjowMzowNSAyMDA5IC0wNjAwCgogICAgODV4eDogRml4IGFkZHJlc3MgbWFwIGZvciAzNi1iaXQgY29uZmlnIG9mIE1QQzg1NzJEUwoKICAgIFdoZW4gd2UgaW50cm9kdWNlZCB0aGUgMzYtYml0IGNvbmZpZyBvZiB0aGUgTVBDODU3MkRTIGJvYXJkIHdlIGhhZCB0aGUKICAgIHdyb25nIFBDSSBNRU0gYnVzIGFkZHJlc3MgbWFwLiAgQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlIHRvIHRoZSBhZGRyZXNzCiAgICBtYXAgZXhwb3NlcyBhIHNtYWxsIGlzc3VlIGluIG91ciBkdW1teSByZWFkIG9uIHRoZSBVTEkgYnVzLiAgV2UgbmVlZAogICAgdG8gdXNlIHRoZSBuZXcgbWFwcGluZyBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoYXQgcmVhZCBwcm9wZXJseSBpbiB0aGUKICAgIDM2LWJpdCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmODUyM2NiMDgxNWIyZDNkMmQ3ODBiN2Q0OWNhNjE0MTA1NTU1ZjU4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEZlYiA2IDA5OjU2OjM1IDIwMDkgLTA2MDAKCiAgICA4NXh4OiBGaXggaG93IHdlIG1hcCBERFIgbWVtb3J5CgogICAgUHJldmlvdXNseSB3ZSBvbmx5IGFsbG93ZWQgcG93ZXItb2YtdHdvIG1lbW9yeSBzaXplcyBhbmQgZGlkbnQKICAgIGhhbmRsZSA+Mkcgb2YgbWVtb3J5LiAgTm93IHdlIHdpbGwgbWFwIHVwIHRvIENPTkZJR19NQVhfTUVNX01BUFBFRAogICAgYW5kIHNob3VsZCBwcm9wZXJseSBoYW5kbGUgYW55IHNpemUgdGhhdCB3ZSBjYW4gbWFrZSBpbiB0aGUgVExCcwogICAgd2UgaGF2ZSBhdmFpbGFibGUgdG8gdXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDE1NDJmYmRlZWMwZDFlMmE2ZGYxMzE4OWRmOGRjYjFjZTg4MDJiZTMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDYgMDk6NTY6MzQgMjAwOSAtMDYwMAoKICAgIGZzbC1kZHI6IGlnbm9yZSBtZW1jdGxfaW50bHZfY3RsIHNldHRpbmcgaWYgb25seSBvbmUgRERSIGNvbnRyb2xsZXIKCiAgICBJZiB3ZSBvbmx5IGhhdmUgb25lIGNvbnRyb2xsZXIgd2UgY2FuIGNvbXBsZXRlbHkgaWdub3JlIGhvdwogICAgbWVtY3RsX2ludGx2X2N0bCBpcyBzZXQuICBPdGhlcndpc2Ugb3RoZXIgbGV2ZWxzIG9mIGNvZGUgZ2V0IGNvbmZ1c2VkCiAgICBhbmQgdGhpbmsgd2UgaGF2ZSB0d2ljZSBhcyBtdWNoIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGIyOWRlZTNjOTA2ZTlkYWFmNmJhZjc3NzJkMmUxNWUyNmI4NjM2YjgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDQgMDk6MzU6NTcgMjAwOSAtMDYwMAoKICAgIDg1eHg6IEZvcm1hdCBjcHUgZnJlcSBwcmludGluZyB0byBoYW5kbGUgOCBjb3JlcwoKICAgIE9ubHkgcHJpbnQgNCBjcHUgZnJlcSBwZXIgbGluZS4gIFRoaXMgd2F5IHdoZW4gd2UgaGF2ZSA4IGNvcmVzIGl0cyBhCiAgICBiaXQgbW9yZSByZWFkYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk3MDRmOWNhZjUzZjVjYWU1NDdkOGM1ZTFhZTk0YWE0ZTU3YjE2MGYKQXV0aG9yOiBBYnJhaGFtLCBUaG9tYXMgPHQtYWJyYWhhbUB0aS5jb20+CkRhdGU6CVR1ZSBPY3QgMjggMTY6NTE6MzEgMjAwOCArMDUzMAoKICAgIFVTQjogUmVtb3ZlIExVTiBudW1iZXIgZnJvbSBDREIKCiAgICBUaGUgTFVOIG51bWJlciBpcyBub3QgcGFydCBvZiB0aGUgQ29tbWFuZCBEZXNjcmlwdG9yIEJsb2NrIChDREIpIGZvciBzY3NpIGlucXVpcnksIHJlcXVlc3Qgc2Vuc2UsIHRlc3QgdW5pdCByZWFkeSwgcmVhZCBjYXBhY2l0eSBhbmQgcmVhZDEwIGNvbW1hbmRzLiBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIExVTiBudW1iZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgQ0RCLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgZjNjMGRlNjM2MjUyZjNhMTg2NTRjOGY5YzYzNzBhOTU3NGE3ZTc1NQpBdXRob3I6IEF0aW4gTWFsYXZpeWEgPGF0aW4ubWFsYXZpeWFAZ21haWwuY29tPgpEYXRlOglUdWUgRmViIDMgMTU6MTc6MTAgMjAwOSAtMDUwMAoKICAgIEFkZGVkIHVzYnR0eV9jb25maWd1cmVkKCkgY2hlY2suIEZpeGVkIGF0dHJpYnV0ZShwYWNrZWQpIHdhcm5pbmdzLgoKICAgIFYzOiBGaXhlZCBsaW5lLXdyYXAgcHJvYmxlbSBkdWUgdG8gdXNlciBlcnJvciBpbiBtYWlsIQoKICAgIEFkZGVkIHVzYl9jb25maWd1cmVkKCkgY2hlY2tzIGluIHVzYnR0eV9wdXRzKCkgYW5kIHVzYnR0eV9wdXRjKCkgdG8gZ2V0IGFyb3VuZCBhIGhhbmcKICAgIHdoZW4gdXNiIGlzIG5vdCBjb25uZWN0ZWQgYW5kIHRoZSB1c2VyIGhhcyBzZXQgdXAgbXVsdGktaW8gKHNldGVudiBzdGRvdXQgc2VyaWFsLHVzYnR0eSBldGMpLgogICAgR290IHJpZCBvZiByZWR1bmRhbnQgX19hdHRyaWJ1dGVfXygocGFja2VkKSkgZGlyZWN0aXZlcyB0aGF0IHdlcmUgY2F1c2luZyB3YXJuaW5ncyBmcm9tIGdjYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBdGluIE1hbGF2aXlhIDxhdGluLm1hbGF2aXlhQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGU3ZGUxOGFmZThlY2Y5NmE1MWVmOTgxZDA2MDY2ZWViNmIxMjU0ZTcKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTMgMDk6MjM6MzYgMjAwOSArMDEwMAoKICAgIGkuTVgzMTogU3RhcnQgdGhlIEkyQyBjbG9jayBvbiBkcml2ZXIgaW5pdGlhbGlzYXRpb24KCiAgICBpLk1YMzEgcG93ZXJzIG9uIHdpdGggbW9zdCBjbG9ja3MgcnVubmluZywgc28sIGFmdGVyIGEgcG93ZXIgb24gdGhpcyBleHBsaWNpdAogICAgY2xvY2sgc3RhcnQgdXAgaXMgbm90IHJlcXVpcmVkLiBIb3dldmVyLCBhcyBMaW51eCBib290cyBpdCBkaXNhYmxlcyBtb3N0IGNsb2NrcwogICAgdG8gc2F2ZSBwb3dlci4gVGhpcyBpbmNsdWRlcyB0aGUgSTJDIGNsb2NrLiBJZiB3ZSB0aGVuIHNvZnQgcmVib290IGZyb20gTGludXgKICAgIHRoZSBJMkMgY2xvY2sgc3RheXMgb2ZmLiBUaGlzIGJyZWFrcyB0aGUgcGh5Y29yZSwgd2hpY2ggaGFzIGl0cyBlbnZpcm9ubWVudCBpbgogICAgSTJDIEVFUFJPTS4gRml4IHRoZSBwcm9ibGVtIGJ5IGV4cGxpY2l0bHkgc3RhcnRpbmcgdGhlIGNsb2NrIGluIEkyQyBkcml2ZXIKICAgIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgQWNrLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDE1MjA4YWM5ZWFlMWMzNDBjNGJjMTFmNzBjYmY1YzlkYTc4YTU3YmEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBGZWIgMTEgMjA6MzY6MTQgMjAwOSAtMDUwMAoKICAgIGkyYy5oOiBkcm9wIGkyY19yZWdfe3JlYWQsIHdyaXRlfSBoYWNrIGZvciBCbGFja2ZpbiBwYXJ0cwoKICAgIFRoZSBCbGFja2ZpbiBpMmMgZHJpdmVyIGhhcyBiZWVuIHJld3JpdHRlbiB0aHVzIHRoZSBzcGVjaWFsIGlmZGVmcyBpbiB0aGUKICAgIGNvbW1vbiBjb2RlIGFyZSBubyBsb25nZXIgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjMmQ5YmVmYTBiNDY5NWI4OTQ3NmZiNWQyNTk3NDJjMDlhZmUyNDNmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTIgMDg6MDg6NTQgMjAwOSArMDEwMAoKICAgIDgyeHgsIG1nY29nZTogZml4IGNvbXBpbGUgZXJyb3IKCiAgICBXaXRoIGFjdHVhbCB1LWJvb3QgY29tcGlsaW5nIHRoZSBtZ2NvZ2UgcG9ydCBmYWlscywgYmVjYXVzZQogICAgc2luY2UgY29tbWl0IGJhNzA1YjViMWE5N2I0NzM4OGVkNDg4NThiZWY2YmY3YjZiZmNkNTYgaXQgaXMKICAgIG5lY2Vzc2FyeSB0byBkZWZpbmUgQ09ORklHX05FVF9NVUxUSS4KCiAgICBTZWVtcyB0byBtZSB0aGUgbWdjb2dlIHBvcnQgaXMgdGhlIG9ubHkgYWN0dWFsIGV4aXN0aW5nIDgyNjAKICAgIHBvcnQgd2hvIHVzZXMgQ09ORklHX0VUSEVSX09OX1NDQywgc28gbm8gb3RoZXIgODI2MCBwb3J0IG5lZWRlZAogICAgdG8gYmUgZml4ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOWNhY2Y0ZmM0MDM1ZWFiZTlkOWFlMmE5YTE4OGM1MWE4MDI3YzkxZQpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CU1vbiBGZWIgOSAwODoxODozNCAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBBZGQgUkVBRE1FIGVudHJ5IGZvciBDT05GSUdfUENJX0RJU0FCTEVfUENJRQoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzM2OWYwZTM4NGUyYTgzMWJlMTNhNzc3M2E1ODI0MmM5MTczZmE5YwpBdXRob3I6IENhcm9seW4gU21pdGggPGNhcm9seW4uc21pdGhAdGVrdHJvbml4LmNvbT4KRGF0ZToJVGh1IEZlYiAxMiAwNjoxMzo0NCAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBGaXggaW5pdGlhbGl6YXRpb24gb2YgdGhlIFNEUkFNX0NPRFQgcmVnaXN0ZXIKCiAgICBUaGlzIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgU0RSQU1fQ09EVCByZWdpc3RlciBpbiB0aGUgcHBjNHh4IEREUjIKICAgIGluaXRpYWxpemF0aW9uIGNvZGUuIEl0IGFsc28gcmVtb3ZlcyB1c2Ugb2YgdGhlIFNEUkFNX0NPRFRfRkVFREJBQ0tfUkNWX1NJTkdMRV9FTkQKICAgIGFuZCBTRFJBTV9DT0RUX0ZFRURCQUNLX0RSVl9TSU5HTEVfRU5EICNkZWZpbmUncyBzaW5jZSB0aGV5IGFyZSByZXNlcnZlZCBiaXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IENhcm9seW4gU21pdGggPGNhcm9seW4uc21pdGhAdGVrdHJvbml4LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZWYwZWZhZjJmYTU1ZDFmMjUwNjZjZmIwMmJkOTg0YzI3ZjljYTMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDExIDA5OjI5OjMzIDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIHdpdGggYm9hcmRfZXRoX2luaXQoKSB2cyBjcHVfZXRoX2luaXQoKSBvbiBBTUNDIGJvYXJkcwoKICAgIFNvbWUgQU1DQyBldmFsIGJvYXJkcyBkbyBoYXZlIGEgYm9hcmRfZXRoX2luaXQoKSBmdW5jdGlvbiBjYWxsaW5nCiAgICBwY2lfZXRoX2luaXQoKS4gVGhlc2UgYm9hcmRzIG5lZWQgdG8gY2FsbCBjcHVfZXRoX2luaXQoKSBleHBsaWNpdGx5IG5vdwogICAgd2l0aCB0aGUgbmV3IGV0aF9pbml0IHJld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzY0NTAxMmFlZmViYjMwMWU2OTA3ZDE0OGM2YzhlZmFjYWMwNDlkNApBdXRob3I6IEFkYW0gR3JhaGFtIDxhZ3JhaGFtQGFtY2MuY29tPgpEYXRlOglNb24gRmViIDkgMTM6MTg6MTIgMjAwOSAtMDgwMAoKICAgIHBwYzR4eDogQXV0b2NhbGlicmF0aW9uIGNhbiBzZXQgUkRDQyB0byBvdmVyIGFnZ3Jlc3NpdmUgdmFsdWUuCgogICAgVGhlIGNyaXRlcmlhIG9mIHRoZSBBTUNDIFNEUkFNIENvbnRyb2xsZXIgRERSIGF1dG9jYWxpYnJhdGlvbgogICAgVS1Cb290IGNvZGUgaXMgdG8gcGljayB0aGUgbGFyZ2VzdCBwYXNzaW5nIHdyaXRlL3JlYWQvY29tcGFyZQogICAgd2luZG93IHRoYXQgYWxzbyBoYXMgdGhlIHNtYWxsZXN0IFNEUkFNX1JEQ0MuW1JEU1NdIFJlYWQgU2FtcGxlCiAgICBDeWNsZSBTZWxlY3QgdmFsdWUuCgogICAgT24gc29tZSBLaWxhdWVhIGJvYXJkcyB0aGUgRERSIGF1dG9jYWxpYnJhdGlvbiBhbGdvcml0aG0gY2FuCiAgICBmaW5kIGEgbGFyZ2UgcGFzc2luZyB3cml0ZS9yZWFkL2NvbXBhcmUgd2luZG93IHdpdGggYSBzbWFsbAogICAgU0RSQU1fUkRDQy5bUkRTU10gYWdncmVzc2l2ZSB2YWx1ZSBvZiBSZWFkIFNhbXBsZSBDeWNsZSBTZWxlY3QKICAgIHZhbHVlICJUMSBTYW1wbGUiLgoKICAgIFRoaXMgU0RSQU1fUkRDQy5bUkRTU10gUmVhZCBTYW1wbGUgQ3ljbGUgU2VsZWN0IHZhbHVlIG9mCiAgICAiVDEgU2FtcGxlIiBwcm92ZXMgdG8gYmUgdG8gYWdncmVzc2l2ZSB3aGVuIGxhdGVyIG9uIFUtQm9vdAogICAgcmVsb2NhdGVzIGludG8gRERSIG1lbW9yeSBhbmQgZXhlY3V0ZXMuCgogICAgVGhlIG1lbW9yeSB0cmFjZXMgb24gdGhlIEtpbGF1ZWEgYm9hcmQgYXJlIHNob3J0IHNvIG9uIHNvbWUKICAgIEtpbGF1ZWEgYm9hcmRzIHRoZSBTRFJBTV9SRENDLltSRFNTXSBSZWFkIFNhbXBsZSBDeWNsZSBTZWxlY3QKICAgIHZhbHVlIG9mICJUMSBTYW1wbGUiIHNob3dzIHVwIGFzIGEgcG90ZW50aWFsbHkgdmFsaWQgdmFsdWUgZm9yCiAgICB0aGUgRERSIGF1dG9jYWxpYnJhdGlpb24gYWxnb3JpdGhtLgoKICAgIFRoZSBmaXggaXMgdG8gZGVmaW5lIGEgd2VhayBkZWZhdWx0IGZ1bmN0aW9uIHdoaWNoIHByb3ZpZGVzCiAgICB0aGUgbWluaW11bSBTRFJBTV9SRENDLltSRFNTXSBSZWFkIFNhbXBsZSBDeWNsZSBTZWxlY3QgdmFsdWUKICAgIHRvIGFjY2VwdCBmb3IgRERSIGF1dG9jYWxpYnJhdGlvbi4JVGhlIGRlZmF1bHQgd2lsbCBiZSB0aGUKICAgICJUMiBTYW1wbGUiIHZhbHVlLglBIGJvYXJkIGRldmVsb3BlciB3aG8gaGFzIGEgd2VsbCBkZWZpbmVkCiAgICBib2FyZCBhbmQgY2hvb3NlcyB0byBiZSBtb3JlIGFnZ3Jlc3NpdmUgY2FuIGFsd2F5cyBwcm92aWRlCiAgICB0aGVpciBvd24gYm9hcmQgc3BlY2lmaWMgc3RyaW5nIGZ1bmN0aW9uIHdpdGggdGhlIG1vcmUKICAgIGFnZ3Jlc3NpdmUgIlQxIFNhbXBsZSIgdmFsdWUgb3Igc3RpY2sgd2l0aCB0aGUgZGVmYXVsdAogICAgbWluaW11bSBTRFJBTV9SRENDLltSRFNTXSB2YWx1ZSBvZiAiVDIiLgoKICAgIEFsc28gcHV0IGluIGEgYXV0b2NhbGlicmF0aW9uIGxvb3AgZml4IGZvciBjYXNlIHdoZXJlIGN1cnJlbnQKICAgIHdyaXRlL3JlYWQvY29tcGFyZSBwYXNzaW5nIHdpbmRvdyBzaXplIGlzIHRoZSBzYW1lIGFzIGEgcHJpb3IKICAgIHdpbmRvdyBzaXplLCB0aGVuIGluIHRoaXMgY2FzZSBjaG9vc2UgdGhlIHdyaXRlL3JlYWQvY29tcGFyZQogICAgcmVzdWx0IHRoYXQgaGFzIHRoZSBhc3NvY2lhdGVkIHNtYWxsZXN0IFJEQ0MgVC1TYW1wbGUgdmFsdWUuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmVkZTg3OWZjYjY3NDcwNTI0ODQ3YmI0ZmM4OTcyNjUxYmI0NjE4NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAxMSAwOTozNzoxMiAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIENPTkZJR19NQVhfTUVNX01BUFBFRCBpbiBpbmNsdWRlL2FzbS1wcGMvY29uZmlnLmgKCiAgICBDT05GSUdfU0RSQU1fUFBDNHh4X0lCTV9ERFIyIGlzIG5vdCBzZXQgd2hlbiBpbmNsdWRlL2FzbS1wcGMvY29uZmlnLmggaXMKICAgIGluY2x1ZGVkLiBTbyBmb3Iga2F0bWFpLCBDT05GSUdfTUFYX01FTV9NQVBQRUQgd2lsbCBnZXQgc2V0IHRvIDI1Nk1CLgoKICAgIEl0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UgdG8gc2V0IENPTkZJR19NQVhfTUVNX01BUFBFRCB0byAyR0IgZm9yIGFsbCBQUEM0eHgKICAgIGJvYXJkcyByaWdodCBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxNWM2NTE1ZmMyM2Y4M2M1MWYzZGUyNzJjYTIzZDg2YjgwZTgxYjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDEyIDAwOjA4OjM5IDIwMDkgKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWZjNTZiOTA3ZDk5MzI2MGI5ZWJkYjEzN2FmNjZmZTY5NjM1YWU5ZQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBKYW4gMzAgMTY6MzY6NDAgMjAwOSAtMDYwMAoKICAgIEFkZCBmZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0CgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCAyNTVkMjhlMTY0MmU4ZmMzMmE2NzUzMjI2YmUxYTk2YjQ4MWNlMTExCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTAgMDk6MzI6MzggMjAwOSArMDEwMAoKICAgIDh4eCBzZXJpYWwsIHNtYzogQ29kaW5nLVN0eWxlIGNsZWFudXAgc2VyaWFsIFNNQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyYjNmMTJjMjE0MzQ2NTA4Y2FlM2YxMjQ1ODA4YzFjYTU0YzgxZmRkCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTAgMDk6MzE6NDcgMjAwOSArMDEwMAoKICAgIDh4eCBzZXJpYWwsIHNtYzogYWRkIGNvbmZpZ3VyYWJsZSBTTUMgUnggYnVmZmVyIGxlbgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gQ09ORklHX1NZU19TTUNfUlhCVUZMRU4uCiAgICBXaXRoIHRoaXMgb3B0aW9uIGl0IGlzIHBvc3NpYmxlIHRvIGFsbG93IHRoZSByZWNlaXZlCiAgICBidWZmZXIgZm9yIHRoZSBTTUMgb24gOHh4IHRvIGJlIGdyZWF0ZXIgdGhlbiAxLiBJbiBjYXNlCiAgICBDT05GSUdfU1lTX1NNQ19SWEJVRkxFTiA9PSAxIHRoaXMgZHJpdmVyIHdvcmtzIGFzIHRoZQogICAgb2xkIHZlcnNpb24uCgogICAgV2hlbiBkZWZpbmluZyBDT05GSUdfU1lTX1NNQ19SWEJVRkxFTiBhbHNvCiAgICBDT05GSUdfU1lTX01BWElETEUgbXVzdCBiZSBkZWZpbmVkIHRvIHNldHVwIHRoZSBtYXhpbXVtCiAgICBpZGxlIHRpbWVvdXQgZm9yIHRoZSBTTUMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZTkxNWY4YmI3M2Q3NDE3OGJjMjFkM2E0NTc5NTk4ODNiMWFmZDFjMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEZlYiA1IDIxOjA0OjM2IDIwMDkgLTA1MDAKCiAgICBjb21tb24ve2h1c2gsIGtnZGIsIHNlcmlhbH0uYzogYnVpbGQgYnkgQ09CSlMtJCguLi4pIGluIE1ha2VmaWxlCgogICAgTW92ZSBnbG9iYWwgJyNpZmRlZiBDT05GSUdfeHh4IC4uLi4gI2VuZGlmJyBvdXQgb2YgdGhlIC5jIGZpbGVzIGFuZCBpbnRvCiAgICB0aGUgQ09CSlMtJChDT05GSUdfeHh4KSBpbiB0aGUgTWFrZWZpbGUuICBBbHNvIGRlbGV0ZSB1bnVzZWQgdmFyIGluIGtnZGIKICAgIGNvZGUgaW4gdGhlIHByb2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGFiNzZlOTg0OGExZjRkYjY0ZDE0MjMzNzQxZDczOWEzYjMzNjBjOTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBGZWIgNSAyMTowNDo1MCAyMDA5IC0wNTAwCgogICAgYnppcDI6IG1vdmUgaWZkZWYgaGFuZGxpbmcgdG8gTWFrZWZpbGUgQ09CSlMtJCguLi4pCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGFlMGIwNWRmMDRlMWNjNjVjNWFkMTljY2QzNjJmNGJlODJkZjczMTYKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVRodSBGZWIgNSAyMjoxODowMiAyMDA5IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgZGFtYWdlOiBkb3VibGUgc3BhY2UgY2hhbmdlZCB0byBhIHRhYgoKICAgIEF0IHNvbWUgcG9pbnQgYW4gaW50ZW50aW9uYWwgZG91YmxlIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIHNlbnRlbmNlCiAgICBnb3QgY2hhbmdlZCBpbnRvIGEgdGFiIGluIHRoZSBHUEwgaGVhZGVyIGxpbmU6CiAgICAgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgZGFtYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNGY5NzU2NzhkZTk5NWI1NTc0OWQ1ZTg0NTkwYzI2ODk3MmE3YzgzNQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgRmViIDEwIDA5OjUzOjI5IDIwMDkgKzAxMDAKCiAgICBjZmk6IG1ha2UgZmxhc2hfZ2V0X2luZm8oKSBub24gc3RhdGljCgogICAgSWYgb24geW91ciBib2FyZCBpcyBtb3JlIHRoYW4gb25lIGZsYXNoLCB5b3UgbXVzdCBrbm93CiAgICB0aGUgc2l6ZSBvZiBldmVyeSBzaW5nbGUgZmxhc2gsIGZvciBleGFtcGxlLCBmb3IgdXBkYXRpbmcKICAgIHRoZSBEVFMgYmVmb3JlIGJvb3RpbmcgTGludXguIFNvIG1ha2UgdGhpcyBmdW5jdGlvbgogICAgZmxhc2hfZ2V0X2luZm8oKSBleHRlcm4sIGFuZCB5b3UgY2FuIGhhdmUgYWxsIGluZm8KICAgIGFib3V0IHlvdXIgZmxhc2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NjMyMWZjMTEyOGM5M2ExMGFjNGFmYjlkMzE3YjBkZjhlY2UwZjllCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEZlYiA1IDIzOjU4OjI1IDIwMDkgLTA4MDAKCiAgICBuZXQ6IHJlbW92ZWQgYm9hcmQtc3BlY2lmaWMgQ09ORklHcyBmcm9tIE1QQzV4eHggRkVDIGRyaXZlcgoKICAgIEFkZGVkIG5ldyBDT05GSUcgb3B0aW9ucyBmb3IgdGhlIHRocmVlIHR5cGUgb2YgTUFDLVBIWSBpbnRlcmNvbm5lY3QgYW5kCiAgICBhcHBsaWVkIHRoZW0gYWxsIHJlbGV2YW50IGJvYXJkIGNvbmZpZyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNjM4ZWQzZTI5NmU3MGZhYjI4NmQxNTdiN2FkZWRhYWE0YTA5YTQ3NApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEZlYiA1IDIxOjA0OjQ3IDIwMDkgLTA1MDAKCiAgICBuZXQvc250cC5jOiBtb3ZlIGlmZGVmIGludG8gTWFrZWZpbGUgQ09CSlMtJCguLi4pCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5ZTViZTgyMTRiYTc1MTQzNmU1N2MzYmUwNDRiZjZkY2NiOWE2Njg3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDMgMTg6MjY6NDEgMjAwOSAtMDYwMAoKICAgIHRzZWM6IEZpeCBhIGJ1ZyBpbiBzb2Z0LXJlc2V0dGluZwoKICAgIFNPRlRfUkVTRVQgbXVzdCBiZSBhc3NlcnRlZCBmb3IgYXQgbGVhc3QgMyBUWCBjbG9ja3MuICBVc3VhbGx5LCB0aGF0J3MgYWJvdXQgMzAKICAgIGNsb2NrIGN5Y2xlcywgc28gaXQncyBiZWVuIG1vc3RseSB3b3JraW5nLglCdXQgd2UgaGFkIG5vIGd1YXJhbnRlZSwgYW5kIGF0CiAgICBzbG93ZXIgYml0cmF0ZXMsIGl0J3MganVzdCBvdmVyIGEgbWljcm9zZWNvbmQgKG92ZXIgMTAwMCBjbG9jayBjeWNsZXMpLiAgVGhpcwogICAgZW5mb3JjZXMgYSAyIG1pY3Jvc2Vjb25kIGdhcCBiZXR3ZWVuIGFzc2VydGlvbiBhbmQgZGVhc3NlcnRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAwOWZjYzhiNWQ4NjkwM2I3NmU3ZTRkMWQ4NzlkNmY0YmNhMjVjMjdiCkF1dGhvcjogU2ltb24gTXVudG9uIDxzaW1vbkBuaWRvcmFuLm01ZGF0YS5jb20+CkRhdGU6CU1vbiBGZWIgMiAwOTo0NDowOCAyMDA5ICswMDAwCgogICAgRml4IDEwME1icyBldGhlcm5ldCBvcGVyYXRpb24gb24gc2g3NzYzIGJhc2VkIGJvYXJkcwoKICAgIDEwME1icyBldGhlcm5ldCBkb2VzIG5vdCB3b3JrIG9uIHNoNzc2MyBjaGlwcyBkdWUgdG8gdGhlIHdyb25nIHZhbHVlIGJlaW5nCiAgICB1c2VkIGluIHRoZSBHRUNNUiByZWdpc3Rlci4gRm9sbG93aW5nIGRpZmYgZml4ZXMgdGhlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBNdW50b24JPHNpbW9uQG5pZG9yYW4ubTVkYXRhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMmJjMmE4ZjZkYzlmZGRhNDY1MzE3ZGE1OTQ3NGU2NWMyNGEzOThhMgpBdXRob3I6IGtzaUBrb2k4Lm5ldCA8a3NpQGtvaTgubmV0PgpEYXRlOglGcmkgRmViIDYgMTY6Mjc6NTUgMjAwOSAtMDgwMAoKICAgIEZpeCBNUEM4MjYwIHdpdGggZXRoZXJuZXQgb24gU0NDCgogICAgVGhpcyBmaXhlcyBNUEM4MjYwIGNvbXBpbGF0aW9uIHdpdGggZXRoZXJuZXQgb24gU0NDLiBQcm9iYWJseSB3YXMgYQogICAgdHlwbyBvciBzb21ldGhpbmcuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYWU1ZDhmNjEzY2VjMWE2YWY3YmYxZmM5YzQyYTNiODU2ZjAyMTAyMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDMwIDEyOjU2OjE1IDIwMDkgKzAxMDAKCiAgICA4Mnh4IHNlcmlhbCwgc21jOiBDb2RpbmctU3R5bGUgY2xlYW51cCBzZXJpYWwgU01DIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGM5MmZhYzkxYTA2YzYwZjg3NGM2MDVlM2NhODBkZDQwN2MxY2FhYTcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAzMCAxMjo1NTozOCAyMDA5ICswMTAwCgogICAgODJ4eCBzZXJpYWwsIHNtYzogYWRkIGNvbmZpZ3VyYWJsZSBTTUMgUnggYnVmZmVyIGxlbgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gQ09ORklHX1NZU19TTUNfUlhCVUZMRU4uCiAgICBXaXRoIHRoaXMgb3B0aW9uIGl0IGlzIHBvc3NpYmxlIHRvIGFsbG93IHRoZSByZWNlaXZlCiAgICBidWZmZXIgZm9yIHRoZSBTTUMgb24gODJ4eCB0byBiZSBncmVhdGVyIHRoZW4gMS4gSW4gY2FzZQogICAgQ09ORklHX1NZU19TTUNfUlhCVUZMRU4gPT0gMSB0aGlzIGRyaXZlciB3b3JrcyBhcyB0aGUKICAgIG9sZCB2ZXJzaW9uLgoKICAgIFdoZW4gZGVmaW5pbmcgQ09ORklHX1NZU19TTUNfUlhCVUZMRU4gYWxzbwogICAgQ09ORklHX1NZU19NQVhJRExFIG11c3QgYmUgZGVmaW5lZCB0byBzZXR1cCB0aGUgbWF4aW11bQogICAgaWRsZSB0aW1lb3V0IGZvciB0aGUgU01DLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGJjZWQ3Y2NlZmEwODUxMmM1NGE2ZDE0NjY1OGZmN2RiYzMzZDVkZmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDYgMDg6MDg6MDYgMjAwOSAtMDYwMAoKICAgIHBwYzogRml4IHJvbGwgb3ZlciBidWcgaW4gZmx1c2hfY2FjaGUoKQoKICAgIElmIHdlIGNhbGwgZmx1c2hfY2FjaGUoMHhmZmZmZjAwMCwgMHgxMDAwKSBpdCB3b3VsZCBuZXZlcgogICAgdGVybWluYXRlIHRoZSBsb29wIHNpbmNlIGVuZCA9IDB4ZmZmZmZmZmYgYW5kIHdlJ2Qgcm9sbCBvdmVyCiAgICBvdXIgY291bnRlciBmcm9tIDB4ZmZmZmZlMCB0byAwIChhc3N1bWluZyBhIDMyLWJ5dGUgY2FjaGUgbGluZSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg3YzkwNjM5NjM1NjFkM2QwMTA2NGJlMzRkMGMzMDg1NWE1NjU4N2IKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgRmViIDUgMjA6NDA6NTggMjAwOSAtMDYwMAoKICAgIHBwYzogTW92ZSBDT05GSUdfTUFYX01FTV9NQVBQRUQgdG8gY29tbW9uIGNvbmZpZy5oCgogICAgTW92ZWQgQ09ORklHX01BWF9NRU1fTUFQUEVEIHRvIHRoZSBhc20vY29uZmlnLmggc28gaXRzIGtlcHQgY29uc2lzdGVudAogICAgYmV0d2VlbiB0aGUgdHdvIGN1cnJlbnQgdXNlcnMgKGxpYl9wcGMvYm9hcmQuYywgNDR4IFNQRCBERFIyKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0N2Q0MWNjM2ExMWEwM2M2ZDU2MTQ2ZDA1NjE0NWRmNzNmNDdlYjUwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEZlYiA1IDIwOjQwOjU3IDIwMDkgLTA2MDAKCiAgICBBZGQgYW4gYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGNvbmZpZy5oIGZvciBjb21tb24gZGVmaW5lcwoKICAgIFdlIGhhdmUgY29tbW9uIGRlZmluZXMgdGhhdCB3ZSBkdXBsaWNhdGUgaW4gdmFyaW91cyB3YXlzLiAgSGF2aW5nIGFuCiAgICBhcmNoIHNwZWNpZmljIGNvbmZpZy5oIGdpdmVzIHVzIGEgY29tbW9uIGxvY2F0aW9uIGZvciB0aG9zZSBkZWZpbmVzLgoKICAgIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcmVwbGFjZSB0aGlzIHdoZW4gd2UgaGF2ZSBwcm9wZXIKICAgIEtjb25maWcgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRjNzhkNGE2YzAxNjIxNzIxYjczMjQxOGUxYzZkYTY4NGE1NmJiYjEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo1NiAyMDA5IC0wNjAwCgogICAgbXBjODY0MWhwY246IENoYW5nZSBQQ0kgTUVNIHBjaSBidXMgYWRkcmVzcwoKICAgIE5vdyB0aGF0IHRoZSByZXN0IG9mIHUtYm9vdCBjYW4gc3VwcG9ydCBpdCwgY2hhbmdlIHRoZSBQQ0kgYnVzCiAgICBhZGRyZXNzIG9mIHRoZSBQQ0kgTUVNIHJlZ2lvbnMgZnJvbSAweDgwMDAwMDAwIHRvIDB4YzAwMDAwMDAsCiAgICBhbmQgdXNlIHRoZSBzYW1lIGJ1cyBhZGRyZXNzIGZvciBib3RoIFBDSTEgYW5kIFBDSTIuICBUaGlzIHdpbGwKICAgIG1heGltaXplIHRoZSBhbW91bnQgb2YgUENJIGFkZHJlc3Mgc3BhY2UgbGVmdCBvdmVyIHRvIG1hcCBSQU0KICAgIG9uIHN5c3RlbXMgd2l0aCBsYXJnZSBhbW91bnRzIG9mIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTc4NWRiZWVkNDM1OTllZWQxZDg4NzU2NzNjOTY5MTJjZDc3MDE0MQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAzIDE4OjEwOjU1IDIwMDkgLTA2MDAKCiAgICBkcml2ZXJzL2Jsb2NrL2FoY2k6IEZpeCBwY2kgbWFwcGluZyBidWcKCiAgICBUaGUgY29kZSBhc3N1bWVzIHRoYXQgdGhlIHBjaSBidXMgYWRkcmVzcyBhbmQgdGhlIHZpcnR1YWwKICAgIGFkZHJlc3MgdXNlZCB0byBhY2Nlc3MgYSByZWdpb24gYXJlIHRoZSBzYW1lLCBidXQgdGhleSBtaWdodAogICAgbm90IGJlLiAgRml4IHRoaXMgYXNzdW1wdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDU5MWE4MGU3NDA5MWU3YTA2NThkMTY1NzIxZTZjN2RlMmVmMGJjZApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAzIDE4OjEwOjU0IDIwMDkgLTA2MDAKCiAgICBNUEM4NjQxSFBDTjogRW5hYmxlIENPTkZJR19BRERSX01BUAoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0OWY0NmYzYmYwOGFhZjdiMWRiMTMxYTEwODJmMWU2MDNiYjdhOTRiCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDMgMTg6MTA6NTMgMjAwOSAtMDYwMAoKICAgIG1wYzg2NDFocGNuOiBDbGVhbiB1cCBQQ0kgbWFwcGluZyBjb25jZXB0cwoKICAgIENsZWFuIHVwIFBDSSBtYXBwaW5nIGNvbmNlcHRzIGluIHRoZSA4NjQxIGNvbmZpZyAtIHJlbmFtZSBfQkFTRQogICAgdG8gX0JVUywgYXMgaXQncyBhY3R1YWxseSBhIFBDSSBidXMgYWRkcmVzcywgc2VwYXJhdGUgdmlydHVhbAogICAgYW5kIHBoeXNpY2FsIGFkZHJlc3NlcyBpbnRvIF9WSVJUIGFuZCBfUEhZUywgYW5kIHVzZSBlYWNoCiAgICBhcHBvcHJpYXRlbHkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGM5MzE1ZTZiNGYyNDQ5ODFkZTBiMmVhYWEyOWE3ODM4YTE2NWI0OTQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo1MiAyMDA5IC0wNjAwCgogICAgbXBjODZ4eDogQWRkIHN1cHBvcnQgdG8gcG9wdWxhdGUgYWRkciBtYXAgYmFzZWQgb24gQkFUcwoKICAgIElmIENPTkZJR19BRERSX01BUCBpcyBlbmFibGVkLCB1cGRhdGUgdGhlIGFkZHJlc3MgbWFwCiAgICB3aGVuZXZlciB3ZSB3cml0ZSBhIGJhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDM1YWU1YTkzODY3OWJkN2UxODE2N2ZhZjc5ZDBmYjNjNjYzOWI1MQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAzIDE4OjEwOjUxIDIwMDkgLTA2MDAKCiAgICBwb3dlcnBjOiBNb3ZlIGR1cGxpY2F0ZWQgQkFUIGRlZmluZXMgdG8gbW11LmgKCiAgICBUaGUgQkFUIGZpZWxkcyBhcmUgYXJjaGl0ZWN0ZWQ7IHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhlc2UgdG8gYmUgaW4KICAgIGNwdS1zcGVjaWZpYyBmaWxlcy4gIERyb3AgdGhlIGR1cGxpY2F0aW9uIGFuZCBtb3ZlIHRoZXNlIHRvCiAgICBpbmNsdWRlL2FzbS1wcGMvbW11LmguICBBbHNvLCByZW1vdmUgdGhlIEJMX3h4eCBkZWZpbmVzIHRoYXQgd2VyZSBvbmx5CiAgICB1c2VkIGJ5IHRoZSBhbGFza2EgYm9hcmQsIGFuZCBzd2l0Y2ggdG8gdXNpbmcgdGhlIEJBVFVfQkxfeHh4IGRlZmluZXMKICAgIHVzZWQgYnkgYWxsIHRoZSBvdGhlciBib2FyZHMuICBUaGUgQkxfIGRlZmluZXMgcHJldmlvdXNseSBpbiB1c2UKICAgIGhhZCB0byBiZSBzaGlmdGVkIGludG8gdGhlIHByb3BlciBwb3NpdGlvbiBmb3IgdXNlLCB3aGljaCB3YXMgaW5lZmZpY2llbnQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDZlNjFmYWU0ZDM2MGExMzgwYjYzZTdkMDA3YjMxNDc3ZTM2NmJjY2UKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo1MCAyMDA5IC0wNjAwCgogICAgZHJpdmVycy9wY2k6IENyZWF0ZSBwY2lfbWFwX2JhciBmdW5jdGlvbgoKICAgIEl0IGlzIG5vIGxvbmdlciBhbHdheXMgdHJ1ZSB0aGF0IHRoZSBwY2kgYnVzIGFkZHJlc3MgY2FuIGJlCiAgICB1c2VkIGFzIHRoZSB2aXJ0dWFsIGFkZHJlc3MgZm9yIHBjaSBhY2Nlc3Nlcy4gIHBjaV9tYXBfYmFyKCkKICAgIGlzIGNyZWF0ZWQgdG8gcmV0dXJuIHRoZSB2aXJ0dWFsIGFkZHJlc3MgZm9yIGEgcGNpIHJlZ2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmVjY2EzNDAxNzc1YjEyNWMzYjlmZjY1NzY2YmVmYjIzOTg5NDE0YgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAzIDE4OjEwOjQ5IDIwMDkgLTA2MDAKCiAgICBtcGM4NjQxaHBjbjogU2V0IHVwIG91dGJvdW5kIHBjaSB3aW5kb3dzIGJlZm9yZSBpbmJvdW5kCgogICAgQmVjYXVzZSB0aGUgaW5ib3VuZCBwY2kgd2luZG93cyBhcmUgbWFwcGVkIGdlbmVyb3VzbHksIHNldCB1cAogICAgdGhlIG1vcmUgc3BlY2lmaWMgb3V0Ym91bmQgd2luZG93cyBmaXJzdC4gIFRoaXMgd2F5LCB3aGVuIHdlCiAgICBzZWFyY2ggdGhlIHBjaSByZWdpb25zIGZvciBzb21ldGhpbmcsIHdlIHdpbGwgaGl0IG9uIHRoZSBtb3JlCiAgICBzcGVjaWZpYyByZWdpb24uICBUaGlzIGNhbiBhY3R1YWxseSBiZSBhIHByb2JsZW0gb24gc3lzdGVtcwogICAgd2l0aCBsYXJnZSBhbW91bnRzIG9mIFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYjgxYjc3M2VhZDA2ODcxMTRkYzhhODAwZjk5ZWE2ZTUwNDQ0NzczOQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEZlYiAyIDE2OjM0OjUyIDIwMDkgLTA2MDAKCiAgICBtcGM4NjQxaHBjbjogVXNlIHBoeXNpY2FsIGFkZHJlc3MgaW4gZmxhc2ggYmFua3MgZGVmaW50aW9uCgogICAgSWYgdGhlIFZBIGFuZCBQQSBvZiB0aGUgZmxhc2ggYXJlbid0IHRoZSBzYW1lLCB0aGUgYmFua3MgbGlzdAogICAgc2hvdWxkIGJlIGluaXRpYWxpemVkIHRvIGhvbGQgdGhlIHBoeXNpY2FsIGFkZHJlc3MuICBDb3JyZWN0IHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkMTlmNmM4Y2JlNzFiOWU2ZDhjNmJkNjc0MmVkMjU1MWU5MTg4NzAKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAxMCAwMDoyMjozMSAyMDA5ICswMTAwCgogICAgcW9uZzogc3VwcG9ydCBmb3IgRGF2ZS9ERU5YIFFvbmdFVkItTElURSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBEYXZlL0RFTlggUW9uZ0VWQi1MSVRFIGkuTVgzMS1iYXNlZCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjJjYmM0MDhmNTJmYzlhNWViODQ5ZTBiODgyYzUwNDc4MGM5ZDE4MwpBdXRob3I6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgpEYXRlOglNb24gRmViIDkgMTg6NDU6MjggMjAwOSArMDEwMAoKICAgIGRuZXQ6IGRyaXZlciBmb3IgRGF2ZSBETkVUIGV0aGVybmV0IGNvbnRyb2xsZXIKCiAgICBEcml2ZXIgZm9yIERhdmUgRE5FVCBldGhlcm5ldCBjb250cm9sbGVyICh1c2VkIG9uIERhdmUvREVOWAogICAgUW9uZ0VWQi1MSVRFIGJvYXJkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDJkNDNlODczYTI5Y2E0OTU5YmE2YTMwZmM3ZmIzOTZkM2ZkMGRjY2YKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDYgMDk6NDk6MzIgMjAwOSAtMDYwMAoKICAgIHBjaTogZ2l2ZSBwcmVmZXJlbmNlIHRvIG5vbi1QQ0lfUkVHSU9OX1NZU19NRU1PUlkgcmVnaW9ucyB3aGVuIG1hdGNoaW5nCgogICAgV2hlbiB3ZSBzZWFyY2ggZm9yIGFuIGFkZHJlc3MgbWF0Y2ggaW4gcGNpX2hvc2Vfe3BoeXNfdG9fYnVzLGJ1c190b19waHlzfQogICAgd2Ugc2hvdWxkIGdpdmUgcHJlZmVyZW5jZSB0byBtZW1vcnkgcmVnaW9ucyB0aGF0IGFyZW4ndCBzeXN0ZW0gbWVtb3J5LgoKICAgIEl0cyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUgb3ZlciBtYXBwZWQgc3lzdGVtIG1lbW9yeSBpbiB0aGUgcmVnaW9ucyBhbmQKICAgIHdlIHdhbnQgdG8gYXZvaWQgZGVwZW5kaW5nIG9uIHRoZSBvcmRlciBvZiB0aGUgcmVnaW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZmNGU2NmU5M2MxYWQ0NzY0NGJlM2I0ZmZkNmE0NmUxY2U5YjY2MTIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDYgMDk6NDk6MzEgMjAwOSAtMDYwMAoKICAgIHBjaTogUmVuYW1lIFBDSV9SRUdJT05fTUVNT1JZIHRvIFBDSV9SRUdJT05fU1lTX01FTU9SWSBmb3IgY2xhcml0eQoKICAgIFRoZSBQQ0lfUkVHSU9OX01FTU9SWSBhbmQgUENJX1JFR0lPTl9NRU0gYXJlIGEgYml0IHRvIHNpbWlsYXIgYW5kCiAgICBjYW4gYmUgY29uZnVzaW5nIHdoZW4gcmVhZGluZyB0aGUgY29kZS4KCiAgICBSZW5hbWUgUENJX1JFR0lPTl9NRU1PUlkgdG8gUENJX1JFR0lPTl9TWVNfTUVNT1JZIHRvIGNsYXJpZnkgaXRzIHVzZWQKICAgIGZvciBzeXN0ZW0gbWVtb3J5IG1hcHBpbmcgcHVycG9zZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NGRjNTE3MzI4NzA5YzIwNGE5Y2JmN2EyNTNkOWY4ZTZjNGIyNmVjCkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVN1biBGZWIgOCAwMDo1OTo0MyAyMDA5ICswMzAwCgogICAgbXgzMTogYWRkIEdQSU8gcmVnaXN0ZXJzIGRlZmluaXRpb25zCgogICAgQWRkZWQgZGVmaW5pdGlvbnMgZm9yIGkuTVgzMSBwcm9jZXNzb3IgR1BJTyByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgOGRhNjAxMjgwYThhY2JjMzM4NTc4NDc4MGVkMzUxMzBlNTM4MTJmMQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBGZWIgNCAxMzo0NzoyMiAyMDA5IC0wNjAwCgogICAgTkFORDogQWRkIHRpbWVvdXQgZm9yIHJlc2V0IGNvbW1hbmQKCiAgICBXaXRob3V0IHRoZSB0aW1lb3V0IHByZXNlbnQgYW4gaW5maW5pdGUgbG9vcCBjYW4gb2NjdXIgaWYgdGhlCiAgICBOQU5EIGRldmljZSBpcyBicm9rZW4gb3Igbm90IHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwZGM2YTliZWY3M2Q3ZDRjYjI1YjNmZGUyN2VlOTFmODQ4NGIxMjYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglXZWQgRmViIDQgMTM6Mzk6NDAgMjAwOSAtMDYwMAoKICAgIE5BTkQ6IFNpbGVuY2Ugd2FybmluZyB3aGVuIENPTkZJR19TWVNfTkFORF9RVUlFVF9URVNUCgogICAgQ29tbWl0IGNmYTQ2MGFkZmRlZmNjMzBkMTA0ZTFhOWVlNDQ5OTRlZTM0OWJiN2IgcmVtb3ZlZCBzdXBwb3J0CiAgICBmb3IgZGlzYWJsaW5nIHRoZSAiTm8gTkFORCBkZXZpY2UgZm91bmQhISEiIHdhcm5pbmcgd2hlbgogICAgQ09ORklHX1NZU19OQU5EX1FVSUVUX1RFU1Qgd2FzIGRlZmluZWQuICBUaGlzIHJlLWFkZHMgc3VwcG9ydAogICAgZm9yIHNpbGVuY2luZyB0aGUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWQwOWFiMmUzYWMyOGYzMDQzNzJlY2ViNGE1Y2I0ZDI0ZTEwMmExMwpBdXRob3I6IFZhbGVyaXkgR2x1c2hrb3YgPGd2dkBsc3RlYy5jb20+CkRhdGU6CU1vbiBKYW4gMTkgMTY6MzI6NTkgMjAwOSArMDIwMAoKICAgIE5BTkQ6IEZpeGVkIGludmFsaWQgcG9pbnRlcnMgdG8gc3RhdGljIHJlbG9jYXRlZCBjaGlwIG5hbWVzCgogICAgRGVhciBXb2xmZ2FuZywKCiAgICBZb3UgYXJlIHJpZ2h0LCB0aGUgcGF0Y2ggd2FzIHVnbHkuCiAgICBUaGUgbmV3IG9uZSBzZWVtcyB0byBiZSBiZXR0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3ZGVlYzFiZjZmYTNiM2EyMWNkOGQxNGZlMmE5MDlhNDJlZmM5ZDgKQXV0aG9yOiBOaXNoYW50aCBNZW5vbiA8bm1AdGkuY29tPgpEYXRlOglNb24gRmViIDIgMTg6MjA6MTIgMjAwOSAtMDYwMAoKICAgIEFSTTpPTUFQMzpab29tMTogQWRkIG5hbmQgdW5sb2NrIG9wdGlvbgoKICAgIEVuYWJsZSBOQU5EX1VOTE9DSyBvcHRpb24gZm9yIHVubG9ja2luZyBuYW5kIGZvcgogICAgZXJhc2Uvd3JpdGUgb3BlcmF0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pc2hhbnRoIE1lbm9uIDxubUB0aS5jb20+Cgpjb21taXQgNWE5NDI3ZGM5Yjg0Mzg3NTlkYjNmNjdhMWU1NDcwNjJmNzZlYjE4ZApBdXRob3I6IGRlcmVrQHNpY29uaXguY29tIDxkZXJla0BzaWNvbml4LmNvbT4KRGF0ZToJTW9uIEphbiAyNiAxNDowODoxNyAyMDA5IC0wNzAwCgogICAgZW52X25hbmQ6IGZpeCBlbnYgbWVtb3J5IHJlbGVhc2UKCiAgICBUaGlzIGZpeGVzIGEgYnVnIHRoYXQgdG1wIGVudmlyb25tZW50IG1lbW9yeSBub3QgYmVpbmcgcmVsZWFzZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRGVyZWsgT3UgPGRvdUBzaWNvbml4LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA1ZmQ4ODc3NjQxOWRmNTllN2YzN2JhYzA2M2EyMDk0MDlkZDgwMWQKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgNiAxMDozNzo0NSAyMDA5ICswMTAwCgogICAgQVJNOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgogICAgVGhlICJzaXplIiB2YXJpYWJsZSBpbiBzdGFydF9hcm1ib290KCkgaW4gbGliX2FybS9ib2FyZC5jIGlzIG9ubHkgcmVhbGx5CiAgICB1c2VkIGluICIjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0giIGNhc2UsIGFuZCBldmVuIHRoZXJlIGl0IGNhbiBiZQogICAgZWxpbWluYXRlZCAodGhhbmtzIHRvIEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIGZvciBhIHN1Z2dlc3Rpb24uKQoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA2OTg5ZTRmNTQ2ZDk2MGE0MDdkZDU0MjVmODAwZGZmOTc1MWM4MTMyCkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJVGh1IEZlYiA1IDA5OjMzOjUwIDIwMDkgLTA1MDAKCiAgICBDb2xkZmlyZTogTTUyN3g6IEFkZCBtaXNzaW5nIEdQSU8gcmVnaXN0ZXIgYWRkcmVzcyBkZWZpbmVzCgogICAgQWRkIG1pc3NpbmcgR1BJTyByZWdpc3RlcnMgYWRkcmVzcyBkZWZpbml0aW9uIGZvciBDb2xkZmlyZSBNNTI3MS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgoKY29tbWl0IGM0ZmY3N2Y1ZTZjM2EwMTYxMGNlOTc0MzRjMGQ1OWFjYjE0NzZmOTUKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgpEYXRlOglGcmkgSmFuIDIzIDE0OjQyOjU4IDIwMDkgLTA1MDAKCiAgICBDb2xkZmlyZTogbWNmbWlpOiBBbGxvdyBub24tYXV0b25lZ290aWF0aW5nIFBIWXMgdG8gdXNlIG1paSBjb21tYW5kCgogICAgTW9kaWZpZWQgbWlpX2luaXQgdG8gc3VwcG9ydCBib2FyZHMgd2l0aCBQSFlzIHRoYXQgYXJlIG5vdCBzZXQgdG8KICAgIGF1dG9uZWdvdGlhdGUsIGJ1dCBzdGlsbCB3YW50IHRvIHVzZSB1LWJvb3QncyBtaWkgY29tbWFuZHMgdG8gcHJvYmUKICAgIHRoZSBzbWkgYnVzLiBTdWNoIFBIWXMgd2lsbCBub3Qgc2V0IHRoZSBBdXRvbmVnb3RpYXRlLWRvbmUgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgOTJkM2U2ZTBmZmNiYjcyMjRjODMxMDRmOGQ4N2I1YjRiZjM5YTM4ZgpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTE6NDQ6MzAgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBBcHBsaWVkIGJhdWRyYXRlIGZvcm11bGEgb2Ygc2VyaWFsX2luaXQgdG8gc2VyaWFsX3NldGJyZwoKICAgIEFwcGxpZWQgdGhlIHBhdGNoIGZvciBiYXVkcmF0ZSBkaXZpZGVyIHZhbHVlIHRydW5jYXRpb24gZm9yCiAgICBzZXJpYWxfaW5pdCB0byBzZXJpYWxfc2V0YnJnIGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KCmNvbW1pdCA4NzA2ZWYzNzhmMmRiMWVmNjViOWMyZjkwOTU2MWYyM2UzZGMyMTQ4CkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJRnJpIEphbiAyMyAxNDowNzowNSAyMDA5IC0wNTAwCgogICAgQ29sZGZpcmU6IE01MjcxRVZCOiBCb2FyZCBoZWFkZXIgdXBkYXRlIChkZXBlbmRlbmNpZXMpCgogICAgQ2xlYW51cCBmb3IgTTUyNzFFVkI6CiAgICBBZGRlZCBjbGFyaWZpY2F0aW9uIG9uIHRoZSB1c2Ugb2YgQ09ORklHX1NZU19DTE9DSy4KICAgIE1vZGlmaWVkIHRvIHVzZSB1LWJvb3QncyBIVVNIIHBhcnNlci4KICAgIENsZWFudXAgb24gZW52aXJvbm1lbnQgc2V0dGluZ3MuCiAgICBSZW1vdmVkIGNvbXBpbGVyIHdhcm5pbmcgYnkgZGVmaW5pbmcgQ09ORklHX1NZU19DUzBfKgoKICAgIERlcGVuZGVuY2llczoKICAgIEFkZGVkIHRoZSB1c2Ugb2YgQ09ORklHX1NZU19NQ0ZfU1lOQ1IgZm9yIGNsb2NrIG11bHRpcGxpZXIuCiAgICBUaGlzIGRlcGVuZHMgb24gYSBwYXRjaCB0byBpbmNsdWRlL2FzbS1tNjhrL201MjcxLmgKICAgIHRoYXQgZGVmaW5lcyB0aGUgbXVsdGlwbGllciBhbmQgZGl2aWRlciByYXRpb3MuCgogICAgUmVtb3ZlZCB0aGUgZGVmaW5pdGlvbiBvZiBDT05GSUdfU1lTX0ZFQ0kyQy4KICAgIFRoaXMgZGVwZW5kcyBvbiBhIHBhdGNoIHRoYXQgcmVtb3ZlcyB0aGUgdXNlIG9mIGl0IGluCiAgICBjcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jCgogICAgU2lnbmVkLW9mZi1ieTogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KCmNvbW1pdCBlMGRiMzQ0ZmFiZmViNGY5NjQ5ODQ2Zjk0ODM4ZjUxMTcyZjZhMWY2CkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJVGh1IEphbiAyOSAxNDozNjowNiAyMDA5IC0wNTAwCgogICAgQ29sZGZpcmU6IE01MjcxOiBBbGxvdyBib2FyZCBoZWFkZXIgZmlsZSB0byBzcGVjaWZ5IGNsb2NrIG11bHRpcGxpZXIKCiAgICBNNTI3MSBkeW5hbWljIGNsb2NrIG11bHRpcGxpZXIuIEl0IGlzIGN1cnJlbnRseSBmaXhlZCBhdCAxMDBNSHouCgogICAgQWxsb3cgdGhlIGJvYXJkIGhlYWRlciBmaWxlIHRvIHNldCB0aGVpciBvd24gbXVsdGlwbGllciBhbmQgZGl2aWRlci4KICAgIEFkZGVkIHRoZSAjZGVmaW5lIGZvciB0aGUgbXVsdGlwbGllciBhbmQgZGl2aWRlciB0byB0aGUgY3B1IGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgZDFlZjI1ZGQ4MWM3OWRjZmFkNWMyZmYwMTYyYjFiZWEyMWQwNGJjMwpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTA6NDc6MTMgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBNNTI3MUVWQjogUmVtb3ZlIHVzYWdlIG9mIENPTkZJR19TWVNfRkVDSTJDCgogICAgRGlzY29udGludWUgdGhlIHVzZSBvZiBDT05GSUdfU1lTX0ZFQ0kyQyAob25seSB1c2VkIGJ5IE01MjcxRVZCKS4KICAgIFVzZSByZWFkLW1vZGlmeS13cml0ZSB0byBhY3RpdmF0ZSB0aGUgRkVDIHBpbnMgd2l0aG91dCBkaXNhYmxpbmcgSTJDLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgZWU3M2NjNTlhYjkwNDk3NmFmM2MzM2I0NTRmYzg0Zjc4NjE4YjJkMQpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMDk6NDU6MzQgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBjbWRfYmRpbmZvIGNsZWFudXAKCiAgICBDT05GSUdfTTY4SyBiZGluZm8gY2xlYW51cDoKCiAgICBGaXhlZCBjb21waWxlciB3YXJuaW5nIGFib3V0IGJhdWRyYXRlIHByaW50aW5nLgogICAgZm9ybWF0ICclZCcgZXhwZWN0cyB0eXBlICdpbnQnLCBidXQgYXJndW1lbnQgMiBoYXMgdHlwZSAnbG9uZyB1bnNpZ25lZCBpbnQnLgoKICAgIEFkZGVkIHByaW50aW5nIG9mICJjcHVmcmVxIgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgNGZmYzM5MDUwYWE0NmVkOGEzZDI5NzMyMjkzZGZmNzY5ZTU0ZmZmYQpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMDk6Mjc6MDAgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBGaXggaGFsZi1iYXVkIFVBUlQgYnkgYWRkaW5nIE01MjcxIHRvIENvbGRmaXJlIHYyIGNvcmUgbGlzdAoKICAgIEFkZGVkIHRoZSBDT05GSUdfTTUyNzEgdG8gdGhlIGxpc3Qgb2YgQ29sZGZpcmUgVjIgcHJvY2Vzc29yLiBUaGlzCiAgICB3YXMgY2F1c2luZyB0aGUgYnVzIGNsb2NrIChub3QgQ1BVIGNsb2NrKSB0byBiZSBkZWNsYXJlZCB0d2ljZSBhcwogICAgZmFzdCBhcyBpdCBhY3R1YWxseSBpcy4gVGhpcyBjYXVzZXMgVUFSVFMgdG8gb3BlcmF0ZSBhdCBoYWxmIHRoZQogICAgc3BlY2lmaWVkIGJhdWRyYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgNTlkMWJkYTdmOTJjOGEyOGMzYWJhOTRlNDgwNjM3NDlkNDI1OTQ5ZgpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CVR1ZSBGZWIgMyAxNToxNToyMSAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIFBDSUUgc3VwcG9ydCBzZWxlY3RhYmxlCgogICAgT24gc29tZSBwbGF0Zm9ybXMgUENJRSBzdXBwb3J0IGlzIG5vdCByZXF1aXJlZCwgYnV0IHdvdWxkIGJlIGluY2x1ZGVkCiAgICBiZWNhdXNlIHRoZSBjcHUgc3VwcG9ydHMgaXQuIFRvIHJlZHVjZSBmb29wcmludCBpdCBpcyBub3cgY29uZmlndXJhYmxlCiAgICB2aWEgQ09ORklHX1BDSV9ESVNBQkxFX1BDSUUuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBFaWJhY2ggPGVpYmFjaEBnZHN5cy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMTI5ZWZmNWVkZTM5NGNjMWZhZWI2ZGJmNmE5ODdlOTFhYmNlNTUyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBGZWIgMyAyMjoxMzoxNiAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBPbmx5IGZpeHVwIG9wYiBhdHRhY2hlZCBVQVJUcwoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgZmR0IFVBUlQgY2xvY2sgZml4dXAgY29kZSB0bwogICAgb25seSB0b3VjaCBDUFUgaW50ZXJuYWwgVUFSVHMgb24gNHh4IHN5c3RlbXMuCiAgICBPbmx5IHRoZXNlIFVBUlRzIGFyZSBkZWZpbml0ZWx5IGNsb2NrZWQgYnkgZ2QtPnVhcnRfY2xrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRiN2UzZDA0NWNjODJmN2Y3YjZmM2ExOWI1NGE4MTRkYTM2YWM1MmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBKYW4gMTMgMTE6MDA6MjkgMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBtb3ZlIGRlZmF1bHQgYm9vdCBTUEkgQ1MgdG8gY29tbW9uIGNvZGUKCiAgICBNb3ZlIHRoZSBkZWZhdWx0IFNQSSBDUyB0aGF0IHdlIGJvb3QgZnJvbSBpbnRvIGNvbW1vbiBjb2RlIHNvIHRoYXQgaXQgY2FuCiAgICBiZSB1c2VkIGluIG90aGVyIFNQSSBkcml2ZXJzIGFuZCBlbnZpcm9ubWVudCBzZXR0aW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZjc5MGVmNmZmMTIzODFjYjBlNDNkZTU0ZmIyYjBmMTIwNGFkOGVkNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIERlYyAxMCAxMjozMzo1NCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGR5bmFtaWNhbGx5IHVwZGF0ZSBVQVJUIHNwZWVkIHdoZW4gaW5pdGlhbGl6aW5nCgogICAgUHJldmlvdXNseSwgYm9vdGluZyBvdmVyIHRoZSBVQVJUIHJlcXVpcmVkIHRoZSBiYXVkIHJhdGUgdG8gYmUga25vd24gYWhlYWQKICAgIG9mIHRpbWUuICBVc2luZyBhIGJpdCBvZiB0cmlja3kgc2ltcGxlIG1hdGgsIHdlIGNhbiBjYWxjdWxhdGUgdGhlIG5ldyBib2FyZAogICAgcmF0ZSBiYXNlZCBvbiB0aGUgb2xkIGRpdmlzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFJvYmluIEdldHogPHJnZXR6QGJsYWNrZmluLnVjbGludXgub3JnPgoKY29tbWl0IDk3ZjI2NWYxNGYyMzA1MGYzY2I5OTdmNjE3ZjNhNjkxN2I4NDNlYTIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBEZWMgOSAxNzoyMTowOCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGFkZCBzdXBwb3J0IGZvciBmYXN0IFNQSSByZWFkcyB3aXRoIEJvb3QgUk9NCgogICAgTmV3ZXIgQmxhY2tmaW4gYm9vdCByb21zIHN1cHBvcnQgdXNpbmcgdGhlIGZhc3QgU1BJIHJlYWQgY29tbWFuZCByYXRoZXIgdGhhbgogICAganVzdCB0aGUgc2xvdyBvbmUuCUlmIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZSwgdGhlbiB1c2UgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY3NjE5OTgyYmZjNWNkNjI3MTBhNDhlM2NiZmZjMzA0Y2I3OGMzNDEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NDY6NTIgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBjaGVjayBmb3IgcmVzZXJ2ZWQgc2V0dGluZ3MgaW4gRERSIE1NUnMKCiAgICBTb21lIGJpdHMgb2YgdGhlIEREUiBNTVJzIHNob3VsZCBub3QgYmUgc2V0LiAgSWYgdGhleSBkbywgYmFkIHRoaW5ncyBtYXkKICAgIGhhcHBlbiAobGlrZSByYW5kb20gZmFpbHVyZXMgb3IgaGFyZHdhcmUgZGVzdHJ1Y3Rpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2MjJhOGRjMDk1OGRkNTk5NzQzMzQ4ZWE5NGViMTBiOWQwYmU4YWU2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIxOjU0OjAwIDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogc2V0IGRlZmF1bHQgdm9sdGFnZSBsZXZlbHMgZm9yIEJGNTM4L0JGNTM5IHBhcnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDA5ZGM2YjBiYmQxZDVlMzljZGRkZWViYzA1OWY5YTc1NjMwZTRmNmYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBKdW4gMSAwMToyOTo1NyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHVzZSBvbi1jaGlwIHN5c2NvbnRyb2woKSByb20gZnVuY3Rpb24gd2hlbiBhdmFpbGFibGUKCiAgICBOZXdlciBCbGFja2ZpbidzIGhhdmUgYW4gb24tY2hpcCByb20gd2l0aCBhIHN5c2NvbnRyb2woKSBmdW5jdGlvbiB0aGF0IG5lZWRzCiAgICB0byBiZSB1c2VkIHRvIHByb3Blcmx5IHByb2dyYW0gdGhlIG1lbW9yeSBhbmQgdm9sdGFnZSBzZXR0aW5ncyBhcyBpdCB3aWxsCiAgICBpbmNsdWRlIChwb3NzaWJseSBjcml0aWNhbCkgZmFjdG9yeSB0ZXN0ZWQgYmlhcyB2YWx1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGUxZmI2ZDBkNTJmYmUzZmJjMWE0YzY1MWRhY2YxMWU5YzE0MTdmNjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgNSAxMTo0NDo1MiAyMDA5ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBGaXggdHlwbyBpbiBjZmlfZmxhc2guYwoKICAgIFBhdGNoICJmbGFzaC9jZmlfZmxhc2g6IFVzZSB2aXJ0dWFsIHNlY3RvciBzdGFydCBhZGRyZXNzLCBub3QgcGh5cyIKICAgIGludHJvZHVjZWQgYSBzbWFsbCB0eXBvIGFuZCBjb21waWxhdGlvbiB3YXJuaW5nIGZvciBzeXN0ZW1zIHdpdGggQ0ZJCiAgICBsZWdhY3kgc3VwcG9ydCAoZS5nLiBoY3U0KS4gVGhpcyBwYXRjaCBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjg3NDVkYjk2OWI3MjY5Mzc1NDk5MWM4MzhmNjhhN2ZiNGE4YjFhYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAyOSAxMToyMTozOCAyMDA5ICswMTAwCgogICAgamVkZWNfZmxhc2g6IE9ubHkgdXNlIG1hbnVmYWN0dXJlciBkZWZpbmVzIGZyb20gY29tbW9uIGZsYXNoLmgKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGRvdWJsZSBkZWZpbmVkIG1hbnVmYWN0dXJlciBkZWZpbmVzIGZyb20KICAgIGplZGVjX2ZsYXNoLmMuIFNpbmNlIHRoZSBjb21tb24gZGVmaW5lcyBpbiBmbGFzaC5oIGFyZSAzMmJpdAogICAgd2Ugbm93IG5lZWQgdGhlICgxNikgY2FzdC4gVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdGhlIGNvbXBpbGF0aW9uCiAgICB3YXJuaW5nIChlLmcuIHNlZW4gb24gaGN1NSk6CgogICAgLi9NQUtFQUxMIGhjdTUKICAgIENvbmZpZ3VyaW5nIGZvciBoY3U1IGJvYXJkLi4uCiAgICBqZWRlY19mbGFzaC5jOjIxOTogd2FybmluZzogbGFyZ2UgaW50ZWdlciBpbXBsaWNpdGx5IHRydW5jYXRlZCB0byB1bnNpZ25lZCB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjMjFkNWNmY2I2YjRlN2ZjZGQ1YzZlOTI2ZTFhODI0OTAwNzA2ZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgNSAxMToyNTo1NyAyMDA5ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBTaWxlbmNlIGNvbXBpbGF0aW9uIHdhcm5pbmcKCiAgICBQYXRjaCAiZmxhc2gvY2ZpX2ZsYXNoOiBVc2UgdmlydHVhbCBzZWN0b3Igc3RhcnQgYWRkcmVzcywgbm90IHBoeXMiCiAgICBpbnRyb2R1Y2VkIGEgc21hbGwgY29tcGlsYXRpb24gd2FybmluZy4gVGhpcyBwYXRjaCBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDljZTk5MjFhN2Q4YjFjZTc2NDY1NmIxNGI0MjIxN2JiZjRmYWEzOApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEZlYiAyIDE2OjM0OjUxIDIwMDkgLTA2MDAKCiAgICBmbGFzaC9jZmlfZmxhc2g6IFVzZSB2aXJ0dWFsIHNlY3RvciBzdGFydCBhZGRyZXNzLCBub3QgcGh5cwoKICAgIGluY2x1ZGUvZmxhc2guaCB3YXMgY29tbWVudGVkIHRvIHNheSB0aGF0IHRoZSBhZGRyZXNzIGluCiAgICBmbGFzaF9pbmZvLT5zdGFydCB3YXMgYSBwaHlzaWNhbCBhZGRyZXNzLiAgSG93ZXZlciwgZnJvbSB1LWJvb3QncwogICAgcG9pbnQgb2YgdmlldywgYW5kIGxvb2tpbmcgYXQgbW9zdCBmbGFzaCBjb2RlLCBpdCBtYWtlcyBtb3JlCiAgICBzZW5zZSBmb3IgdGhpcyB0byBiZSBhIHZpcnR1YWwgYWRkcmVzcy4gIFNvIEkgY29ycmVjdGVkIHRoZQogICAgY29tbWVudCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgd2FzIGEgdmlydHVhbCBhZGRyZXNzLgoKICAgIFRoZSBvbmx5IGZsYXNoIGRyaXZlciB0aGF0IHdhcyBhY3R1YWxseSB0cmVhdGluZyB0aGUgYWRkcmVzcwogICAgYXMgcGh5c2ljYWwgd2FzIHRoZSBtdGQvY2ZpX2ZsYXNoIGRyaXZlci4gIEhvd2V2ZXIsIHRoaXMgY29kZQogICAgd2FzIHVzaW5nIGl0IGluY29uc2lzdGVudGx5IGFzIGl0IGFjdHVhbGx5IGRpcmVjdGx5IGRlcmVmZXJlbmNlZAogICAgdGhlICJzdGFydCIgZWxlbWVudCwgd2hpbGUgaXQgdXNlZCBtYXBfcGh5c21lbSB0byBnZXQgYQogICAgdmlydHVhbCBhZGRyZXNzIGluIG90aGVyIHBsYWNlcy4gIEkgY2hhbmdlZCB0aGlzIGRyaXZlciBzbwogICAgdGhhdCB0aGUgY29kZSB3aGljaCBpbml0aWFsaXplcyB0aGUgaW5mby0+c3RhcnQgZmllbGQgY2FsbHMKICAgIG1hcF9waHlzbWVtIHRvIGdldCBhIHZpcnR1YWwgYWRkcmVzcywgZWxpbWluYXRpbmcgdGhlIG5lZWQgZm9yCiAgICBmdXJ0aGVyIG1hcF9waHlzbWVtIGNhbGxzLglUaGUgY29kZSBpcyBub3cgY29uc2lzdGVudC4KCiAgICBUaGUgKm9ubHkqIHBsYWNlIGEgcGh5c2ljYWwgYWRkcmVzcyBzaG91bGQgYmUgdXNlZCBpcyB3aGVuIGRlZmluaW5nIHRoZQogICAgZmxhc2ggYmFua3MgbGlzdCB0aGF0IGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZmxhc2hfaW5mbyBzdHJ1Y3QsCiAgICB1c3VhbGx5IGZvdW5kIGluIHRoZSBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjU3ZjIwNjJkOGUxN2ViZjRhNTVmNTJjOWU3MWMwN2MwYzk0Yzc3OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBGZWIgNCAwOTo0MjoyMCAyMDA5ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmcKCiAgICAoc2hvd3MgdXAgb25seSB3aGVuIERFQlVHIGlzIGVuYWJsZWQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NzgzMmNkMTVhZTAyZmI2ZmRlOGViZWQ1YjI3MmY4NTc3NWYyY2ViCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6NDU6NTUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgYW5vbWFseSBsaXN0cwoKICAgIFVwZGF0ZSB0aGUgYW5vbWFseSBsaXN0cyB0byBtYXRjaCBsYXRlc3QgYW5vbWFseSBzaGVldHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDcwYTRkYTQ1ZTE2YjcyZThlNWIwYmFhZWNkYWVlOWJlODYxOTY0N2QKQXV0aG9yOiBSYWxwaCBLb25kemllbGxhIDxya0Bhcmdvcy1tZXNzdGVjaG5pay5kZT4KRGF0ZToJTW9uIEphbiAyNiAxMjozNDozNiAyMDA5IC0wNzAwCgogICAgQURTNTEyMSBBZGQgUEFUQSBzdXBwb3J0CgogICAgT3JpZ2luYWwgcGF0Y2ggZnJvbSBSYWxwaCBLb25kemllbGxhCiAgICBwbHVzIGNsZWFuIHVwIGJ5IFdvbGZnYW5nIERlbmsKICAgIHBsdXMgY2hhbmdlcyBieSBKb2huIFJpZ2J5Cgl1c2UgaXBzIGNsb2NrIG5vdCBscGMKCXBvcnQgZm9yd2FyZCB0byBjdXJyZW50IHUtYm9vdCByZWxlYXNlCgogICAgU2lnbmVkLW9mZi1ieTogUmFscGggS29uZHppZWxsYSA8cmtAYXJnb3MtbWVzc3RlY2huaWsuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWJmYmQwYWU0OTY3ZGYxODEwMjM0NWRiNGY0YjUyOWExM2RhMTA3YgpBdXRob3I6IE1hcnRoYSBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KRGF0ZToJTW9uIEphbiAyNiAxMDo0NTowNyAyMDA5IC0wNzAwCgogICAgQURTNTEyMSBBZGQgSUMgSWRlbnQgTW9kdWxlIChJSU0pIHN1cHBvcnQKCiAgICBJSU0gKElDIElkZW50aWZpY2F0aW9uIE1vZHVsZSkgaXMgdGhlIGZ1c2Vib3ggZm9yIHRoZSBtcGM1MTIxLgogICAgVXNlICNkZWZpbmUgQ09ORklHX0lJTSB0byB0dXJuIG9uIHRoZSBjbG9jayBmb3IgdGhpcyBtb2R1bGUKICAgIHVzZSAjZGVmaW5lIENPTkZJR19DTURfRlVTRSB0byBhZGQgZnVzZWJveCBjb21tYW5kcy4KICAgIEZ1c2Vib3ggY29tbWFuZHMgaW5jbHVkZSB0aGUgYWJpbGl0eSB0byByZWFkCiAgICB0aGUgc3RhdHVzLCByZWFkIHRoZSByZWdpc3RlciBjYWNoZSwgb3ZlcnJpZGUgdGhlIHJlZ2lzdGVyIGNhY2hlLAogICAgcHJvZ3JhbSB0aGUgZnVzZXMgYW5kIHNlbnNlIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGhhIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTRkMTljZDFiY2U5YTI0YjEzMzU1OThmMTU2ODE0MGY0OTUwZTRkOQpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDIzIDEwOjMzOjE1IDIwMDkgLTA3MDAKCiAgICBBRFM1MTIxIEZpeCByZXYyIHNpbGljb24gcGNpIGlvcGFkIGNvbmZpZwoKICAgIFJlc2V0IGNvbmZpZyBpcyBub3QgY29ycmVjdAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjMTU0MjUyYzQ4MGIxM2Y2OWNlMWI3MWE5NTMwYjA1MTVkYTc2YTYKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxOSAxMzo1NzozNCAyMDA4IC0wNzAwCgogICAgQURTNTEyMSBESVUgQWRkIGRpdV9ibXBfYWRkciBlbnYKCiAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgYSBibXAgb3RoZXIgdGhhbgogICAgRlNMX0xvZ29fQk1QIGZvciB0aGUgRElVIHNwbGFzaCBzY3JlZW4uCgogICAgQ2FuIG5vdyBzZXQgdGhlIGVudiB2YXIgImRpdV9ibXBfYWRkciIgdG8KICAgIHRoZSBhZGRyZXNzIG9mIGEgQk1QIGluIGZsYXNoIHRvIHVzZSBpbnN0ZWFkCiAgICBvZiB0aGUgZGVmYXVsdCBGU0xfTG9nb19CTVAuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGhhIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTJjMjBmYmQzYTc3ODhjMWExNTRmNTBhM2Y0NGYyOGE3NzYzZjk5YQpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDMwIDE2OjM5OjM1IDIwMDggLTA2MDAKCiAgICBBRFM1MTIxIERJVSBNYWtlIGluY2x1c2lvbiBvZiBGU0wgbG9nbyBvcHRpb25hbAoKICAgIE1ha2UgaW5jbHVzaW9uIG9mIEZTTCBsb2dvIG9wdGlvbmFsIGFuZAogICAgdHVybiBpdCBvZmYgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDk5ZWMxNDlhYmU5NGU3ZjZiMmJkYTQ3NjZkNzAxYjQwMDUwNTNmCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVN1biBGZWIgMSAxMjoyNzo1MyAyMDA5ICswMTAwCgogICAgQ29tcGlsZSB3YXJuaW5nIGZpeCBpbiBvbmVuYW5kX3Vib290LmgKCiAgICBSZWdyZXNzaW9uIHNpbmNlIG1lcmdlIHdpbmRvdyBhZnRlciAyMDA5LjAxCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgYTI3MGQxZTcyOTVjM2Q4MjlmNDJjMDQ4MDExNzk0MWRmYzFjNjQ3NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAyOSAwNjozMzo1NSAyMDA5ICswMTAwCgogICAgVVNCOiBBZGQgRUhDSSBzdXBwb3J0IGZvciBWQ1QgRUhDSSBjb250cm9sbGVyIChyZWFsbHkgd2l0aCBkcml2ZXIgbm93KQoKICAgIFNvbWVob3cgSSBtaXNzZWQgdGhlIHJlYWwgZHJpdmVyIHBhcnQgaW4gbXkgbGFzdCBwYXRjaCB2ZXJzaW9uLiBUaGlzIHBhdGNoCiAgICBub3cgYWRkcyB0aGUgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDcxNmViZjQzNmM5ZTQzZGY2NzQwZTAxNzJmNmIyYTgxZGRiZjFiOGUKQXV0aG9yOiBDbGlmZiBDYWkgPGNsaWZmLmNhaUBhbmFsb2cuY29tPgpEYXRlOglTYXQgTm92IDI5IDE4OjIyOjM4IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIGRyaXZlciBmb3Igb24tY2hpcCBNTUMvU0QgY29udHJvbGxlcgoKICAgIFRoaXMgaXMgYSBwb3J0IG9mIHRoZSBMaW51eCBCbGFja2ZpbiBvbi1jaGlwIFNESCBkcml2ZXIgdG8gVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IENsaWZmIENhaSA8Y2xpZmYuY2FpQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmU4N2VhMGNhOTUxNDY1ZWJhMTQ0YWIyZTZkYmE2ZmI1MDc3MzdhMgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMjo0NzozNCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGFkZCBwb3J0IG11eGluZyBmb3IgQkY1MXggU1BJCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZjNjhmOWY4NTk1OTY2NGQ1MjhkYWVhMmFlZjVlZjU0OTc0MzMxY2UKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBKYW4gNiAwNjoxNjoxOSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IG91dHB1dCBib290aW5nIHNvdXJjZSB3aGVuIGJvb3RpbmcKCiAgICBLbm93aW5nIHRoZSBib290aW5nIHNvdXJjZSBvZiB0aGUgcGFydCBpcyB1c2VmdWwsIGVzcGVjaWFsbHkgd2hlbiB0aGUgcGFydAogICAgY2FuIHN3aXRjaCBkeW5hbWljYWxseSBiZXR3ZWVuIHNvdXJjZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDhkZjNjZTBmNDljMzc5NDc4MDBhYzdjODRlNzUxNDk5ODgyNjE5ZmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBEZWMgMTEgMDY6MzA6NDYgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBzZXQgZGVmYXVsdCBDT05GSUdfRU5WX1NQSV9DUyBiYXNlZCBvbiBib290cm9tCgogICAgU2V0IHRoZSBkZWZhdWx0IENPTkZJR19FTlZfU1BJX0NTIHZhbHVlIHRvIG1hdGNoIHRoZSBTUEkgQ1MgdGhhdCBpcyB1c2VkIGJ5CiAgICB0aGUgQmxhY2tmaW4gb24tY2hpcCBib290cm9tIHRvIGJvb3Qgb3V0IG9mIFNQSSBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMmI0YTQ4NmU2ZmFjNTAyZDhiODgzZTM0NGNjNDAxMjI4Mzk0NWIzZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IERlYyAxMSAwNDowNjoyNiAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHVwZGF0ZSBhc20tYmxhY2tmaW4vcG9zaXhfdHlwZXMuaCB0byBsYXRlc3QgTGludXggdmVyc2lvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlNWViOTNlNzczOTFiY2MzMDg2OTcxMTZjNTQ0ZWExMzQwYWFhZThhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRGVjIDYgMDI6NTQ6NTIgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBhZGQgcG9ydCBJIGJpdHMKCiAgICBTb21lIHBlb3BsZSBuZWVkIHRvIGFjY2VzcyBwb3J0IEksIHNvIG1ha2Ugc3VyZSB0aGUgcGlucyBhcmUgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGE2YjI3MjU5NmQ0M2RlMGRiNDk0M2VhYzdhZjU4YzM1MzRjNDAyNgpBdXRob3I6IFNvbmljIFpoYW5nIDxTb25pYy5aaGFuZ0BhbmFsb2cuY29tPgpEYXRlOglXZWQgTm92IDI2IDIyOjE2OjQ1IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIGRyaXZlciBmb3Igb24tY2hpcCBBVEFQSSBjb250cm9sbGVyCgogICAgVGhpcyBpcyBhIHBvcnQgb2YgdGhlIExpbnV4IEJsYWNrZmluIG9uLWNoaXAgQVRBUEkgZHJpdmVyIHRvIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTb25pYyBaaGFuZyA8U29uaWMuWmhhbmdAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiZTlkOGM3ODBlNjgzMWNiODRiN2Q0NTkwY2VhZTAzZGNhOGZjMTBiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgTm92IDI2IDIxOjQzOjA2IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIGRyaXZlciBmb3Igb24tY2hpcCBOQU5EIGNvbnRyb2xsZXIKCiAgICBUaGlzIGlzIGEgcG9ydCBvZiB0aGUgTGludXggQmxhY2tmaW4gb24tY2hpcCBORkMgZHJpdmVyIHRvIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNDE0OGUwMmFiYWU5YTA5OWY0NDQ0YjVlMTY4ZWJjMmI5MTFkMjI5NQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIE5vdiAxMiAwNzoxODoxNSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGJ1aWxkIHdpdGggLW1uby1mZHBpYwoKICAgIFVzZSB0aGUgLW1uby1mZHBpYyBmbGFnIHNvIHRoYXQgYW55IEJsYWNrZmluIHRvb2xjaGFpbiBjYW4gYmUgdXNlZCB0byBidWlsZAogICAgdXAgdS1ib290LCBpbmNsdWRpbmcgb25lcyB0aGF0IG91dHB1dCBGRFBJQyBFTEYgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzBlOTU1ODlhMjRhMmQ4M2FkMDAzMTdlNGE5NjExZDAyMTFlY2I1OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIE5vdiAxMSAwNTo0Mzo1NyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGZpeCB1cCBFQklVIGRlZmluZXMKCiAgICBUaGUgRUJJVSBkZWZpbmVzIGZvciBFQlNaIDI1Ni81MTIgd2VyZSBpbmNvcnJlY3QuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk2MTk1NGVhMGVjOGRjNDM0MTAzNGMxYTFmZjMxMDdlYzA1Mjc4MDkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBOb3YgNSAxMjo0NToyNCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHVzZSA4LzE2LzMyIGJpdCB0cmFuc2ZlciB3aWR0aHMgaW4gZG1hX21lbWNweSgpCgogICAgUmF0aGVyIHRoYW4gdXNpbmcgOGJpdCB0cmFuc2ZlcnMgZm9yIGV2ZXJ5dGhpbmcsIHVzZSA4LzE2LzMyIGJpdCB0cmFuc2ZlcnMKICAgIGFzIHVzYWJsZSB3aXRoIHRoZSBzb3VyY2UvZGVzdGluYXRpb24gYWRkcmVzc2VzIGFuZCB0aGUgY291bnQgc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjkzYzY4NjQ4NDI2ZjkwNmQ2M2I5ODExNzQ5NmI2NDE1ZjUwNWYzOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIE5vdiA1IDA4OjUwOjIzIDIwMDggLTA1MDAKCiAgICBCbGFja2Zpbjogb25seSBmbGFnIEwxIGluc3RydWN0aW9uIGZvciBETUEgbWVtY3B5CgogICAgVGhlIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgZnJvbSBkb2luZyBhbiA4IGJpdCBETUEgbWVtY3B5IHZzIGFuIG9wdGltaXplZAogICAgY29yZSBtZW1jcHkgY2FuIGJlIHByZXR0eSBiaWcgd2hlbiB5b3UgYWRkIGluIHRoZSBvdmVyaGVhZCBvZiBzZXR0aW5nIHVwIHRoZQogICAgTURNQSByZWdpc3RlcnMsIGNhY2hlIGZsdXNoZXMsIGV0Yy4uLiAgU28gb25seSB1c2UgZG1hX21lbWNweSgpIHdoZW4gd2UKICAgIGFjdHVhbGx5IHJlcXVpcmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGUzNDdjMDkyYTNiM2EyY2UxZTcyZjI1ZjQ4MjkxNjM2MzRkMDlmYmUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBOb3YgNSAwNzoyMDozNyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGRtYV9tZW1jcHkoKTogZml4IHJhbmRvbSBmYWlsdXJlcwoKICAgIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoZSBETUEgY2hhbm5lbCBpcyBhY3R1YWxseSBkaXNhYmxlZCBpbiBoYXJkd2FyZSBiZWZvcmUKICAgIGF0dGVtcHRpbmcgdG8gcmVwcm9ncmFtIGl0LiAgT3RoZXJ3aXNlIHRoZSBuZXcgc2V0dGluZ3MgYXJlIGlnbm9yZWQgYW5kIHdlCiAgICBlbmQgdXAgd2l0aCByYW5kb20gaGFuZ3MvZmFpbHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZkY2U4M2MxMDg4NDZkNmYwZDViMTc3NGUxY2MyOWYyNTczYTZhZDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBOb3YgNCAwMDowNDowMyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHJld3JpdGUgY2FjaGUgaGFuZGxpbmcgZnVuY3Rpb25zCgogICAgVGFrZSB0aGUgY2FjaGUgZmx1c2ggZnVuY3Rpb25zIGZyb20gdGhlIGtlcm5lbCBhcyB0aGV5IHVzZSBoYXJkd2FyZSBsb29wcyBpbgogICAgb3JkZXIgdG8gZ2V0IG9wdGltYWwgcGVyZm9ybWFuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg0YzVmMGRjNDdkMTc1OTNmZDgxMjA2NjE0ODkxYmRjOTRmNmQ1MWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBOb3YgMyAyMjozMDowNSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHNldHVwIGJpX2VuZXRhZGRyIGZvciBzaW5nbGUgbmV0cwoKICAgIEZvciBzeXN0ZW1zIHdpdGggQ09ORklHX05FVF9NVUxUSSBkaXNhYmxlZCwgYmlfZW5ldGFkZHIgZG9lcyBub3QgZ2V0IHNldHVwCiAgICBiYXNlZCBvbiAkZXRoYWRkciwgc28gc2V0IGl0IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA0MDU5OTIzOWU3ODc1YjM5ZTJhNWMxMmU2NTQ1OTkyMDQxYzcyYzUyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgT2N0IDI0IDIyOjQ4OjQ3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogY2FjaGUgY29yZS9zeXN0ZW0gY2xvY2sgdmFsdWVzCgogICAgQ2FsY3VsYXRpbmcgdGhlIGNsb2NrcyByZXF1aXJlcyBhIGJpdCBvZiBjYWxscyB0byBnY2MgbWF0aCBmdW5jdGlvbnMsIHNvCiAgICBjYWNoZSB0aGUgdmFsdWVzIGFmdGVyIHRoZSBmaXJzdCBydW4gc2luY2UgdGhleSdsbCBtb3N0IGxpa2VseSBuZXZlcgogICAgY2hhbmdlIG9uY2UgVS1Cb290IGlzIHVwIGFuZCBydW5uaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2OTU3YTYyMDliMDJmNmI2OTYwN2ZjNDc0MjVmMTM3MzFjYzQ3N2YxCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgT2N0IDI0IDE4OjE4OjE2IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZW5hYmxlIC0tZ2Mtc2VjdGlvbnMKCiAgICBTdGFydCBidWlsZGluZyBhbGwgQmxhY2tmaW4gYm9hcmRzIHdpdGggLWZmdW5jdGlvbi1zZWN0aW9ucy8tZmRhdGEtc2VjdGlvbnMKICAgIGFuZCBsaW5raW5nIHdpdGggLS1nYy1zZWN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZWUxZDIwMDFlYTdmYmFiYjJiOTI1NjAyNmRjNTQ2OGYwNTczMzdmOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCAyMCAyMTowODo1NCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvbnQgY2hlY2sgYmF1ZCBpZiBpdCB3b250IGFjdHVhbGx5IGdldCB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQwMGY1Nzc4ZjM3NWJjOTljNzNjODQ4OGM1NTVkZWYyNjFjY2ZhYjcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDc6NTQ6MDkgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgZHJpdmVyIGZvciBvbi1jaGlwIFNQSSBjb250cm9sbGVyCgogICAgVGhpcyBmaWxscyBvdXQgdGhlIFNQSSBiYWNrZW5kIGZvciB0aGUgQmxhY2tmaW4gb24tY2hpcCBTUEkgcGVyaXBoZXJhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgN2ExZTg3YjEwNjJlNmVhYzA3MDRjNmZjMmY3YzY2MWNhZjg4MTRjZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxOCAwNTozMzo1MSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IG9ubHkgYnVpbGQgcG9zdCBjb2RlIHdoZW4gQ09ORklHX1BPU1QKCiAgICBTYXZlIHNvbWUgdGltZSBieSB1c2luZyBDT05GSUdfUE9TVCBpbiB0aGUgTWFrZWZpbGUgcmF0aGVyIHRoYW4gQyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmQ3ZDQ4MDNjNzRiYjg2ZTFiNDAxYjExOTllNjMzODFhNjJiOTM4MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEphbiA4IDExOjU3OjU3IDIwMDkgLTA1MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IGNsZWFudXAgcG9pbnRlci9jYXN0cyBmb3IgYWxpYXNpbmcgaXNzdWVzCgogICAgUmVkbyBob3cgcG9pbnRlcnMgYXJlIG1hbmFnZWQgdG8gZ2V0IHJpZCBvZiB1Z2x5IGNhc3RzIGFuZCBzdHJpY3QgcG9pbnRlcgogICAgYWxpYXNpbmcgaXNzdWVzIHRoYXQgYXJlIGhpZ2hsaWdodGVkIGJ5IGdjYyA0LjMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDkyZDI0ODdiYWY3YzI5MzQzYzE2NWUzYWU4MmVhOGE3ZjllNjc5YgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyA5IDE3OjQ2OjIxIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IGNvbnZlcnQgQ09ORklHX0JGSU5fTUFDX1JNSUkgdG8gQ09ORklHX1JNSUkKCiAgICBObyBwb2ludCBpbiBoYXZpbmcgYSBCbGFja2Zpbi1zcGVjaWZpYyBkZWZpbmUgIkNPTkZJR19CRklOX01BQ19STUlJIiB0aGF0CiAgICBkb2VzIGV4YWN0bHkgdGhlIHNhbWUgdGhpbmcgYXMgY29tbW9uICJDT05GSUdfUk1JSSIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOGVlZDZjYTUxZTUwZmFkZTY4ODdlOGJkYjFmZjZhNDQxMTZiNDJiNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIE5vdiA1IDA2OjM2OjE1IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IHVzZSBjb21tb24gZGVidWcoKQoKICAgIFJhdGhlciB0aGVuIGRlZmluaW5nIG91ciBvd24gREVCVUdGKCksIGp1c3QgdXNlIHRoZSBjb21tb24gZGVidWcoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhN2VjNmFjOGIyYzZkY2U2ZmM2NzBhMmE4NTVkZWI2ZWVlMzQwZTA0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDIwIDEzOjU5OjUxIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IHJlc3BlY3QgQ09ORklHX1BIWV97QUREUixDTE9DS19GUkVRfQoKICAgIFJhdGhlciB0aGFuIGhhdmluZyB0aGUgb24tY2hpcCBNQUMgaGFyZGNvZGVkIHRvIHBoeSBhZGRyZXNzIDEgYW5kIGEgc3BlZWQKICAgIG9mIDIuNW1oeiwgdXNlIHRoZXNlIGFzIGRlZmF1bHRzIGlmIHRoZSBib2FyZCBkb2Vzbid0IHNwZWNpZnkgb3RoZXJ3aXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFjNDVhZjRlNjNlYTkyNWY0YWNjYzk4NDUzYWFiMWExMTY2YzE5NmQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDQ6NTI6MDAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZmluX21hYzogY2xlYW51cCBNSUkvUEhZIGZ1bmN0aW9ucwoKICAgIENsZWFudXAgYW5kIHJld3JpdGUgdGhlIE1JSS9QSFkgcmVsYXRlZCBmdW5jdGlvbnMgc28gdGhhdCB3ZSBjYW4gcmV1c2UgdGhlCiAgICBleGlzdGluZyBjb21tb24gbGludXgvbWlpcGh5LmggY29kZSBhbmQgaG9vayBpbnRvIHRoZSBgbWlpYCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDZiMzEwYTA1ZjBkMTBjNzUxZjIyNDY4MDQwOTMyMTM5ZjcxYzcxZDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDA6MzE6MzAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZmluX21hYzogc2V0IE1EQ0RJViBiYXNlZCBvbiBTQ0xLCgogICAgUmF0aGVyIHRoYW4gaGFyZGNvZGluZyBNRENESVYgdG8gMjQgKHdoaWNoIGlzIGNvcnJlY3QgZm9yIH4xMjVtaHogU0NMSyksCiAgICB1c2UgdGhlIHJlYWwgYWxnb3JpdGhtIHNvIGl0IGdldHMgc2V0IGNvcnJlY3RseSByZWdhcmRsZXNzIG9mIFNDTEsuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTMwNTkwZjNlNDljOGYzMjI1NmVkZjJlNTg2MWUxNTM1YTMyOWM2YwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKYW4gMzEgMDk6MTA6NDggMjAwOSArMDEwMAoKICAgIGl4cDogbW92ZSBzZXJpYWwgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY5MGM4MDIyZjQ0OGJjNWU5MzA5MGU0YjcxNDM2OGU1MmU5MTJmMGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgSmFuIDMxIDA5OjA0OjU4IDIwMDkgKzAxMDAKCiAgICBpeHA6IG1vdmUgcGNpIGluaXQgaW4gYXJtL2JvYXJkIGluc3RlYWQgb2YgY3B1CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4Y2I3OWI1ZjI3NWYxODg4Y2NiMjc4YTJkMjE5NzE0MDQ0NGE4NGI3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwODo1Njo0OSAyMDA5ICswMTAwCgogICAgaXhwOiBtb3ZlIHBjaSBkcml2ZXJzIHRvIGRyaXZlcnMvcGNpCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwMTJkNWJhYjA5YTUzNGU0ODAwYjAyZjUwY2Y1MDhlNjgzNzIwMmVhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwODo1Mzo0NCAyMDA5ICswMTAwCgogICAgaXhwOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmNjkzZjUwMWQ2NzQzNGRmMWY4MTVmZDE4MjRhNzE5NzNhZTA4MjA3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwODo1Mzo0NCAyMDA5ICswMTAwCgogICAgaXhwOiBhZGQgbWlzc2luZyBvcyBkZWZpbmUKCiAgICBuZWVkIGJ5IGFybS1lbGYgdG9vbGNoYWlucyBhbmQgbm8gaW1wYWN0IG9uIHRoZSBhcm0tbGludXggb25lCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiNGUyZjg5ZGZjYjIwNmEyMmQzNGZhNmIzNDg3OGQ4NWI0OThiMzlmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwOTo1MzozOSAyMDA5ICswMTAwCgogICAgaXhwOiByZW1vdmUgdGhlIG9wdGlvbiB0byBpbmNsdWRlIHRoZSBNaWNyb2NvZGUKCiAgICBpbnN0ZWFkIHRoZSBib2FyZCB3aWxsIGhhdmUgdG8gbG9hZCBpdCBmcm9tIGZsYXNoIG9yIHJhbQogICAgd2hpY2ggd2lsbCBiZSBzcGVjaWZpZWQgYnkgbnBlX3Vjb2RlIGVudiB2YXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFiMDE3YmFmMjA3MWQ4ZGFmNjQzYmNlODcyNTBkYjg5OGM2MDZjNjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgSmFuIDMwIDA5OjQ1OjIzIDIwMDkgKzAxMDAKCiAgICBpeHAvbnBlOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZTY5MDg3YTFkNmVmMmVjYTZmNDYwMjZjZjVlNzM5OWI2YzllN2MwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo1ODowNCAyMDA5ICswMTAwCgogICAgU1gxOiBhZGQgaGFyZHdhcmUgVjIgc3VwcG9ydAoKICAgIEluIHRoZSBWMiB0aGUgMiBmbGFzaCBoYXMgYmVlbiByZXBsYWNlIGJ5IG9uZSAzMk1CIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmODc3ZjIyMzNkYmNkNzQxN2MyZjBiYWJlNmE4NDkwOTliMTY3ZjNjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo1ODowMyAyMDA5ICswMTAwCgogICAgU1gxOiBGaXggc2Vjb25kIGZsYXNoIG1hcHBpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQ3ZmQzYmZmZWQ2NDMwYzkxZWIyNjYwZjg1OTU3NGVkOThiZTViZDgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgSmFuIDI4IDIxOjU4OjAzIDIwMDkgKzAxMDAKCiAgICBTWDE6IGFkZCBDT05GSUdfU1RET1VUX1VTQlRUWSB0byBlbmFibGUgcHJlYm9vdCBzdGRvdXQgcmVkaXJlY3QgdG8gdXNidHR5CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjZmNhMzM4MzdlYzgzODI5YzZhNDljM2JjYzg2YzMxYmMyNDk1ZmY2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo1Nzo1OSAyMDA5ICswMTAwCgogICAgbW92ZSBTYW1zdW5nJ3MgYm9hcmQgdG8gYm9hcmQvc2Ftc3VuZwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTQ5NDNlYzU3NDY2ZWE1ZGZhMDg1ZTdhOWUwZWM0NGNiOTNjNGUxZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBKYW4gMjkgMTI6MDc6MjEgMjAwOSArMDEwMAoKICAgIG1vdmUgQVJNIEx0ZC4gdG8gdmVuZG9yIGRpcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTg3ZmIxYjMwOGEyYTM3NWNiOWNhNzRjYTBkZDNlMmM1NzkzZDNiZgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglXZWQgSmFuIDI4IDE1OjMwOjM3IDIwMDkgLTA1MDAKCiAgICBwcGM0eHg6IENsZWFuIHVwIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgS29yYXQgYm9hcmQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgZm9yIHRoZQogICAgS29yYXQgUFBDIDQ0MEVQeCBib2FyZCwgYW5kIG1ha2VzIGFkZGl0aW9uYWwgbWlub3IgZml4ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjIwNDA1ZTMxNjgwZWZjMzYyOTNjNTliNDk2M2RiNTdjOWQ5M2RmNApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglXZWQgSmFuIDI4IDE1OjMwOjAyIDIwMDkgLTA1MDAKCiAgICBwcGM0eHg6IEFkZCB2YXJpYWJsZSAia29yYXRfdXNiY2YiIGZvciBLb3JhdCBib2FyZAoKICAgIFRoZSBuZXcgZW52aXJvbm1lbnQgdmFyaWFibGUgImtvcmF0X3VzYmNmIiBzZWxlY3RzIHRoZSBVU0IKICAgIHBvcnQgdXNlZCBieSB0aGUgS29yYXQgYm9hcmQncyBDb21wYWN0Rmxhc2ggY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYzAxZWExZTI3ZDViMTI0ZjBhMTg2OGQwY2U1NjlmMTU2ZDU4ZGZlCkF1dGhvcjogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MzEgMjAwOSArMDEwMAoKICAgIEFWUjMyOiBtYWNiIC0gU2VhcmNoIGZvciBQSFkgaWQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2VhcmNoaW5nIHRocm91Z2ggYXZhaWxhYmxlIFBIWS1hZGRyZXNzZXMgaW4KICAgIHRoZSBtYWNiLWRyaXZlci4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBBVEVWSzExMDAgZXZhbHVhdGlvbiBib2FyZCwKICAgIHdoZXJlIHRoZSBQSFktYWRkcmVzcyB3aWxsIGJlIGluaXRpYWxpemVkIHRvIGVpdGhlciAxIG9yIDcuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgY29uZmlnIG9wdGlvbiwgQ09ORklHX01BQ0JfU0VBUkNIX1BIWSwgd2hpY2ggd2hlbgogICAgZW5hYmxlZCB0ZWxscyB0aGUgZHJpdmVyIHRvIHNlYXJjaCBmb3IgdGhlIFBIWSBhZGRyZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1bm5hciBSYW5nb3kgPGd1bm5hckByYW5nb3kuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBEcml2ZWtsZXBwIDxwYXVsZHJpdmVrbGVwcEBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFmODYyNmUwYzA4YTc4MGQ5ZGVkMWQ5YzQ4ODNhODkzNTVmNjBlNzUKQXV0aG9yOiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MjYgMjAwOSArMDEwMAoKICAgIEZpeCBJUCBhbGlnbm1lbnQgcHJvYmxlbQoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB2b2xhdGlsZSBmcm9tOgogICAgdm9sYXRpbGUgSVBfdCAqaXAgPSAoSVBfdCAqKXhpcDsKCiAgICBEdWUgdG8gYSBidWcsIGF2cjMyLWdjYyB3aWxsIGFzc3VtZSB0aGF0IGlwIGlzIGFsaWduZWQgb24gYSB3b3JkIGJvdW5kYXJ5IHdoZW4KICAgIHVzaW5nIHZvbGF0aWxlLCB3aGljaCBjYXVzZXMgYW4gZXhjZXB0aW9uIHNpbmNlIHhpcCBpc24ndCBhbGlnbmVkIG9uIGEgd29yZAogICAgYm91bmRhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIERyaXZla2xlcHAgPHBhdWxkcml2ZWtsZXBwQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE9sYXYgTW9ya2VuIDxvbGF2bXJrQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMTJhOGI5ZGIxMmY4MmExODlmZjE0M2E1ODczMTAwN2Y1NDY5ZGE2MQpBdXRob3I6IFJvbiBNYWRyaWQgPHJvbl9tYWRyaWRAc2JjZ2xvYmFsLm5ldD4KRGF0ZToJV2VkIEphbiAyOCAxNjoxNzoyMSAyMDA5IC0wODAwCgogICAgTWFydmVsbCA4OEUxMTE4IGludGVycnVwdCBmaXgKCiAgICBUaGlzIHBhdGNoIGFkanVzdHMgdGhlIExFRCBjb250cm9sIHNvIHRoYXQgaW50ZXJydXB0IGxpbmVzIGFyZSBub3QgcmVhZGluZyBMRURzCiAgICBhbmQgZWZmZWN0aXZlbHkgY2F1c2luZyBpbmRlZmluaXRlIGludGVycnVwdHMgdG8gdGhlIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5YTM3ZjJhY2MzMWEzMjk2ZGRkZDM1NzRlYTllYWY3ZjMxOTgwN2I5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIxIDE3OjE0OjI2IDIwMDkgKzAxMDAKCiAgICBuZXQ6IHNtYzkxMXguYzogQWRkIExBTjkyMTEgdG8gY2hpcF9pZHNbXSBhcnJheQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNzVlZGViZTMwMTFjOTYzYTdjZDg0YmUwZjRhOTg3NDc3ZjJhYWY4OQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEphbiAyNyAxNjo1MzozOSAyMDA5IC0wNTAwCgogICAgTW92ZSBpc192YWxpZF9ldGhlcl9hZGRyKCkgdG8gaW5jbHVkZS9uZXQuaAoKICAgIEltcG9ydCB0aGUgaXNfdmFsaWRfZXRoZXJfYWRkcigpIGZ1bmN0aW9uIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDI2ODg1OTMzOGMwMTg4ZWFiMWQwZDNiODY3YjdkYWQzYzVjYzczNGEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKYW4gNSAxMjoyNToxMyAyMDA5ICswMTAwCgogICAgbmV0OiBTb3J0IE1ha2VmaWxlIGxhYmVscwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMWZiY2JlOWE5NWYzOWFmYjJkZjZhYjhjYmEyNWIyODRiNDdlYmZiMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjggMjM6MDY6NDIgMjAwOSArMDEwMAoKICAgIDg1eHg6IEZpeCBjb21waWxlIGJyZWFrYWdlIHdpdGggc2JjODU0MCBhbmQgc2JjODU2MAoKICAgIFRoaXMgZml4ZXMgYW4gZXJyb3Igd2hpY2ggcmFpc2VzIGp1c3QgYSB3YXJuaW5nOgogICAgc2JjODU2MC5jOjI1MDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdzdHJtaHonIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2MjYyNWMwYjA4MWJkNDAxOWNlY2FiMTRlOWZjMmUwNWU0OGQyYTU4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgSmFuIDI4IDEzOjQ4OjU1IDIwMDkgLTA1MDAKCiAgICBTUEQ4MjNUUzogZG8gbm90IGRlZmluZSBDT05GSUdfQ01EX0VOVgoKICAgIFNpbmNlIHRoZSBTUEQ4MjNUUyBib2FyZCBkb2VzIG5vdCBhY3R1YWxseSBoYXZlIGFueSB3cml0YWJsZSBmbGFzaCB0byBzYXZlCiAgICBpdHMgZW52aXJvbm1lbnQsIHVuZGVmaW5lIENPTkZJR19DTURfRU5WIHNvIHRoZSAic2F2ZWVudiIgY29tbWFuZCBpcwogICAgZGlzYWJsZWQuCgogICAgVGhpcyBmaXhlcyB0aGUgYnVpbGQgZXJyb3I6CiAgICBjb21tb24vbGliY29tbW9uLmEoY21kX252ZWRpdC5vKTogSW4gZnVuY3Rpb24gYGRvX3NhdmVlbnYnOgogICAgY29tbW9uL2NtZF9udmVkaXQuYzo1NTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHNhdmVlbnYnCiAgICBtYWtlOiAqKiogW3UtYm9vdF0gRXJyb3IgMQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA3Mzc5ZjQ1YTdiYzcxOTQxYzM5MjBjMmY2YjNjM2ZhYTRkN2ZkMzE1CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo0MDoxNiAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBab29tMSBib2FyZCBzdXBwb3J0CgogICAgU3VwcG9ydCBmb3IgWm9vbSBNREsgd2l0aCBPTUFQMzQzMC4gRGV0YWlscyBvZiBab29tIE1ESyBhdmFpbGFibGUgaGVyZToKICAgIGh0dHA6Ly93d3cubG9naWNwZC5jb20vcHJvZHVjdHMvZGV2a2l0L3RpL3pvb21fbW9iaWxlX2RldmVsb3BtZW50X2tpdAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pc2hhbnRoIE1lbm9uIDxubUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBLcmlkbmVyIDxqa3JpZG5lckBiZWFnbGVib2FyZC5vcmc+Cgpjb21taXQgMmJlMmM2Y2M2NzRlMjYyMzc5NjJmNWNmNGMwZDMxMWUxMzllNDI0MQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBKYW4gMjggMjE6Mzk6NTggMjAwOSArMDEwMAoKICAgIE9NQVAzOiBBZGQgUGFuZG9yYSBzdXBwb3J0CgogICAgQWRkIFBhbmRvcmEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmF6dnlkYXMgSWdub3RhcyA8bm90YXNhc0BnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gS3JpZG5lciA8amtyaWRuZXJAYmVhZ2xlYm9hcmQub3JnPgoKY29tbWl0IGFkOWJjOGU1MmQxNzRkNjk5ZDEzNjdiZTBiOTAwODllNGZkZWI5MzMKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglXZWQgSmFuIDI4IDIxOjM5OjU4IDIwMDkgKzAxMDAKCiAgICBPTUFQMzogQWRkIEVWTSBib2FyZAoKICAgIEFkZCBFVk0gYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYW5pa2FuZGFuIFBpbGxhaSA8bWFuaS5waWxsYWlAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEtyaWRuZXIgPGprcmlkbmVyQGJlYWdsZWJvYXJkLm9yZz4KCmNvbW1pdCA5ZDBmYzgxMTBlN2U3NTUyMzkzMjljMjZmMzAwZDVmYzk5NDZkM2VjCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTozOTo1NyAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBPdmVybyBib2FyZAoKICAgIEFkZCBPdmVybyBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlIFNha29tYW4gPHNha29tYW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEtyaWRuZXIgPGprcmlkbmVyQGJlYWdsZWJvYXJkLm9yZz4KCmNvbW1pdCBmOTA0Y2RiYjY4MTY3YzY0Nzg4N2YxOTkyOWFkMjk1ZGJhYWM4ODYyCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVHVlIEphbiAyNyAxODoxOToxMiAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBjb21tb24gcG93ZXIgY29kZSwgUkVBRE1FLCBhbmQgQmVhZ2xlQm9hcmQKCiAgICBBZGQgQmVhZ2xlQm9hcmQgc3VwcG9ydCwgY29tbW9uIHBvd2VyIGNvZGUgYW5kIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBLcmlkbmVyIDxqa3JpZG5lckBiZWFnbGVib2FyZC5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgoKY29tbWl0IDljZGE0ZjEwNGI1MzEzZmFkYzIxYjc1YWE3ODFjN2E2YWFmNmVhNjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDI4IDA4OjMxOjEwIDIwMDkgLTA2MDAKCiAgICA4NXh4OiBGaXggY29tcGlsZSBicmVha2FnZSB3aXRoIE1QQzg1NDBFVkFMCgogICAgQ29uZmlndXJpbmcgZm9yIE1QQzg1NDBFVkFMIGJvYXJkLi4uCiAgICBtcGM4NTQwZXZhbC5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CiAgICBtcGM4NTQwZXZhbC5jOjUzOiBlcnJvcjogaW52YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkgLwogICAgbWFrZVsxXTogKioqIFttcGM4NTQwZXZhbC5vXSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxYTQ0OGRiNzdiMTAxNTM3MDNiYzVlNGFkMTNkZDU1ZDg4YmViMWQ2CkF1dGhvcjogQnJ5YW4gV3UgPGJyeWFuLnd1QGFuYWxvZy5jb20+CkRhdGU6CVN1biBKYW4gMTggMjM6MDQ6MjcgMjAwOSAtMDUwMAoKICAgIHVzYl9zY2FuX2RldmljZXM6IGZpeCBvdXRwdXQgd2l0aCBubyBkZXZpY2VzCgogICAgV2Ugc2hvdWxkIGNoZWNrIHRoZSByZXR1cm4gb2YgdXNiX25ld19kZXZpY2UoKSBzbyB0aGF0IGlmIG5vIFVTQiBkZXZpY2UgaXMKICAgIGZvdW5kLCB3ZSBwcmludCBvdXQgdGhlIHJpZ2h0IG1lc3NhZ2UgcmF0aGVyIHRoYW4gYWx3YXlzIHNheWluZyAibmV3IHVzYgogICAgZGV2aWNlIGZvdW5kIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcnlhbiBXdSA8YnJ5YW4ud3VAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGYxYzFmNTQwMjQzNDM4MjQ2YWVmYjcwM2ZkY2YxNjk1N2UzYTcyZTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMjIgMTA6MTE6MjEgMjAwOSArMDEwMAoKICAgIFVTQjogQWRkIGhpZ2gtc3BlZWQgKDQ4ME1iL3MpIHRvIGFsbCBVU0IgcmVsYXRlZCBvdXRwdXRzCgogICAgV2l0aCB0aGlzIHBhdGNoIHRoZSBVU0IgcmVsYXRlZCBjb25uZWN0aW9uIHNwZWVkIG91dHB1dCAoInVzYiB0cmVlIiBjb21tYW5kIGFuZAogICAgZGVidWcgb3V0cHV0KSBpcyBub3cgaGlnaC1zcGVlZCBlbmFibGVkLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBhIGNvbXBpbGF0aW9uIHdhcm5pbmcgd2hlbiBkZWJ1Z2dpbmcgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBkYWEyZGFmYjQ1MGE4MDczYTRlNDJmZDQ2Y2Q0ZTk5NWIyMDhlNGNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIxIDE3OjEyOjE5IDIwMDkgKzAxMDAKCiAgICBVU0I6IEFkZCBkY2FjaGUgc3VwcG9ydCB0byB0aGUgRUhDSSBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgcm91dGluZXMgdG8gaGFuZGxlIChmbHVzaC9pbnZhbGlkYXRlKSB0aGUgZGNhY2hlIGZvciB0aGUKICAgIFFIIGFuZCBxVEQgc3RydWN0dXJlcyBhbmQgZGF0YSBidWZmZXJzLiBUaGlzIGlzIG5lZWRlZCBvbiBwbGF0Zm9ybXMgdXNpbmcKICAgIHRoaXMgRUhDSSBzdXBwb3J0IHdpdGggZGNhY2hlIGVuYWJsZWQgKGxpa2UgdGhlIE1JUFMgVkNUIGJvYXJkIHBvcnQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDRlMGVhMGVmYzFlNTAxMTg2YWNhODU3N2E0MDQyZmM2ZmE2NDE2MDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjEgMTc6MTI6MjggMjAwOSArMDEwMAoKICAgIFVTQjogQWRkIEVIQ0kgc3VwcG9ydCBmb3IgVkNUIEVIQ0kgY29udHJvbGxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDgzMmU2MTQxOGVlZGZlYTE3MmJkMmZkZmQwZWEwZDE5OWNjNzBhOWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjEgMTc6MTI6MTAgMjAwOSArMDEwMAoKICAgIFVTQjogQWRkIGNvbmZpZyBvcHRpb24gdG8gY2FsbCBlaGNpX2hjZF9pbml0KCkgYWdhaW4gYWZ0ZXIgRUhDSSByZXNldAoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29uZmlnIG9wdGlvbiBDT05GSUdfRUhDSV9IQ0RfSU5JVF9BRlRFUl9SRVNFVAogICAgdG8gY2FsbCBlaGNpX2hjZF9pbml0KCkgYWdhaW4gYWZ0ZXIgZWhjaV9yZXNldCgpIGlzIGV4ZWN1dGVkLiBUaGlzCiAgICBpcyBuZWVkZWQgZm9yIHRoZSB1cGNvbWluZyBWQ1QgRUhDSSBzdXBwb3J0IHdoaWNoIG5lZWRzIHRvIHJlLWluaXQKICAgIHRoZSBoY2QgcGFydCBhZ2FpbiBhZnRlciB0aGUgRUhDSSBDTURfUkVTRVQgaXMgZXhlY3V0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgNTk3ZWIyOGJkOTY5MTI2NmI3YjgwNDM2NGNkYTU3N2NkYjUxZDEwNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAxNzoxMjowMSAyMDA5ICswMTAwCgogICAgVVNCOiBGaXggc3BlZWQgZGV0ZWN0aW9uIG9uIEVIQ0kgY250ciB3aXRoIHJvb3QgaHViIHRyYW5zYWN0aW9uIHRyYW5zbGF0b3JzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSB0aGF0IHRoZSBzcGVlZCBvZiBVU0IgZGV2aWNlcyB3YXMgbm90IGRldGVjdGVkCiAgICBjb3JyZWN0bHkgb24gc29tZSBFSENJIGNvbnRyb2xsZXJzLiBUaGlzIHdpbGwgYmUgdXNlZCBvbiB0aGUgdXBjb21pbmcgVkNUCiAgICBFSENJIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMjBjYzA2NjExZWEzM2ZjMGE2N2E1ZTU2ZTY0NzYzNzlkMmRlMzA5MQpBdXRob3I6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgpEYXRlOglTdW4gSmFuIDQgMDk6NDE6MjAgMjAwOSArMDUzMAoKICAgIHVzYiA6IG11c2IgOiBFbmFibGluZyBVU0IgTVNDIHN1cHBvcnQgZm9yIERNNjQ0NiAoVEkgRGFWaW5jaSkgcGxhdGZvcm0KCiAgICBFbmFibGluZyBVU0IgTVNDIHN1cHBvcnQgZm9yIERNNjQ0NiAoVEkgRGFWaW5jaSkgcGxhdGZvcm0gaW4gdGhlCiAgICBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogUmF2aSBCYWJ1IDxyYXZpYmFidUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FtaW5hdGhhbiBTIDxzd2FtaS5peWVyQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWpheSBLdW1hciBHdXB0YSA8YWpheS5ndXB0YUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA1MzhlZjk2NzcxNTMyMmY2NGVlMDhlZmEyMjk2ZDk2ODIxMTFiMDE0CkF1dGhvcjogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CkRhdGU6CVN1biBKYW4gNCAwOTo0MToxNiAyMDA5ICswNTMwCgogICAgdXNiIDogbXVzYiA6IEVuYWJsaW5nIERNNjQ0NiAoVEkgRGFWaW5jaSkgVVNCIG1vZHVsZSBwb3dlcgoKICAgIEVuYWJsaW5nIERNNjQ0NiAoVEkgRGFWaW5jaSkgVVNCIG1vZHVsZSBwb3dlciBhbmQgTVVTQiBsb3ctbGV2ZWwKICAgIGNvbnRyb2xsZXIgaG9vayB1cCB0byBVU0IgY29yZSBsYXllci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhYnUgPHJhdmliYWJ1QHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN3YW1pbmF0aGFuIFMgPHN3YW1pLml5ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBamF5IEt1bWFyIEd1cHRhIDxhamF5Lmd1cHRhQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGUxNDJlOWYzNWY4ZWM2MWU3NGJmODAxOTQyOGIwMDNmNTA3MGMzM2IKQXV0aG9yOiBUaG9tYXMgQWJyYWhhbSA8dC1hYnJhaGFtQHRpLmNvbT4KRGF0ZToJU3VuIEphbiA0IDA5OjQxOjEzIDIwMDkgKzA1MzAKCiAgICB1c2IgOiBtdXNiIDogQWRkaW5nIERNNjQ0NiAoVEkgRGFWaW5jaSkgcGxhdGZvcm0gc3BlY2lmaWMgVVNCIHN1cHBvcnQKCiAgICBBZGRpbmcgRE02NDQ2IChUSSBEYVZpbmNpKSBwbGF0Zm9ybSBzcGVjaWZpYyBVU0IgZnVuY3Rpb25hbGl0eSBmb3IKICAgIFVTQiBQaHkgYW5kIFZCVVMgaW5pdGlhbGl6YXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogUmF2aSBCYWJ1IDxyYXZpYmFidUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FtaW5hdGhhbiBTIDxzd2FtaS5peWVyQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWpheSBLdW1hciBHdXB0YSA8YWpheS5ndXB0YUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBhOWQzOWViZTkxZWNkZDVhYzBhMGNmNTZlYTE2MmExOTc3M2RiOGRhCkF1dGhvcjogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CkRhdGU6CVN1biBKYW4gNCAwOTo0MTowOSAyMDA5ICswNTMwCgogICAgdXNiIDogbXVzYiA6IEFkZGluZyBVU0IgVkJVUyBlbmFibGUgZnVuY3Rpb25hbGl0eSBmb3IgRE02NDR4IERWRVZNCgogICAgQWRkaW5nIFVTQiBWQlVTIGVuYWJsZSBmdW5jdGlvbmFsaXR5IGZvciBETTY0NHggRFZFVk0gKFRJIERhVmluY2kpCiAgICBwbGF0Zm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhYnUgPHJhdmliYWJ1QHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN3YW1pbmF0aGFuIFMgPHN3YW1pLml5ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBamF5IEt1bWFyIEd1cHRhIDxhamF5Lmd1cHRhQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGExNDI4OTY5MzRjNzU1ZTY3OWJhODdlMjI3YThlNDQ5ZjM5YjAwMTIKQXV0aG9yOiBUaG9tYXMgQWJyYWhhbSA8dC1hYnJhaGFtQHRpLmNvbT4KRGF0ZToJU3VuIEphbiA0IDA5OjQxOjAzIDIwMDkgKzA1MzAKCiAgICB1c2IgOiBtdXNiIDogQWRkaW5nIGhvc3QgY29udHJvbGxlciBkcml2ZXIgZm9yIE1lbnRvciBVU0IgY29udHJvbGxlcgoKICAgIEFkZGluZyBNZW50b3IgVVNCIGNvcmUgZnVuY3Rpb25hbGl0eSBhbmQgTWVudG9yIFVTQiBIb3N0IGNvbnRyb2xsZXIKICAgIGZ1bmN0aW9uYWxpdHkgZm9yIE1lbnRvciBVU0IgT1RHIGNvbnRyb2xsZXIgKG11c2JoZHJjKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhYnUgPHJhdmliYWJ1QHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN3YW1pbmF0aGFuIFMgPHN3YW1pLml5ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBamF5IEt1bWFyIEd1cHRhIDxhamF5Lmd1cHRhQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGM3ZDcwM2YzZjNjM2Q2YjAyMGJkYTRjZjYzM2Y4YTYxNjdjM2NkMmEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBKYW4gMSAxODoyNzoyNyAyMDA5IC0wNTAwCgogICAgdXNiLmg6IHVzZSBzdGFuZGFyZCBfX0xJVFRMRV9FTkRJQU4gZnJvbSBMaW51eCBoZWFkZXJzCgogICAgUmF0aGVyIHRoYW4gZm9yY2luZyBwZW9wbGUgdG8gZGVmaW5lIGEgY3VzdG9tICJMSVRUTEVFTkRJQU4iLCBqdXN0IHVzZSB0aGUKICAgIF9fTElUVExFX0VORElBTiBvbmUgZnJvbSB0aGUgTGludXggYnl0ZW9yZGVyIGhlYWRlcnMgdGhhdCBldmVyeSBhcmNoIGlzCiAgICBhbHJlYWR5IHNldHRpbmcgdXAuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgN2I2ZTMxZWIxN2UzZmY3NjIzOGE2MDgwM2ZjNTMxNTE3ZDUxNjIyMwpBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJV2VkIERlYyAzMSAxMDozMzo1NiAyMDA4ICswMTAwCgogICAgVVNCIGVoY2kgaXhwNHh4IHN1cHBvcnQKCiAgICBBZGQgVVNCIGVoY2kgaXhwNHh4IGhvc3QgY29udHJvbGxlci4gVGVzdCBvbiBpeGRwNDY1IGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMWVkOWY5YWRjODgyMTg4NDFkZmViNjBiOTA5NGE1YTU0OGJmZjAwOQpBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJV2VkIERlYyAzMSAxMDozMzoyMiAyMDA4ICswMTAwCgogICAgVVNCIGVoY2kgcmVtb3ZlIGluZmluaXRlIGxvb3AgYW5kIHVzZSBoYW5kc2hha2UgZnVuY3Rpb24KCiAgICBVU0IgZWhjaSBjb2RlIGNsZWFudXAuIFVzZSBoYW5kc2hha2UgaW5zdGVhZCBvZiBpbmZpbml0ZSB3aGlsZSBsb29wCiAgICB0byBjaGVjayB0aGUgU1REX0FTUyBzdGF0dXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpbWljaGFlbEB5YWhvby5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDhmZWEyOTE0YWM5NzQwMjliNjU5MjZlZjgyNDdkOTA4Zjg0ZDIwMmQKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVdlZCBEZWMgMzEgMTA6MzI6NDEgMjAwOCArMDEwMAoKICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFVTQiBlaGNpIHBjaQoKICAgIEFkZCBVU0IgZWhjaSBwY2kgc3VwcG9ydC4gVGhpcyBwYXRjaCBkb2Vzbid0IGluY2x1ZGUgYW55CiAgICBwY2lfaWRzIGFuZCBpdCBpcyBub3QgdGVzdGVkIG9uIHJlYWwgaGFyZHdhcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaW1pY2hhZWxAeWFob28uaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCAxNGU0MTExY2RhYjdlNzczOGZmNmEyMDNkNDQ1ZTRkODM3N2YwNThmCkF1dGhvcjogQnJ5YW4gV3UgPEJyeWFuLld1QGFuYWxvZy5jb20+CkRhdGU6CVRodSBKYW4gMSAxOTo0ODowNyAyMDA5IC0wNTAwCgogICAgdXNiX3N0b3JhZ2U6IGRvIG5vdCByZXNldCBTYW5EaXNrIENvcnBvcmF0aW9uIFUzIENydXplciBNaWNybyBVU0IgdGh1bWIgZHJpdmUKCiAgICBUaGUgU2FuRGlzayBDb3Jwb3JhdGlvbiBVMyBDcnV6ZXIgTWljcm8gMS80R0IgRmxhc2ggRHJpdmUgMDAwMDE2MjQ0MzczRkZCNAogICAgZG9lcyBub3QgbGlrZSB0byBiZSByZXNldCwgc28gY2hlY2sgZm9yIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyeWFuIFd1IDxicnlhbi53dUBhbmFsb2cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMWViNzM0ZmVkM2I3OWE1ZTYxMDZkYWQxNmU4ODA0MTg5NGZkYWIzMApBdXRob3I6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgpEYXRlOglTdW4gSmFuIDQgMTI6MTU6MzUgMjAwOSArMDUzMAoKICAgIHVzYiA6IHVzYl9rYmQgOiBQb3B1bGF0aW5nICdwcml2JyBtZW1iZXIgb2YgVVNCIGtleWJvYXJkIGRldmljZV90IHN0cnVjdHVyZQoKICAgIFRoaXMgcGF0Y2ggcG9wdWxhdGVzIHRoZSAncHJpdicgZmllbGQgb2YgdGhlIFVTQiBrZXlib2FyZCBkZXZpY2VfdAogICAgc3RydWN0dXJlLiBUaGUgJ3ByaXYnIGZpZWxkIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBhZGRyZXNzIG9mIHRoZQogICAgJ3N0cnVjdCB1c2JfZGV2aWNlJyBzdHJ1Y3R1cmUgdGhhdCByZXByZXNlbnRzIHRoZSBVU0IgZGV2aWNlLgoKICAgIFRoZSAncHJpdicgZmllbGQgY2FuIHRoZW4gYmUgdXNlZCBpbiB0aGUgJ3VzYl9ldmVudF9wb2xsJyBmdW5jdGlvbiB0bwogICAgZGV0ZXJtaW5lIHRoZSBVU0IgZGV2aWNlIHRoYXQgcmVxdWlyZXMgdG8gYmUgcG9sbGVkLiBBbgogICAgZXhhbXBsZSBvZiBpdHMgdXNhZ2UgaW4gJ3VzYl9ldmVudF9wb2xsJyBmdW5jdGlvbiBpcyBhcyBiZWxvdy4KCglkZXZpY2VfdCAqZGV2OwoJc3RydWN0IHVzYl9kZXZpY2UgKnVzYl9rYmRfZGV2OwoKCTxzbmlwPgoKCWRldiA9IGRldmljZV9nZXRfYnlfbmFtZSgidXNia2JkIik7Cgl1c2Jfa2JkX2RldiA9IChzdHJ1Y3QgdXNiX2RldmljZSAqKWRldi0+cHJpdjsKCWlmYWNlID0gJnVzYl9rYmRfZGV2LT5jb25maWcuaWZfZGVzY1swXTsKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgQWJyYWhhbSA8dC1hYnJhaGFtQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDM2NjUyM2MyNmI2MzIwYWYxNzE0NTliMTllNmUwZTllM2JhYTgzY2EKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVRodSBEZWMgMTggMTA6MDU6MzcgMjAwOCArMDEwMAoKICAgIFVTQiBjaGFuZ2Ugc3BlZWQKCiAgICBVU0IgY2hhbmdlcyB0aGUgc3BlZWQgYWNjb3JkaW5nIHRvIHRoZSBwb3J0IHN0YXR1cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgYzBkNzIyZmU3ZWUxY2I0NTJkZmQ5MjQ2NDE5MTg4YjNmNmQ5YzRkZgpBdXRob3I6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJU2F0IERlYyAxMyAyMjo1MTo1OCAyMDA4ICswMTAwCgogICAgRUhDSSBmaXggY29kZSBhbmQgaXhwNHh4IHRlc3QuCiAgICBVU0IgZWhjaSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjoKCiAgICAjZGVmaW5lIENPTkZJR19DTURfVVNCCSAgICAxCiAgICAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQkgICAgMQogICAgI2RlZmluZSBDT05GSUdfVVNCX0VIQ0kKICAgICNkZWZpbmUgQ09ORklHX1VTQl9FSENJX0lYUDRYWAkxCiAgICAjZGVmaW5lIENPTkZJR19FSENJX0lTX1RESQkxCiAgICAjZGVmaW5lIENPTkZJR19FSENJX0RFU0NfQklHX0VORElBTiAgICAgMQogICAgI2RlZmluZSBDT05GSUdfRUhDSV9NTUlPX0JJR19FTkRJQU4gICAgIDEKICAgICNkZWZpbmUgQ09ORklHX1NZU19VU0JfRUhDSV9NQVhfUk9PVF9QT1JUUyAyCiAgICAjZGVmaW5lIENPTkZJR19MRUdBQ1lfVVNCX0lOSVRfU0VRCSAgICAxCgogICAgMiBVU0IgRGV2aWNlKHMpIGZvdW5kCgkgICBzY2FubmluZyBidXMgZm9yIHN0b3JhZ2UgZGV2aWNlcy4uLiAwIFN0b3JhZ2UgRGV2aWNlKHMpIGZvdW5kCiAgICA9PiB1c2IgdHJlZQoKICAgIERldmljZSBUcmVlOgogICAgICAxICBIdWIgKDEuNU1CaXQvcywgMG1BKQogICAgICB8ICB1LWJvb3QgRUhDSSBIb3N0IENvbnRyb2xsZXIKICAgICAgfAogICAgICB8Ky0yICBNYXNzIFN0b3JhZ2UgKDEyTUJpdC9zLCAxMDBtQSkKCSAgIFNvbnkgU3RvcmFnZSBNZWRpYSAwQzA3MDQwOTMwMjk2CgogICAgPT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpbWljaGFlbEB5YWhvby5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA1MWFiMTQyYjhiNTQ2ZDVlNjI3YjJjOGMzNmQwYWRhZTIyMjU2NWY3CkF1dGhvcjogbWljaGFlbCA8bWljaGFlbEBwYW5pY2tpbmcucmV0aXM+CkRhdGU6CVRodSBEZWMgMTEgMTM6NDM6NTUgMjAwOCArMDEwMAoKICAgIFtQQVRDSF0gVGhpcyBwYXRjaCBhZGQgdmFyaXVzIGZpeCB0byB0aGUgZWhjaS4KICAgIC0gZml4IGVoY2lfcmVhZGwsIGVoY2lfd3JpdGVsCiAgICAtIGludHJvZHVjZSBuZXcgZGVmaW5lIGluIGVoY2kuaAogICAgLSBpbnRyb2R1Y2UgdGhlIGhhbmRzaGFrZSBmdW5jdGlvbiBmb3Igd2FpdGluZyBvbiBhIHJlZ2lzdGVyCiAgICAtIGZpeCB1c2JfZWhjaV9mc2wgd2l0aCB0aGUgbmV3IEhDX0xFTkdUSCBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGRiNjMyOTliMWRkMjg5NGFkZTU0MjI3ODIxMGJjY2QwNDZkZTY0MzUKQXV0aG9yOiBtaWNoYWVsIDxtaWNoYWVsQHBhbmlja2luZy5yZXRpcz4KRGF0ZToJV2VkIERlYyAxMCAxNzo1NToxOSAyMDA4ICswMTAwCgogICAgW1BBVENIXSBGaXggRUhDSSB1c2IuIEkgc3RhcnQgdG8gdGVzdCBvbiBhCiAgICBJWFA0NjUgYm9hcmQgYW5kIEkgZmluZCBzb21lIGVycm9ycyBpbiB0aGUgY29kZS4gVGhpcwogICAgcGF0Y2ggZml4OgogICAgLSBkZXNjcmlwdG9yIGluaXRpemlhbGl6YXRpb24gKGNvbmZpZywgaW50ZXJmYWNlIGFuZCBlbmRwb2ludAogICAgICBtdXN0IGJlIG9uZSBuZXh0LXRvIHRoZSBvdGhlciB3aGVuIHRoZSBVU0JfRFRfQ09ORklHIG1lc3NhZ2UKICAgICAgaXMgc2VuZC4KICAgIC0gRklYIGxpdHRsZS9lbmRpYW4gYmlnZW5kaWFuIChpbnRyb2R1Y2UgdGhlIENPTkZJR19FSENJX0RFU0NfQklHX0VORElBTgogICAgICBhbmQgdGhlIENPTkZJR19FSENJX01NSU9fQklHX0VORElBTikKICAgIC0gSW50cm9kdWNlIHRoZSBsaW51eCB2ZXJzaW9uIG9mIHRoZSB1c2JfY29uZmlnX2Rlc2NyaXB0b3IgYW5kCiAgICAgIHVzYl9pbnRlcmZhY2UgZGVzY3JpcHRvci4gVGhpcyBkZXNjcmlwdG9yIGRvZXMndCBjb250YWlucwogICAgICB1LWJvb3QgZXh0ZW5zaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDZiOTI0ODdkY2Y5YWZlODNhMzU3MDE1M2Q2Njk0MGZkYjI5M2JlNzYKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CUZyaSBOb3YgMjggMTM6MjI6MDkgMjAwOCArMDEwMAoKICAgIFVTQiBlaGNpIGZyZWVzY2FsZSBzdXBwb3J0CgogICAgQWRkIFVTQiBlaGNpIGZyZWVzY2FsZSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGFhZjA5OGNmZWVkMDQ1OTVkNGM1MTAwZmZkMzkwOTVkNzllZGJmOTAKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CUZyaSBOb3YgMjggMTM6MjA6NDYgMjAwOCArMDEwMAoKICAgIFVTQiBlaGNpIGNvcmUgc3VwcG9ydAoKICAgIEFkZCBVU0IgZWhjaSBjb3JlIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IELDtmhtZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgM2UxMjY0ODRkZjc4NjhlMzQxNTQ1Y2NlNzQwYjI0YjYyYjBjZDNiNwpBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJRnJpIE5vdiAyOCAxMzoxOToxOSAyMDA4ICswMTAwCgogICAgUHJlcGFyZSBVU0IgbGF5ZXIgZm9yIGVoY2kKCiAgICBQcmVwYXJlIFVTQiBsYXllciBmb3IgZWhjaSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGEwY2IzZmMzMWU1ODk5NmExYzU3MzI3MTVhYzA0MTU5ZDRkMjg0ZmQKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVdlZCBEZWMgMTAgMTU6NTI6MDYgMjAwOCArMDEwMAoKICAgIFVTQiBzdG9yYWdlIGNsZWFudXAgcGF0Y2gKCiAgICBDbGVhbnVwIHVzYiBzdG9yYWdlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaW1pY2hhZWxAeWFob28uaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBmZTAzM2FkNmQwODgzMDYzZmU4NTcyMzdhYmI5NDM2ZmFiMDMyMDhjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gT2N0IDEyIDA2OjAyOjU1IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZml4dXAgbWlzYyB3YXJuaW5ncyBzdWNoIGFzIHByaW50ZidzIGFuZCBtaXNzaW5nIGNhc3RzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDFmNGEzYmI1MDM0MzcxOWM0MzRkN2UyNTQxYTJmODY0ODBhNmQyNWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBPY3QgMTIgMjI6MDk6MjYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBjb252ZXJ0IG9sZCBib2FyZHMgdG8gdXNlIENPQkpTLXkgTWFrZWZpbGUgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMWY3NWQ2ZjBmZjAwNTc2MmQzZTZhZDkyYWU0Y2UyYWIzNjZiM2JiNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMjozODozNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTMzLXN0YW1wOiByZXdyaXRlIHJlc291cmNlIHN3YXAgbG9naWMKCiAgICBUaGUgb2xkIHN3YXAgZnVuY3Rpb24gdGVuZGVkIHRvIGNsb2JiZXIgdW5yZWxhdGVkIHBpbnMgYW5kIHNjcmV3IHVwIG1hc2tzLgogICAgUmV3cml0ZSB0aGUgdGhpbmcgZnJvbSBzY3JhdGNoIHNvIGl0IG9ubHkgdXNlcyB0aGUgcmVzb3VyY2VzIGl0IG5lZWRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyOWQ0ZWEwYTkwNzNjODI0NjkxODQzMzEwMTAxMzZmNTJlZGY4ZGI2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIyOjA4OjQyIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYm9vdGxkcjogaW1wbGVtZW50IEJGNTN4L0JGNTZ4IExEUiBsb2FkZXIKCiAgICBUaGUgQkY1M3gvQkY1NnggcGFydHMgZG8gbm90IGhhdmUgYW4gb24tY2hpcCBST00gdG8gYm9vdCBMRFJzIG91dCBvZgogICAgYXJiaXRyYXJ5IG1lbW9yeSBsb2NhdGlvbnMsIHNvIGltcGxlbWVudCBhIGJhc2ljIG9uZSBpbiBzb2Z0d2FyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGIzNWUzYWVmZjZjMmQ3NDdjMzc2OTc5OTdiM2Y4YTgwODQzMjMyOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMjowNTo0MiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGltcGxlbWVudCByZWFsIHdyaXRlIHN1cHBvcnQgZm9yIE9UUAoKICAgIE5vdyB0aGF0IHJlYWwgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiByZWxlYXNlZCBmb3IgdGhlIE9UUCBpbnRlcmZhY2UgYW5kCiAgICB0aGUgb24tY2hpcCBST00gd3J0IHdyaXRpbmcvdGltaW5ncywgaW1wbGVtZW50IHN1cHBvcnQgZm9yIHJlYWRpbmcvd3JpdGluZwogICAgYXMgd2VsbCBhcyBkdW1waW5nL2xvY2tpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDkzNzJjMzIxNDgwOGZhYjU0NTIyN2Q4ZDBmNzZiM2JmY2M2NzYwZWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjI6MDQ6MDUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgb24tY2hpcCBST00gQVBJCgogICAgVGhpcyBicmluZ3MgdGhlIEFQSSBmb3IgdGhlIG9uLWNoaXAgUk9NIGluIGxpbmUgd2l0aCB0aGUgdG9vbGNoYWluIGFuZAogICAgaGFyZHdhcmUgZG9jdW1lbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzYzMzkwM2JmZjQzMmVjN2IyNzkwNWRjZTczOTY5NTg1NTNmMmJlNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMTo1MjoxNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGFsbG93IHNlcmlhbCBjb25zb2xlIHRvIGJlIGRpc2FibGVkCgogICAgU29tZSBkZXZpY2VzIGhhdmUgbm8gVUFSVCBkZXZpY2UgcHVsbGVkIG91dCwgc28gYWxsb3cgcGVvcGxlIHRvIGRpc2FibGUgdGhlCiAgICBkcml2ZXIgY29tcGxldGVseSBpbiBmYXZvciBvZiBvdGhlciBtZXRob2RzIChsaWtlIEpUQUctY29uc29sZSkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDM2ZWE4ZTlhZDExMDdhZjEyZDI0NGJiYThjNzNlODViOWY2NTVlNDUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NTE6MjAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzdXBwb3J0IGNvbnNvbGUtb3Zlci1KVEFHCgogICAgVGhlIEJsYWNrZmluIEpUQUcgaGFzIHRoZSBhYmlsaXR5IHRvIHBhc3MgZGF0YSB2aWEgYSBiYWNrLWNoYW5uZWwgd2l0aG91dAogICAgaGFsdGluZyB0aGUgcHJvY2Vzc29yLiAgVXRpbGl6ZSB0aGF0IGNoYW5uZWwgdG8gZW11bGF0ZSBhIGNvbnNvbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGNmOGYyZWZiNWYzOWM1MjI1ZGE5MjM5MWMxNGEwN2VlY2JlY2E4ODEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NDk6MDYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBoYW5kbGUgbmV3IGFub21hbGllcyB3aXRoIHJlc2V0CgogICAgV29ya2Fyb3VuZCBmdW4gbmV3IGFub21hbGllcyByZWxhdGVkIHRvIHNvZnR3YXJlIHJlc2V0IG9mIHRoZSBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGIxZTk0MzViNjQzMDQzZGQ4ZmJkMWZjYzQ3MzA5YzZhY2I3YjNjOGUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NDQ6MDAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBwYXNzIFJFVFggdG8gTGludXgKCiAgICBNYWtlIHN1cmUgd2Ugc2F2ZSB0aGUgdmFsdWUgb2YgUkVUWCBhdCBwb3dlciBvbiBhbmQgdGhlbiBwYXNzIGl0IG9uIHRvIHRoZQogICAga2VybmVsIHNvIHRoYXQgaXQgY2FuIG5pY2VseSBkZWJ1ZyBhICJkb3VibGUtZmF1bHQtY2F1c2VkLWEtcmVzZXQiIGNyYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNWViYTNmYWZjY2NkMTk3OTM4MGYxMmEyNTZiZDBlMTliZTNkNjFlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIxOjQwOjI2IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogY2xhcmlmeSByZWxvY2F0aW9uIGNvbW1lbnQgZHVyaW5nIGluaXQKCiAgICBQZW9wbGUgb2Z0ZW4gYXNrIHF1ZXN0aW9ucyBhYm91dCB0aGUgaW5pdCBwcm9jZXNzIGFuZCB3aGVuIHRoaW5ncyBnbwogICAgZnJvbSBmbGFzaCB0byByZWxvY2F0ZWQgYmFzZSwgc28gY2xhcmlmeSB0aGUgY29tbWVudHMgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk1NDMzZjZkNDNlZGU2YjQwYzFkOTAwZjNmNzA0YzgzOWFhMDc0ZjEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6MjM6NDEgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBqdXN0IHNldCBTUCByZWdpc3RlciBkaXJlY3RseSBkdXJpbmcgaW5pdAoKICAgIE5vIG5lZWQgdG8gc2V0IHRoZSBTUCByZWdpc3RlciBpbmRpcmVjdGx5IHRvIHRoZSBjb25maWd1cmVkIHZhbHVlIHdoZW4gaXQKICAgIGNhbiBiZSBzZXQgZGlyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDUxMjMwZTZlMzU2Y2NmNGM5MzJlMGM0ZmY1NGYxZTQ5ZGEwMjI4NWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6MTU6NTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgcG9ydG11eGluZyBmb3IgVUFSVHMgb24gdGhlIEJGNTF4CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDRmNmEzMTMyNDBjNTMxMDQyZjE2OTA5YTNhMTcwYWIwNDdiOTU3NzkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBKdW4gMSAwMToyNjoyOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHJlc3BlY3QgQ09ORklHX0NMS0lOX0hBTEYKCiAgICBBcyBwb2ludGVkIG91dCBieSBJdmFuIEtvcnlha292c2tpeSwgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgd2FzIG5vdAogICAgYWN0dWFsbHkgcmVzcGVjdGluZyB0aGUgQ09ORklHX0NMS0lOX0hBTEYgb3B0aW9uIHdoZW4gY29uZmlndXJpbmcgdGhlCiAgICBQTExfQ1RMIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkYzJiZmIwYjU4ZDc0NjJiOWViYTY4ZjNhZTM4ZTM4Y2FkYTBhZDMzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gSnVuIDEgMDE6MjE6MzQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1c2UgY29tbW9uIG1lbWNweSByb3V0aW5lIGR1cmluZyBpbml0CgogICAgUmF0aGVyIHRoYW4gdXNpbmcgYSBsb2NhbCBjdXN0b20gbWVtY3B5IGZ1bmN0aW9uLCBqdXN0IGNhbGwgdGhlIGV4aXN0aW5nCiAgICBvcHRpbWl6ZWQgQmxhY2tmaW4gdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzYyYzk0MzM0NzM2NGU5MzczYWY0YzU1MzA3Nzg0OTFhYjU2ZWMyZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEFwciA5IDAyOjI3OjA2IDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogc2V0IGRlZmF1bHQgYm9vdCBTUEkgQ1MgZm9yIEJGNTM4L0JGNTM5CgogICAgVGhlIEJGNTM4L0JGNTM5IHVzZSBDUzIgZm9yIGJvb3Rpbmcgb2ZmIG9mIHJhdGhlciB0aGFuIENTMSBsaWtlIG5ld2VyCiAgICBCbGFja2ZpbiBwYXJ0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzRkZGU4MGJkNWQ1NWJjMTQ2NjMwODUzY2ExOTFhYWVlYTdjMzBmNApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEFwciA5IDAyOjIwOjU5IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcHVudCB1bnVzZWQgQkY1MzMtU1RBTVAgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmVlNTMxZWVlZmMzYjVmMmM2M2M3ZmUyN2I5ZjU1ZDkyNGM1OWMyNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIEFwciAxOCAyMDo0NDoxMSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHJlc3VycmVjdCBCRjUzMy1TVEFNUCB2aWRlbyBzcGxhc2ggZHJpdmVyCgogICAgVGhpcyB2aWRlbyBkcml2ZXIgdXNlZCB0byBsaXZlIGluIHRoZSBCbGFja2ZpbiBjcHUgZGlyZWN0b3J5LCBidXQgaXQgd2FzCiAgICBsb3N0IGR1cmluZyB0aGUgdW5pZmljYXRpb24gcHJvY2Vzcy4gIFRoaXMgYnJpbmdzIGl0IGJhY2suCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGE3NTBkMDM4ZjI1NDhkODQ2ZWExZTA0NmQ4NzNkYzkzMmQwNDEzMTkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBBcHIgOSAwMjozMToyOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHRpZ2h0ZW4gdXAgcG9zdCBtZW1vcnkgY29kaW5nIHN0eWxlCgogICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGhlcmU7IGp1c3QgY2xlYW51cCBjb2RlIHN0eWxlIGEgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwNjQ5OTA4ZjkyYzliZDIxNGRkMTM5YWEzZDQ2OThjMTY1NGE0NWM2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgQXByIDkgMDI6Mjk6MTggMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUzNy1zdGFtcCBuYW5kOiBmaXggbW9yZSBzdHlsZSBlcnJvcnMgaW4gcHJldmlvdXMgY29tbWl0CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQxZjMzMjVhZTlhZGQ2NDEwMzZkN2NiMzYyZTg4NGI2OThlNTNmMDcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjA6MzE6MTcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBkcm9wIGRlYWQvd3JvbmcgZGVidWcgY29kZSBpbiBpbml0ZHJhbSgpCgogICAgVGhlIERFQlVHIGNvZGUgaW4gaW5pdGRyYW0oKSBpcyBxdWl0ZSBvbGQgYW5kIHdhcyBuZXZlciByZWFsbHkgdXNlZnVsLCBzbwogICAganVzdCBkcm9wIGl0IGFsdG9nZXRoZXIuICBDb21tb24gQmxhY2tmaW4gZGVidWcgY29kZSBkb2VzIGEgYmV0dGVyIGpvYi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNjViYTFhYmQzYjkwZTBiMjU4NTc0NTgwOWI3OGUyNjUxYmQzYmFjYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMDozMDoyOCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTMzLWV6a2l0OiBzaHVmZmxlIGZsYXNoIGRlZmluZXMgYSBsaXR0bGUKCiAgICBTb21lIG9mIHRoZSBmbGFzaCBkZWZpbmVzIHdlcmVuJ3QgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24gYW5kIGNhdXNlZCBidWlsZAogICAgcHJvYmxlbXMgaW4gc29tZSBjb25maWd1cmF0aW9ucywgc28gbGV0J3MgbW92ZSB0eXBlcyBhbmQgZGVmaW5lcyB0byBiZXR0ZXIKICAgIGxvY2FsIGxvY2F0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmU4NTNiZjg2YjQxZTkxZjRjNDIyZjBmNTZmZGY4N2VhMzE5MTI2NgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDA0OjE2OjQ3IDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogb3ZlcmhhdWwgaTJjIGRyaXZlcgoKICAgIFRoZSBjdXJyZW50IEJsYWNrZmluIGkyYyBkcml2ZXIgZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aXRoIGNlcnRhaW4gZGV2aWNlcwogICAgZHVlIHRvIGl0IGJyZWFraW5nIHVwIHRyYW5zZmVycyBpbmNvcnJlY3RseS4gIFRoaXMgaXMgYSByZXdyaXRlIG9mIHRoZQogICAgZHJpdmVyIGFuZCByZWxvY2F0ZXMgaXQgdG8gdGhlIG5ld2VyIHBsYWNlIGluIHRoZSBzb3VyY2UgdHJlZS4KCiAgICBBbHNvIHJlbW92ZSBkdXBsaWNhdGVkIEkyQyBzcGVlZCBkZWZpbmVzIGluIEJsYWNrZmluIGJvYXJkIGNvbmZpZ3MgYW5kCiAgICBkaXNhYmxlIEkyQyBzbGF2ZSBhZGRyZXNzIHVzYWdlIHNpbmNlIGl0IGlzbid0IGltcGxlbWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNmVkYzcxOWExMDZhYjdmYTZlNjk1MGI0ZDk3YmMzOWMxMzY4ZTQ1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDQ6MDA6MDcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiByZXNwZWN0IENPTkZJR19TWVNfTU9OSVRPUl9MRU4gZm9yIGRlZmF1bHQgZmxhc2ggcHJvdGVjdGlvbgoKICAgIFJlc3BlY3QgdGhlIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gZGVmaW5lIHJhdGhlciB0aGFuIGFzc3VtaW5nIGEgc2l6ZSBvZgogICAgMTI4a0Igd2hlbiBzZXR0aW5nIHVwIHRoZSBkZWZhdWx0IGZsYXNoIHByb3RlY3Rpb24gcmVnaW9uIGZvciBVLUJvb3QKICAgIGl0c2VsZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzhhMGJhN2RjMjRjOTY4MjM3MWY2ZWU4NTQ5YjU2OWZiNTczYTMyOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjU3OjM5IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcmVzcGVjdC9jaGVjayBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUKCiAgICBXaGVuIHNldHRpbmcgdXAgdGhlIGdsb2JhbCBkYXRhLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHNpemVvZigpLCB1c2UgdGhlCiAgICBjb21tb24gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIGRlZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDE4MTVjMmQwNmM1YjgzOGYyY2Q1MzY3MDNlNDdiZDJjOTE0ODE5NApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjUyOjI0IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogaW1wbGVtZW50IGdlbmVyYWwgc3VwcG9ydCBmb3IgQ09ORklHX1NUQVRVU19MRUQKCiAgICBIZXJlIGFyZSB0aGUgQmxhY2tmaW4tc3BlY2lmaWMgYW5kIGJvYXJkLWluZGVwZW5kZW50IHBpZWNlcyBmb3Igc3RhdHVzIGxlZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY4ODJiNWE3OWEzMjQ3NDk0YjYyYzA1MDE1ZmE2NzI1NTdmMWJmYWEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBPY3QgNiAwMzo0OTozMiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvIG5vdCBpbml0IGkyYyBpbiBCbGFja2ZpbiBib2FyZCBpbml0CgogICAgVGhlIGNvbW1vbiBjb2RlIHRha2VzIGNhcmUgb2YgY2FsbGluZyBpMmNfaW5pdCgpIHdoZW4gbmVlZGVkLCBzbyBubyBwb2ludAogICAgaW4gdXMgZG9pbmcgaXQgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMTExOGVhNzM2OThlZWU2ZTcyZWY1Y2JmYzAwZTQxNzQ2MDQwMzA0ZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjQyOjIwIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IHVwZGF0ZSBwb3J0IG11eGluZwoKICAgIEFkZHMgc3VwcG9ydCBtb3JlIEJsYWNrZmluIHBhcnRzIGFuZCBmaXhlcyBicm9rZW4gbXV4aW5nIGZvciBvbGRlciBvbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwNWI3NWU0ODgzMmZjNGFmZWVjZjhlNzZkNzA0MzQ5NTU3ZGZmYTM1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6MzU6NDQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggZGNhY2hlIGhhbmRsaW5nIHdoZW4gZG9pbmcgZG1hIG1lbWNweSdzCgogICAgT3VyIGRjYWNoZSBpbnZhbGlkYXRlIGZ1bmN0aW9uIGRvZXNuJ3QganVzdCBpbnZhbGlkYXRlLCBpdCBhbHNvIGZsdXNoZXMuCiAgICBTbyByZW5hbWUgdGhlIGZ1bmN0aW9uIGFjY29yZGluZ2x5IGFuZCBmaXggdGhlIGRtYV9tZW1jcHkoKSBmdW5jdGlvbiBzbyBpdAogICAgZG9lc24ndCBpbmFkdmVydGVudGx5IGNvcnJ1cHQgdGhlIGRhdGEgZGVzdGluYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY4ZTU2MzI0OTQxNjgwOTVkNzVmMTIwYWY3MDA0M2I2OGFmZDI0NzYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxODo1Njo1NiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvbnQgZ2VuZXJhdGUgbGRycyB3aXRoIC0tZm9yY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzQ2MjkwZGZkODZhNzBiNDFmYzVmZGQzZGYxNDI0YTY0N2Q1YzVlOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE4OjU1OjMwIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcGFzcyAtLWJtb2RlLy0taW5pdGNvZGUgd2hlbiBjcmVhdGluZyBsZHIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDMzMmU0ZGY3MWZjY2Y5YTk2YzVhNDM5M2UzYzVkNWRhYTUwODgwYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE4OjM5OjI3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogbWluaW1pemUgdGltZSBjYWNoZSBpcyB0dXJuZWQgb2ZmIHdoZW4gcmVwbGFjaW5nIGNwbGIgZW50cmllcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyMWQ2MzEzNjA0MzBjZjBhZTkwOTk2MTIyNzNjZDRkZTI4OTExYmE5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTU6MzE6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzcGxpdCBjYWNoZSBoYW5kbGluZyBvdXQgb2YgZG1hX21lbWNweSgpCgogICAgQ3JlYXRpbmcgYSBuZXcgZG1hX21lbWNweSgpIGZ1bmN0aW9uIHRoYXQgc2tpcHMgYWxsIGNhY2hlIGNoZWNrcyBhbGxvd3MgdXMKICAgIHRvIHVzZSB0aGUgZnVuY3Rpb24gaW4gdmVyeSBlYXJseSBpbml0IHdoZXJlIHRoZSBjYWNoZSBpcyBub3QgeWV0IHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkMzFlYjM4NTEyYmVkMzc3ZDVkNGIzYzY5NjY2MmU1MjEyMGEyZTRjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTU6MzA6NDkgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhYm9ydCBkbWFfbWVtY3B5KCkgZm9yIEwxIHNjcmF0Y2hwYWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgODFiNzk5YWRkNzA5MTc3ZTgzODQ2NjQ2MWY3Yjk5ODk0ODhiMGZkNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE1OjI3OjUyIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcmVuYW1lIGJvb3RtLmMgdG8gYm9vdC5jCgogICAgVGhlIGJvb3QgZmlsZSBjb250YWlucyBmdW5jdGlvbnMgZm9yIG1vcmUgdGhhbiBqdXN0ICJib290bSIsIHNvIHJlbmFtZSBpdAogICAgYWNjb3JkaW5nbHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ3Y2E3ZGQ1YmZjNDE4YWMxNzNlOWQyNzEyZjZjYzJkODE0N2EwOTEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxMzoyMjozNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHNldCBtb3JlIHNhbmUgZGVmYXVsdCBib2FyZCBjb25maWcgdmFsdWVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDM2Y2Q1MmEwMDc5NGZiMTVmZmFiMDVkNjQwYWNjYTkyZDc0ODI5OTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxNToyNDo1OSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGNvbnZlcnQgQ01EX0xJTkVfQUREUiB0byBDT05GSUdfTElOVVhfQ01ETElORV97QUREUixTSVpFfQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjODA1NGJjMTJlMDA2NjliZDc1ODhmMmIzMGZlZjQ4YWE5NGJhYmFjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MjE6MjcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgYml0IGRlZmluZXMgZm9yIEREUiBwYXJ0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxNTQ1MDJmZTA3OTZmM2I3YTQ2OTgzNzhjNWQyMDgwYWUyOGE5NzgyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MjE6MTEgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgZGVmaW5lcyB0byBkZXNjcmliZSBhY3RpdmUgYm9vdHJvbSBiZWhhdmlvcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyYjZmZDVjNzdkYjljNmVkM2NlYTk3OTljODZmZjkyMmNmMDEwN2IyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAyNyAxNjowMzo1MyAyMDA5IC0wNjAwCgogICAgbXBjODN4eDogZml4IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGZsdXNoX2NhY2hlJyBlcnJvciBpbiBzaW1wYzgzMTMgYnVpbGQKCiAgICBleHRlbmQgY29tbWl0IGM3MDU2NGU2YjFiZDA4ZjMyMzAxODIzOTIyMzg5MDdmMzUzMWE4N2UKICAgICJOQU5EOiBGaXggY2FjaGUgYW5kIG1lbW9yeSBpbmNvbnNpc3RlbmN5IGlzc3VlIiB0byBhZGQgdGhlIGNhY2hlLm8gZGVwZW5kZW5jeQogICAgdG8gdGhlIHNpbXBjODMxMyBidWlsZCBhbmQgZml4IHRoaXM6CgogICAgLi4uTGFyZ2UgUGFnZSBOQU5ELi4uQ29uZmlndXJpbmcgZm9yIFNJTVBDODMxMyBib2FyZC4uLgogICAgbmFuZF9ib290X2ZzbF9lbGJjLm86IEluIGZ1bmN0aW9uIGBuYW5kX2Jvb3QnOgogICAgbmFuZF9zcGwvYm9hcmQvc2hlbGRvbi9zaW1wYzgzMTMvbmFuZF9ib290X2ZzbF9lbGJjLmM6MTUwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmbHVzaF9jYWNoZScKICAgIG1ha2VbMV06ICoqKiBbL2hvbWUvcjFhYWhhL2dpdC91LWJvb3QtbXBjODN4eC9uYW5kX3NwbC91LWJvb3Qtc3BsXSBFcnJvciAxCiAgICBtYWtlOiAqKiogW25hbmRfc3BsXSBFcnJvciAyCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NGE3Y2M0OTEyZmVlZmE0NWJlOTYxY2M0N2NjMTU5NTYzNzI1ZDJmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyOCAwOToyNTozMSAyMDA5ICswMTAwCgogICAgbXBjODUzNmRzLmM6IGluY2x1ZGUgc2F0YS5oIHRvIGZvciBuZWVkZWQgZnVuY3Rpb24gcHJvdG90eXBlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmZiMjYwNGQ1YzIwYmViMDYxYjBhOTQyODJiN2Y2ZWIxNGQwMGNiOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBKYW4gMjcgMTg6MDM6MTIgMjAwOSAtMDYwMAoKICAgIENvbW1hbmQgdXNhZ2UgY2xlYW51cAoKICAgIFJlbW92ZSBjb21tYW5kIG5hbWUgZnJvbSBhbGwgY29tbWFuZCAidXNhZ2UiIGZpZWxkcyBhbmQgdXBkYXRlCiAgICBjb21tb24vY29tbWFuZC5jIHRvIGRpc3BsYXkgIm5hbWUgLSB1c2FnZSIgaW5zdGVhZCBvZgogICAganVzdCAidXNhZ2UiLiBBbHNvIHJlbW92ZSBuZXdsaW5lcyBmcm9tIGNvbW1hbmQgdXNhZ2UgZmllbGRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNzk2MjFiYzEwYmE4YjhjNDVkMzQ4OTk0YWJhNWI5ZTQ5MjNjYjc3YgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBKYW4gMjcgMTg6MDM6MTEgMjAwOSAtMDYwMAoKICAgIGFtY2M6IENsZWFuIHVwIGNvbW1hbmQgdXNhZ2Ugb3V0cHV0CgogICAgVXBkYXRlIHRhaWh1IGFuZCB0YWlzaGFuIGNvbW1hbmRzIHRvIHVzZSBjbWRfdXNhZ2UoKSBmdW5jdGlvbgogICAgdG8gZGlzcGxheSB1c2FnZSBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDYyYzNhZTdjNmVmMjE1YjFhZmE2MTRhYmRmNjFhY2YwNzc3NTIyMDcKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgSmFuIDI3IDE4OjAzOjEwIDIwMDkgLTA2MDAKCiAgICBTdGFuZGFyZGl6ZSBjb21tYW5kIHVzYWdlIG1lc3NhZ2VzIHdpdGggY21kX3VzYWdlKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDg0Y2RlMmJiNDA5YzA3YzZlZjM2YTE5MmQxOTQzNTlkNGU5Y2NkNzAKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgSmFuIDI3IDE4OjAzOjA5IDIwMDkgLTA2MDAKCiAgICBwY3M0NDBlcDogQ2xlYW4gdXAgbGVkIGNvbW1hbmQgZGVmaW5pdGlvbgoKICAgIFRoZSBwY3M0NDBlcCdzIGxlZCBjb21tYW5kIHVzYWdlIGZvcm1hdHRpbmcgaXMgbm9uLXN0YW5kYXJkLiAgSXQKICAgIHdhcyBtYWRlIHN0YW5kYXJkIGluIHByZXBhcmF0aW9uIGZvciBsYXJnZXIgY29tbWFuZCB1c2FnZSB1cGRhdGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgOTUwN2U3ODY3ZTA0ZGM0OGM4MGVlMzMzYzJhOWE1ZTcwZTg4N2Y2MgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBKYW4gMjcgMTg6MDM6MDggMjAwOSAtMDYwMAoKICAgIENsZWFuIHVwIGRpdWZiIGNvbW1hbmQgZGVmaW5pdGlvbnMKCiAgICBUaGUgZGl1ZmIgY29tbWFuZCB1c2FnZSBmb3JtYXR0aW5nIGlzIG5vbi1zdGFuZGFyZC4gIEl0IHdhcwogICAgbWFkZSBzdGFuZGFyZCBpbiBwcmVwYXJhdGlvbiBmb3IgbGFyZ2VyIGNvbW1hbmQgdXNhZ2UgdXBkYXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDY0NTBhODQ4NTgzNmZjODA2MTVhZTZkZTZhODY0YzMzMzY5YjQ0ZjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDI4IDAwOjI5OjI2IDIwMDkgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCB0aW55IGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2Y3ZTM5OWZiMzViM2FlYTkwYTI3ZDFkZjcyZjQ1ZjVkNjE1NjIwNApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEphbiAyNyAxNjoxMjoyMSAyMDA5IC0wNTAwCgogICAgU0FUQTogZG8gbm90IGF1dG8taW5pdGlhbGl6ZSBkdXJpbmcgYm9vdAoKICAgIFJhdGhlciB0aGFuIGhhdmUgdGhlIGJvYXJkIGNvZGUgaW5pdGlhbGl6ZSBTQVRBIGF1dG9tYXRpY2FsbHkgZHVyaW5nIGJvb3QsCiAgICBtYWtlIHRoZSB1c2VyIG1hbnVhbGx5IHJ1biAic2F0YSBpbml0Ii4gIFRoaXMgYnJpbmdzIHRoZSBTQVRBIHN1YnN5c3RlbSBpbgogICAgbGluZSB3aXRoIGNvbW1vbiBVLUJvb3QgcG9saWN5LgoKICAgIFJhdGhlciB0aGFuIGhhdmluZyBhIGRlZGljYXRlZCB3ZWFrIGZ1bmN0aW9uICJpc19zYXRhX3N1cHBvcnRlZCIsIHBlb3BsZQogICAgY2FuIG92ZXJyaWRlIHNhdGFfaW5pdGlhbGl6ZSgpIHRvIGRvIHRoZWlyIHdlaXJkIGJvYXJkIHN0dWZmLiAgVGhlbiB0aGV5CiAgICBjYW4gY2FsbCB0aGUgYWN0dWFsIF9fc2F0YV9pbml0aWFsaXplKCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDUwOTcwODM5NzEyZGRhMzUzOTllMmZhODNmZTgxOGRmOTM1NGQ2MTgKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgpEYXRlOglNb24gSmFuIDI2IDA4OjQ1OjE0IDIwMDkgLTA1MDAKCiAgICBwYXJ0X2VmaTogRml4IHBhcnRpdGlvbiBzaXplIGNhbGN1bGF0aW9uIGR1ZSB0byBpbmNsdXNpdmUgZW5kaW5nIExCQS4KCiAgICBUaGUgZW5kaW5nIExCQSBpcyBpbmNsdXNpdmUuIEhlbmNlLCB0aGUgcGFydGl0aW9uIHNpemUgc2hvdWxkIGJlCiAgICAoKGVuZGluZy1MQkEgKyAxKSAtIHN0YXJ0aW5nLUxCQSkgdG8gZ2V0IHRoZSBwcm9wZXIgcGFydGl0aW9uIHNpemUuCgogICAgVGhpcyBpcyBjb25maXJtZWQgYWdhaW5zdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSBwYXJ0ZWQgdG9vbC4KICAgIChlLmcuIHVzZSBwYXJ0ZWQgL2Rldi9zZGEgLXMgdW5pdCBTIHByaW50KSBhbmQgb2JzZXJ2ZSB0aGUgc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgoKY29tbWl0IGI1YjAwNGFkOGEwYWM2Zjk4YmQ1NzA4ZWM4YjIyZmJkZGQxYzEwNDIKQXV0aG9yOiBUb21hc3ogRmlnYSA8dG9tYXN6LmZpZ2FAZ21haWwuY29tPgpEYXRlOglUdWUgRGVjIDMwIDE4OjM1OjU3IDIwMDggKzAxMDAKCiAgICBqZmZzMjogRml4IHplcm8gc2VjdG9yX3NpemUgd2hlbiBub3QgdXNpbmcgQ09ORklHX0pGRlMyX0NNRExJTkUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnICg/KSBpbnRyb2R1Y2VkIGFmdGVyIGluY2x1c2lvbiBvZiB0aGUgbmV3CiAgICBKRkZTMiBjb2RlLgoKICAgIFdoZW4gbm90IHVzaW5nIENPTkZJR19KRkZTMl9DTURMSU5FLCB0aGUgY29kZSBpbiBjbWRfamZmczIuYyBkb2Vzbid0CiAgICBmaWxsIGluIHBhcnQtPnNlY3Rvcl9zaXplIChrZWVwaW5nIGl0IGFzIDApLCBidXQgYSBjb3JyZWN0IHZhbHVlIGlzCiAgICBuZWVkZWQgYnkgdGhlIGNvZGUgaW4gamZmczJfMXBhc3MuYy4gVGhpcyBjYXVzZXMgYWxsIEpGRlMyIGFjY2Vzc2VzCiAgICB0byBiZSBpbiB0aGUgc2FtZSBwbGFjZSBvZiB0aGUgbWVtb3J5LCB3aGF0IG9idmlvdXNseSBtZWFucwogICAgaW1wb3NzaWJpbGl0eSB0byB1c2UgdGhlIEpGRlMyIHBhcnRpdGlvbi4KCiAgICBUaGlzIHByb2JsZW0gaXMgZml4ZWQgaW4gdGhpcyBwYXRjaCBieSBpbmNsdWRpbmcgc2VjdG9yIHNpemUKICAgIGNhbGN1bGF0aW9uIGluIG5vbi1DT05GSUdfSkZGUzJfQ01ETElORSBtdGRwYXJ0c19pbml0IHZhcmlhbnQuCgogICAgU2lnbmVkLW9mZi1ieTogVG9tYXN6IEZpZ2EgPHRvbWFzei5maWdhX2F0X2dtYWlsLmNvbT4KCmNvbW1pdCBiYTY5ZGMyNmE1ZmQ2MDZkYTQ5NTczYmIyZjE1ZTc1NmEzNGYzZjk4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDMwIDAyOjU5OjI1IDIwMDggLTA1MDAKCiAgICBzYXZlZW52OiBzdGFuZGFyZGl6ZSBlbmFibGVtZW50CgogICAgUmF0aGVyIHRoYW4gc3BlY2lhbCBjYXNpbmcgZWFjaCBlbnZpcm9ubWVudCB0eXBlIGZvciBlbmFibGluZyB0aGUgc2F2ZWVudgogICAgY29tbWFuZCwgaGF2ZSB0aGVtIGFsbCBiZWhhdmUgdGhlIHNhbWUuICBUaGlzIGF2b2lkcyBiaXRyb3QgYXMgbmV3IGVudgogICAgc291cmNlcyBhcmUgYWRkZWQvcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMmFjNjk4NWE3NDY2YTFjOGE3YWE4YjJmYTI0ZDM2MDkyNWE4Mjc2NApBdXRob3I6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KRGF0ZToJTW9uIERlYyAyOSAxNzozNjowMSAyMDA4IC0wNjAwCgogICAgc29mdF9pMmMuYyBhZGQgb3B0aW9uIGZvciByZXBlYXRlZCBzdGFydCBpbiBpMmNfcmVhZCgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgI2RlZmluZSB0byBvcHRpb25hbGx5IGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mCiAgICBpMmNfcmVhZCgpIGluIHNvZnRfaTJjLmMgdG8gc2VuZCBhbiBJMkMgcmVwZWF0ZWQgc3RhcnQgaW5zdGVhZCBvZiBhCiAgICBzdG9wLXN0YXJ0IGJldHdlZW4gc2VuZGluZyB0aGUgZGV2aWNlIGFkZHJlc3MgcG9pbnRlciB3cml0ZSBhbmQKICAgIHJlYWRpbmcgYmFjayB0aGUgZGF0YS4gIFRoZSBjdXJyZW50IGJlaGF2aW91ciBpcyByZXRhaW5lZCBhcyB0aGUKICAgIGRlZmF1bHQuCgogICAgV2hpbGUgbW9zdCBkZXZpY2VzIHdpbGwgd29yayBlaXRoZXIgd2F5LCBJIGhhdmUgYSBzbWFydCBiYXR0ZXJ5KCopCiAgICB0aGF0IHJlcXVpcmVzIHJlcGVhdGVkIHN0YXJ0LCBhbmQgc29tZW9uZSBhdCBzb21lIHBvaW50IGZvdW5kIGEKICAgIGRldmljZSB0aGF0IHJlcXVpcmVkIGEgc3RvcC1zdGFydC4KCiAgICAoKikgaHR0cDovL3d3dy5pbnNwaXJlZC1lbmVyZ3kuY29tL1N0YW5kYXJkX1Byb2R1Y3RzL05MMjA1NC9OTDIwNTQlMjBSZXYxLjAlMjBEYXRhJTIwU2hlZXQucGRmCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgoKY29tbWl0IDM0MjkwNzE3MDA5NjNjYTJmOTQ0YzUxZDY5NWE3NDgxYWYwY2VlMzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDI3IDIyOjA3OjE0IDIwMDkgKzAxMDAKCiAgICB7ZGVsdGEsenlsb25pdGV9L2xvd2xldmVsX2luaXQuUzogZml4IHR5cG8KCiAgICBDb21taXQgOWQ4MDNkOGMgbWlzdGFrZW5seSBjaGFuZ2VkIHNvbWUgY29uc3RhbnRzCiAgICBmcm9tIDB4MzAwIGludG8gMzAwIC0gdGhpcyBwYXRjaCBmaXhlcyBpdC4KCiAgICBQb2ludGVkIG91dCBieSBUb20gRXZhbnMgPHRvbUBjZW9zLmNvbS5hdT4sIHNlZQogICAgaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAuYm9vdC1sb2FkZXJzLnUtYm9vdC81MTk5MiBmb3IKICAgIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYmM0MzQzNzMwMTNhZjI0MTgzNWMxNDAxMWFjM2YyOTFkY2NiZjUzCkF1dGhvcjogU3RlZmFuIEFsdGhvZWZlciA8c3RlZmFuLmFsdGhvZWZlckB3ZWIuZGU+CkRhdGU6CVNhdCBEZWMgMjAgMTk6NDA6NDEgMjAwOCArMDEwMAoKICAgIGRyaXZlcnMvbmV0L2UxMDAwLmM6IG1pc3NpbmcgdGVybWluYXRvciBmb3Igc3VwcG9ydGVkIGRldmljZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gQWx0aG9lZmVyIDxzdGVmYW4uYWx0aG9lZmVyQHdlYi5kZT4KCmNvbW1pdCA2NWY3ZDQxMDMxYTcwYjE2NDliMzUwMjA5OTVjNTA1ZWRjYTkxNTMzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAyNyAyMTozNjoyOCAyMDA5ICswMTAwCgogICAgZmF0LmM6IGZpeCB3YXJuaW5nOiBhcnJheSBzdWJzY3JpcHQgaXMgYWJvdmUgYXJyYXkgYm91bmRzCgogICAgRml4IGJhc2VkIG9uIHN1Z2dlc3Rpb24gYnkgRGF2aWQgSGF3a2lucyA8ZHdoQG92cm8uY2FsdGVjaC5lZHU+LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTA3YjgwMWNmM2ZlMzk2MTJkNjlkNzA1ODFlYmMzYmY1ZTIxNTU1NApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDIgMTU6MTE6NDEgMjAwOSArMDEwMAoKICAgIEZpeCBndW56aXAgaW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgb3V0cHV0IGJ1ZmZlcgoKICAgIFUtQm9vdCdzIGd1bnppcCgpIGZ1bmN0aW9uIGRvZXMgbm90IGhhbmRsZSB0aGUgcmV0dXJuIGNvZGUKICAgIG9mIHpsaWIncyBpbmZsYXRlKCkgZnVuY3Rpb24gY29ycmVjdGx5LiBndW56aXAoKSBpcyBpbXBsZW1lbnRlZAogICAgdG8gdW5jb21wcmVzcyBhbGwgaW5wdXQgZGF0YSBpbiBvbmUgcnVuLiBTbyB0aGUgY29ycmVjdCByZXR1cm4KICAgIGNvZGUgZm9yIHRoZSBnb29kIGNhc2UgaXMgWl9TVFJFQU1fRU5ELiBJbiBjYXNlIG9mIGluc3VmZmljaWVudAogICAgb3V0cHV0IGJ1ZmZlciBtZW1vcnkgaW5mbGF0ZSByZXR1cm5zIFpfT0suIEZvciBndW56aXAoKSB0aGlzCiAgICBpcyBhbiBlcnJvci4KCiAgICBJdCBhbHNvIG1ha2VzIHNlbnNlIHRvIG1lIHRvIGNhbGwgaW5mbGF0ZUVuZCgpIGFsc28gaW4gY2FzZQogICAgb2YgYW4gZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMmE2MWVmZjZhODJmMGQ2ZTIzMzVkOTY4Nzk5YjNmYmViM2ZmNGQ4ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAxNzoyNTowMSAyMDA5ICswMTAwCgogICAgTUlQUzogQWRkIFZDVCBib2FyZCBzZXJpZXMgc3VwcG9ydCAoUGFydCAzLzMpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlNjkxZTU3MTljNDhmMWQyODI2Y2I3MjcyMjQ5N2QxZDE2Mjc2NWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjEgMTc6MjQ6NDkgMjAwOSArMDEwMAoKICAgIE1JUFM6IEFkZCBWQ1QgYm9hcmQgc2VyaWVzIHN1cHBvcnQgKFBhcnQgMi8zKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1MDc1Mjc5MGJjOTI4NWMwYzFjNTIzNWU4OGYzYTRlZjJlZWMxZTcyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIxIDE3OjI0OjM5IDIwMDkgKzAxMDAKCiAgICBNSVBTOiBBZGQgVkNUIGJvYXJkIHNlcmllcyBzdXBwb3J0IChQYXJ0IDEvMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDNkM2JmYjAwODA2YjU0NDFmMTg3MWM3NDA4YzE3NDk4NjNlMGZkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAxNzoyMDoyMCAyMDA5ICswMTAwCgogICAgTUlQUzogQWRkIGZsdXNoX2RjYWNoZV9yYW5nZSgpIGFuZCBpbnZhbGlkYXRlX2RjYWNoZV9yYW5nZSgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGZsdXNoXy9pbnZhbGlkYXRlX2RjYWNoZV9yYW5nZSgpIHRvIHRoZSBNSVBTIGFyY2hpdGVjdHVyZS4KICAgIFRob3NlIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcgZGNhY2hlIHN1cHBvcnQgZm9yIHRoZSBVU0IKICAgIEVIQ0kgZHJpdmVyLiBJIGNob3NlIHRoaXMgQVBJIGJlY2F1c2UgdGhvc2UgY2FjaGUgaGFuZGxpbmcgZnVuY3Rpb25zIGFyZQogICAgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBQUEMgYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGU4MzJhOTk0MTRmZjA2YTRiMmNkYzlmNTI4MGIzODdkYTAzOTgzNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEphbiAyNiAxMDowNToyMCAyMDA5ICswMTAwCgogICAgbmFuZF9zcGw6IEZpeCBjb21waWxlIHByb2JsZW0gd2l0aCBib2FyZF9uYW5kX2luaXQoKSBwcm90b3R5cGUKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIG5vdyBvYnNvbGV0ZSBhbmQgYWRkaXRpb25hbGx5IHdyb25nbHkgZGVmaW5lZAogICAgYm9hcmRfbmFuZF9pbml0KCkgcHJvdG90eXBlIGZyb20gbmFuZF9zcGwvbmFuZF9ib290LmMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZThlYWM0MzcxODk0MzBkOGUwNGE1ZDI1NGVkOTJjNThiYzUzNGE3OQpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CVdlZCBKYW4gMTQgMDg6NDQ6MjYgMjAwOSAtMDUwMAoKICAgIENGSTogQWRkIGdlb21ldHJ5IHJldmVyc2FsIGZvciBTVE1pY3JvIE0yOVczMjBFVAoKICAgIEFkZGVkIGZsYXNoX2ZpeHVwX3N0bSB0byBmaXggZ2VvbWV0cnkgcmV2ZXJzYWwgb24gU1RNaWNybyBNMjlXMzIwRVQgZmxhc2ggY2hpcC4KCiAgICBNb2RlbGVkIGFmdGVyIGZsYXNoX2ZpeHVwX2FtZCwgdGhpcyBwYXRjaCBoYW5kbGVzIHRoZSBnZW9tZXRyeSByZXZlcnNhbAogICAgb3IgZXJhc2Ugc2VjdG9ycyB0aGF0IGV4aXN0IGZvciBTVCBNaWNybyAobm93IE51bW9ueXgpIE0yOVczMjBFVCBmbGFzaC4KICAgIFNpbmNlIEkgY2Fubm90IHRlc3QgYWxsIFNUTSdzIGNoaXBzLCB0aGUgZGV0ZWN0aW9uIGlzIGltcGxlbWVudGVkIGFzCiAgICBuYXJyb3cgYXMgcG9zc2libGUgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBmOGU4NTFlODk3YjUzNTk1OWEwNzgxMTcxOTEwY2Q5N2YzM2MzMGMKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMTc6MjU6NTUgMjAwOCArMDEwMAoKICAgIENGSTogaW5jcmVhc2UgcGVyZm9ybWFuY2Ugb2YgZnVuY3Rpb24gZmluZF9zZWN0b3IoKQoKICAgIFRlc3RlZCBvbiBUUU01MjAwUy1CRCB3aXRoIFNhbXN1bmcgSzhQMjgxNVVRQgoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNzI5Mjg3MWE3OWNjNDhkOThlM2E3MDhkZDNjM2I4MTU4MGRiNmVmCkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglUdWUgRGVjIDE2IDE3OjI1OjU0IDIwMDggKzAxMDAKCiAgICBDRkk6IGF2b2lkIHJlZHVuZGFudCBmdW5jdGlvbiBjYWxsIGluIHNpbmdsZSB3b3JkIHByb2dyYW1taW5nIG1vZGUKCiAgICBUaGUgZnVuY3Rpb24gZmluZF9zZWN0b3IoKSBkb2Vzbid0IG5lZWQgdG8gYmUgY2FsbGVkIHR3aWNlIGluCiAgICB0aGUgY2FzZSBvZiBBTUQgY29tbWFuZCBzZXQuCiAgICBUZXN0ZWQgb24gVFFNNTIwMFMtQkQgd2l0aCBTYW1zdW5nIEs4UDI4MTVVUUIuCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM4OTAxZjQ2YTcxZWMxNmUwODRlNjA0NTk2YTA5ZTIzYmZiMGY2YWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMjYgMTA6MTU6MjMgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gZ2RwcGM0NDBldGMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MWYzMzUzNDcyOGU2NDE2ZDMzMmFkMmI1M2FkMWQ2ZmRlNTdmN2ZjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKYW4gMiAxMjoxOTo0NyAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5IGZyb20gY29uZmlnIGZpbGVzCgogICAgTG90J3Mgb2YgNDA1IGJvYXJkIGNvbmZpZyBmaWxlcyB1c2UgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5LgogICAgRWl0aGVyIHRoZXkgZGVmaW5lIG9yIHVuZGVmIGl0LiBCZWNhdXNlIGl0J3Mgbm90IHVzZWQgaW4gYW55IHNvdXJjZQogICAgZmlsZXMgdGhpcyBwYXRjaCByZW1vdmVzIGFueSByZWZlcmVuY2VzIHRvIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg5Yjg2MTlhYWVhZmM5MjJjYTBjM2JiMjQ5ODcyNTkxMDUwYzhkY2MKQXV0aG9yOiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgpEYXRlOglUdWUgRGVjIDkgMTM6MTI6NDAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIEdEc3lzIFBvd2VyUEMgNDQwIEVUWCBib2FyZCBzdXBwb3J0LgoKICAgIEJvYXJkIHN1cHBvcnQgZm9yIHRoZSBHdW50ZXJtYW5uICYgRHJ1bmNrIFBvd2VyUEMgNDQwIEVUWCBtb2R1bGUuCiAgICBCYXNlZCBvbiB0aGUgQU1DQyBZb3NlbWl0ZSBib2FyZCBzdXBwb3J0IGJ5IFN0ZWZhbiBSb2VzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM5NDNkMmZmNmNjNDBkZDYwMWE5ZmVlYjM5ZWI2ZDNkNTA5MGVhNmQKQXV0aG9yOiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgpEYXRlOglUdWUgRGVjIDkgMTE6MDA6MDcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSW1wcm92ZSBERFIgYXV0b2RldGVjdAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIGEgc2Vjb25kIG1lbW9yeSBiYW5rIHRvIEREUiBhdXRvZGV0ZWN0aW9uIGZvciA0NDAKICAgIHBsYXRmb3Jtcy4KICAgIE1hZGUgaGFyZGNvZGVkIHZhbHVlcyBjb25maWd1cmFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBFaWJhY2ggPGVpYmFjaEBnZHN5cy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MWEwNDBmNGY1NTZjY2E0ZDMwZjA2ODA1ZDgyZTcxN2IzZWYxMDIwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgTm92IDIxIDEyOjA2OjI2IDIwMDggKzA5MDAKCiAgICBzaDogc2g3NzYzcmRwOiBVcGRhdGUgc2g3NzYzcmRwIGNvbmZpZwoKICAgIEFkZCBDT05GSUdfTkVUX01VTFRJIGluIGNvbmZpZyBmaWxlLCBiZWNhdXNlIHNoX2V0aCBjaGFuZ2VkIG5ldyBuZXd3b3JrIEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGJhNzA1YjViMWE5N2I0NzM4OGVkNDg4NThiZWY2YmY3YjZiZmNkNTYKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMCAxMjoyODozOCAyMDA4ICswMTAwCgogICAgbWdjb2dlIG1ha2UgZXRoZXJfc2NjLmMgd29yayB3aXRoIENPTkZJR19ORVRfTVVMVEkKCiAgICBUaGlzIGNoYW5nZSBpcyBuZWVkZWQgZm9yIG1nY29nZSBiZWNhdXNlIGl0IHVzZXMgdHdvIGV0aGVybmV0IGRyaXZlcnMuCgogICAgQWRkIGEgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUgUElHR1kgYm9hcmQgb24gbWdjb2dlLglXaXRob3V0IHRoaXMKICAgIGJvYXJkIG5ldHdvcmtpbmcgY2Fubm90IHdvcmsgYW5kIHRoZSBpbml0aWFsaXphdGlvbiBtdXN0IGJlIGFib3J0ZWQuCgogICAgT25seSBhbGxvY2F0ZSBydHggb25jZSB0byBwcmV2ZW50IERQUkFNIGV4aGF1c3Rpb24uCgogICAgSW5pdGlhbGl6ZSBldGhlcl9zY2MuYyBhbmQgdGhlIGtleW1pbGUtc3BlY2lmaWMgSERMQyBkcml2ZXIgKHRvIGJlIGFkZGVkCiAgICBzb29uKSBpbiBldGguYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYmQzOTgwY2MwOTVhZjE3MjhiOTk0Y2RkOGJmMWFjNDMwYjYyODllNgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxMjowNDoxOCAyMDA4ICswOTAwCgogICAgc2g6IHNoX2V0aDogQ2hhbmdlIG5ldyBuZXR3b3JrIEFQSQoKICAgIHNoX2V0aCB1c2VkIG9sZCBuZXR3b3JrIEFQSS4gVGhpcyBwYXRjaCBjaGFuZ2VkIG5ldyBBUEkuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4OTBhMDJlOGVlNmI4YzI2YTZlM2U1MDVlMWEyZDI5Y2Q3M2FhNmY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDEyIDEzOjMxOjAyIDIwMDggKzAxMDAKCiAgICBuZXQ6IHNtYzkxMXg6IE1ha2UgcmVnaXN0ZXIgcmVhZC93cml0ZSBmdW5jdGlvbnMgd2VhawoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgcmVnX3JlYWQvX3dyaXRlIHRvIHNtYzkxMXhfcmVnX3JlYWQvX3dyaXRlCiAgICBhbmQgZGVmaW5lcyB0aGVuIGFzIHdlYWsgc28gdGhhdCB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIGJ5IGJvYXJkCiAgICBzcGVjaWZpYyB2ZXJzaW9uLgoKICAgIFRoaXMgd2lsbCBiZSB1c2VkIGJ5IHRoZSB1cGNvbWluZyBWQ1RIIGJvYXJkIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4YjY5YjU2MzAzOTk4OTg4NTk2OWQyNDQ2NWM1NmY4YWM0YzA3YzRjCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjAgMDk6NTc6MTQgMjAwOCArMDEwMAoKICAgIHBvd2VycGM6IG5ldDogc3VwcG9ydCBmb3IgdGhlIFNNU0MgTEFOODcwMCBQSFkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDUyNTRmMTQ5ZGE5ZTZjZDY0OWQ4ODdiMDQyY2U1NzdlZjNiYTc4ZApBdXRob3I6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CkRhdGU6CVNhdCBKYW4gMjQgMTg6MTA6MzcgMjAwOSArMDEwMAoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgTm9tYWRpayA4ODE1IGRldmVsb3BtZW50IGJvYXJkCgogICAgVGhlIE5NREs4ODE1IGJvYXJkIGlzIGRpc3RyaWJ1dGVkIGJ5IFNUIE1pY3JvZWxlY3Rvcm5pY3MuCiAgICBPdGhlciAocHJvcHJpZXRhcnkpIGNvZGUgbXVzdCBiZSBydW4gdG8gdW5sb2NrIHRoZSBDUFUgYmVmb3JlCiAgICBVLUJvb3QgcnVucy4gZG9jL1JFQURNRS5ubWRrODgxNSBvdXRsaW5lcyB0aGUgYm9vdCBzZXF1ZW5jZS4KCiAgICBUaGlzIGlzIHRoZSBpbml0aWFsIHBvcnQsIHdpdGggYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgYW5kCiAgICBhIHdvcmtpbmcgc2VyaWFsIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxlc3NhbmRybyBSdWJpbmkgPHJ1YmluaUB1bmlwdi5pdD4KICAgIEFja2VkLWJ5OiBBbmRyZWEgR2FsbG8gPGFuZHJlYS5nYWxsb0BzdG53aXJlbGVzcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdkMjY0YzFlZjI2N2NmYzhkOTI4YmM4NTc3YTdjYzkwN2YyZjVlNDcKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglTdW4gRGVjIDE0IDA5OjQ3OjE4IDIwMDggKzAxMDAKCiAgICBPTUFQMzogQWRkIEkyQyBzdXBwb3J0CgogICAgQWRkIEkyQyBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgYjFjM2JmOTlmYjQ3NzY3NWQ0NjRhZWFkYjVkZDY5ZDJjYmM5ZGM3YgpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTcgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgTU1DIHN1cHBvcnQKCiAgICBBZGQgTU1DIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCAxMjIwMWExMzU0N2VjMjJkZGNkYWUyNzhlNzQ0NjVlNTRhM2JlNjBjCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyAxNCAwOTo0NzoxNiAyMDA4ICswMTAwCgogICAgT01BUDM6IEFkZCBOQU5EIHN1cHBvcnQKCiAgICBBZGQgTkFORCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pc2hhbnRoIE1lbm9uIDxubUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTeWVkIE1vaGFtbWVkIEtoYXNpbSA8a2hhc2ltQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgOTFlZWU1NDY3MzdhZTIxZDkzMGFmNDc5NTMwOTk3MTc0YzM0MmIxMwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTUgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgY29tbW9uIGJvYXJkLCBpbnRlcnJ1cHQgYW5kIHN5c3RlbSBpbmZvCgogICAgQWRkIGNvbW1vbiBib2FyZCwgaW50ZXJydXB0IGFuZCBzeXN0ZW0gaW5mbyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgNWVkM2U4NjU5ZTUzNzNmNmEyMjk4NzdhYzUwNmMwYjAwYTA1NGZiOApBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTQgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgY29tbW9uIGNsb2NrLCBtZW1vcnkgYW5kIGxvdyBsZXZlbCBjb2RlCgogICAgQWRkIGNvbW1vbiBjbG9jaywgbWVtb3J5IGFuZCBsb3cgbGV2ZWwgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgMGIwMmIxODQwMDNlNmE1MDIzZTA1ZDVmMzFkZTU0ZGIyNzliMTQzMQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTMgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgY29tbW9uIGNwdSBhbmQgc3RhcnQgY29kZQoKICAgIEFkZCBjb21tb24gY3B1IGFuZCBzdGFydCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgYThiNjQ1MDU0NmNkNTA3ZDMzMWI4ZmRlMzg0NzkxZDg0YmRlNTY1MQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTIgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgT01BUDMsIG1lbW9yeSBhbmQgZnVuY3Rpb24gcHJvdG90eXBlIGhlYWRlcnMKCiAgICBBZGQgT01BUDMsIG1lbW9yeSBhbmQgZnVuY3Rpb24gcHJvdG90eXBlIGhlYWRlciBmaWxlcyBmb3IgT01BUDMuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCAyYzgwMzIxMGE0NjRhYmJhYzM1NzUyY2ExYzczNzUxNDM2MGI0YzMyCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyAxNCAwOTo0NzoxMSAyMDA4ICswMTAwCgogICAgT01BUDM6IEFkZCBwaW4gbXV4LCBjbG9jayBhbmQgY3B1IGhlYWRlcnMKCiAgICBBZGQgcGluIG11eCwgY2xvY2sgYW5kIGNwdSBoZWFkZXIgZmlsZXMgZm9yIE9NQVAzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgNjg1NTMzNjQ2ZjRmZjE3YTg0ZWM5MjY1Y2FiYjYwYWYzMjViNmUxZgpBdXRob3I6IE1heGltIEFydGFtb25vdiA8c2NuMTg3NEB5YW5kZXgucnU+CkRhdGU6CVdlZCBEZWMgMyAwNTozODoxNyAyMDA4ICswMzAwCgogICAgYnVnZml4IGZvciBpLm14MzEgQ0NNX1VQQ1RMIHJlZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1heGltIEFydGFtb25vdiA8c2NuMTg3NCBhdCB5YW5kZXgucnU+Cgpjb21taXQgMjQxMTNhNDRlZDVjZDMyNTdhMDIzN2MzOTYxZTEyMTgxMmZjYTZkYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyAzMCAwMzoxNTozOCAyMDA4IC0wNTAwCgogICAgZWFzeWxvZ286IGFkZCBvcHRpb25hbCBnemlwIHN1cHBvcnQKCiAgICBTb21lIGltYWdlcyBjYW4gYmUgcXVpdGUgbGFyZ2UsIHNvIGFkZCBhbiBvcHRpb24gdG8gY29tcHJlc3MgdGhlCiAgICBpbWFnZSBkYXRhIHdpdGggZ3ppcCBpbiB0aGUgVS1Cb290IGltYWdlLiBUaGVuIGF0IHJ1bnRpbWUsIHRoZQogICAgYm9hcmQgY2FuIGRlY29tcHJlc3MgaXQgd2l0aCB0aGUgbm9ybWFsIHpsaWIgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA3ZTRiOWI0ZjZmNDM4MzhmYWQzYWQ3MmMwMjlhM2Q3ZmM3YzdkNDhjCkF1dGhvcjogQnJ5YW4gV3UgPGJyeWFuLnd1QGFuYWxvZy5jb20+CkRhdGU6CUZyaSBKYW4gMiAyMDo0Nzo0NSAyMDA5IC0wNTAwCgogICAgZmF0OiBmaXggdW5hbGlnbmVkIGVycm9ycwoKICAgIEEgY291cGxlIG9mIGJ1ZmZlcnMgaW4gdGhlIGZhdCBjb2RlIGFyZSBkZWNsYXJlZCBhcyBhbiBhcnJheSBvZiBieXRlcy4KICAgIEJ1dCBpdCBpcyB0aGVuIGNhc3QgdXAgdG8gYSBzdHJ1Y3R1cmUgd2l0aCAxNmJpdCBhbmQgMzJiaXQgbWVtYmVycy4KICAgIFNpbmNlIEdDQyBhc3N1bWVzIHN0cnVjdHVyZSBhbGlnbm1lbnQgaGVyZSwgd2UgaGF2ZSB0byBmb3JjZSB0aGUKICAgIGJ1ZmZlcnMgdG8gYmUgYWxpZ25lZCBhY2NvcmRpbmcgdG8gdGhlIHN0cnVjdHVyZSB1c2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcnlhbiBXdSA8YnJ5YW4ud3VAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2OGY4NzE4ZGYyZWQ0YzJmNDMwMzE0MDdjY2Y2Y2ZhODExMjVkZGRjCkF1dGhvcjogQnJhZCBCb3phcnRoIDxiZmxpbnV4QHl1bWJyYWQuY29tPgpEYXRlOglUaHUgSmFuIDEgMjI6NDU6NDcgMjAwOSAtMDUwMAoKICAgIHNwaSBmbGFzaDogZml4IGNyYXNoIGR1ZSB0byBzcGkgZmxhc2ggbWlzY29tbXVuaWNhdGlvbgoKICAgIEhpZ2hlciBzcGkgZmxhc2ggbGF5ZXJzIGV4cGVjdCB0byBiZSBnaXZlbiBiYWNrIGEgcG9pbnRlciB0aGF0IHdhcwogICAgbWFsbG9jZWQgc28gdGhhdCBpdCBjYW4gZnJlZSB0aGUgcmVzdWx0LCBidXQgdGhlIGxvd2VyIGxheWVycyByZXR1cm4KICAgIGEgcG9pbnRlciB0aGF0IGlzIGluIHRoZSBtaWRkbGUgb2YgdGhlIG1hbGxvY2VkIG1lbW9yeS4gUmVvcmRlciB0aGUKICAgIG1lbWJlcnMgb2YgdGhlIGxvd2VyIHNwaSBzdHJ1Y3R1cmVzIHNvIHRoYXQgdGhpbmdzIHdvcmsgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyYWQgQm96YXJ0aCA8YmZsaW51eEB5dW1icmFkLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgY2U4MmZmMDUzODhiNWRkYWZkZjYwODJlZjA3NzZjY2U3MmM0MGIxYwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJU2F0IERlYyAyMCAxNDo1NDoyMSAyMDA4ICswMzAwCgogICAgRlBVIFBPU1Q6IGZpeCB3YXJuaW5ncyB3aGVuIGJ1aWxkaW5nIHdpdGggMi4xOCBiaW51dGlscwoKICAgIFdoZW4gY29tcGlsZSB1LWJvb3Qgd2l0aCB0aGUgMi4xOCBiaW51dGlscyB0aGUgZm9sbG93aW5nCiAgICB3YXJuaW5nIG1lc3NhZ2VzIGZvciBlYWNoIG9iamVjdCBmaWxlIGluIHBvc3QvbGliX3BwYy9mcHUvIGlzCiAgICBwcm9kdWNlZCBhdCB0aGUgbGlua2luZyBzdGFnZToKCiAgICBwb3N0L2xpYnBvc3QuYShhY2MxLm8pIHVzZXMgaGFyZCBmbG9hdCwgdS1ib290IHVzZXMgc29mdC1mbG9hdAogICAgLi4uCgogICAgVGhpcyBpcyBiZWNhdXNlIG9mIHRoZSBmYWN0IHRoYXQsIGluIGdlbmVyYWwsIHRoZSBzb2Z0LWZsb2F0IGFuZAogICAgaGFyZC1mbG9hdCBBQklzIGFyZSBpbmNvbXBhdGlibGU7IHRoZSAyLjE4IGJpbnV0aWxzIGRvIGNoZWNraW5nCiAgICBvZiB0aGUgVGFnX0dOVV9Qb3dlcl9BQklfRlAgYXR0cmlidXRlIG9mIHRoZSBmaWxlcyB0byBiZSBsaW5rZWQsIGFuZAogICAgcHJvZHVjZSB0aGUgd29ybmluZyBsaWtlIGFib3ZlIGlmIHRoZXNlIGFyZSBub3QgY29tcGF0aWJsZS4KCiAgICBUaGUgaW5jb21wYXRpYmlsaXR5IG9mIEFCSXMgaXMgY29uY2VybmVkIG9ubHkgdGhlIGZsb2F0IHZhbHVlczoKICAgIGUuZy4gdGhlIHNvZnQtZmxvYXQgQUJJIGFzc3VtZXMgdGhlIGZsb2F0IGFyZ3VtZW50IHBhc3NpbmcgaW4gdGhlCiAgICBwYWlyIG9mIHJYIHJlZ2lzdGVycywgYW5kIHRoZSBoYXJkLWZsb2F0IEFCSSBhc3N1bWVzIHBhc3Npbmcgb2YKICAgIHRoZSBmbG9hdCBhcmd1bWVudCBpbiB0aGUgZlggcmVnaXN0ZXIuIFdoZW4gd2UgZG9uJ3QgcGFzcyB0aGUgZmxvYXQKICAgIGFyZ3VtZW50cyBiZXR3ZWVuIHRoZSBmdW5jdGlvbnMgY29tcGlsZWQgd2l0aCBkaWZmZXJlbnQgZmxvYXRuZXNzLAogICAgdGhlbiBzdWNoIGFuIGFwcGxpY2F0aW9uIHdpbGwgd29yayBjb3JyZWN0bHkuCiAgICBUaGlzIGlzIHRoZSBjYXNlIGZvciB0aGUgRlBVIFBPU1Q6IHUtYm9vdCAoY29tcGlsZWQgd2l0aCBzb2Z0LWZsb2F0KQogICAgZG9lc24ndCBwYXNzIHRvIChhbmQgZG9lc24ndCBnZXQgZnJvbSkgdGhlIEZQVSBQT1NUIGZ1bmN0aW9ucyBhbnkKICAgIGZsb2F0czsgdGhlcmUgYXJlIG5vIGZ1bmN0aW9ucyBleHBvcnRlZCBmcm9tIHRoZSBwb3N0L2xpYl9wcGMvZnB1LwogICAgb2JqZWN0cyB3aGljaCB3b3VsZCB3b3JrIHdpdGggZmxvYXQgcGFyYW1ldGVycy9yZXR1cm5zIHRvby4gU28sIHdlCiAgICBjYW4gcmVhc3N1cmUgdGhlIGxpbmtlciBub3QgdG8gd29ycnkgYWJvdXQgdGhlIGRpZmZlcmVuY2UgaW4gQUJJCiAgICBhdHRyaWJ1dGVzIG9mIGxpbmtpbmcgZmlsZXMganVzdCBieSBzZXR0aW5nIHRoZSAnc29mdC1mbG9hdCcKICAgIGF0dHJpYnV0ZSBmb3IgdGhlIG9iamVjdHMgaW4gcG9zdC9saWJfcHBjL2ZwdS4gQW5kIHRoaXMgcGF0Y2ggZG9lcwogICAgdGhpcy4KCiAgICBBbHNvLCB0byBhdm9pZCBwYXNzaW5nIGJvdGggc29mdC0gYW5kIGhhcmQtZmxvYXQgb3B0aW9ucyBpbiBDRkxBR1MKICAgIHdoZW4gY29tcGlsaW5nIHRoZSBmaWxlcyBmcm9tIHBvc3QvbGliX3BwYy9mcHUgKHdoaWNoIGlzIE9LLCBidXQKICAgIGxvb2tzIHJhdGhlciBkaXJ0eSkgdGhpcyBwYXRjaCByZW1vdmVzIHRoZSBzb2Z0LWZsb2F0IHN0cmluZyBmcm9tCiAgICBDRkxBR1MgaW4gcG9zdC9saWJfcHBjL2ZwdS9NYWtlZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYTdjOTMxMDQ1N2U4NWI0NTk4YWJlNWIzMDQxMDhlZGYxMTMzMmUyZgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBEZWMgMTcgMTY6MzY6MjIgMjAwOCAtMDYwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBNYXhpbSdzIERTNDUxMCBJMkMgZGV2aWNlCgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgRFM0NTEwLCBhIENQVSBzdXBlcnZpc29yIHdpdGgKICAgIGludGVncmF0ZWQgRUVQUk9NLCBTUkFNLCBhbmQgNCBwcm9ncmFtbWFibGUgbm9uLXZvbGF0aWxlCiAgICBHUElPIHBpbnMuIFRoZSBDT05GSUdfRFM0NTEwIGRlZmluZSBlbmFibGVzIHN1cHBvcnQKICAgIGZvciB0aGUgZGV2aWNlIHdoaWxlIHRoZSBDT05GSUdfQ01EX0RTNDUxMCBkZWZpbmUKICAgIGVuYWJsZXMgdGhlIGRzNDUxMCBjb21tYW5kLiBUaGUgYWRkaXRpb25hbAogICAgQ09ORklHX0RTNDUxMF9JTkZPLCBDT05GSUdfRFM0NTEwX01FTSwgYW5kCiAgICBDT05GSUdfRFM0NTEwX1JTVCBkZWZpbmVzIGFkZCBhZGRpdGlvbmFsIHN1Yi1jb21tYW5kcwogICAgdG8gdGhlIGRzNDUxMCBjb21tYW5kIHdoZW4gZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGI2ZmM2ZmQ0OWE4NDU0M2UxMzI0ZTE2MjBiOWYzMDFmZjdjMWYyN2YKQXV0aG9yOiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgpEYXRlOglUdWUgRGVjIDE2IDE0OjUxOjU2IDIwMDggKzAxMDAKCiAgICBjb21tb246IEl0ZXJhdGlvbiBsaW1pdCBmb3IgbWVtb3J5IHRlc3QuCgogICAgVGhlIGl0ZXJhdGlvbiBsaW1pdCBpcyBwYXNzZWQgdG8gbXRlc3QgYXMgYSBmb3VydGggcGFyYW1ldGVyOgogICAgW3N0YXJ0IFtlbmQgW3BhdHRlcm4gW2l0ZXJhdGlvbnNdXV1dCiAgICBJZiBubyBmb3VydGggcGFyYW1ldGVyIGlzIHN1cHBsaWVkLCB0aGVyZSBpcyBubyBpdGVyYXRpb24gbGltaXQgYW5kIHRoZQogICAgdGVzdCB3aWxsIGxvb3AgZm9yZXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgoKY29tbWl0IDk3Y2FlM2E0YzY4ZDg1NjM3NGNjYzcwZmQyYzVmODcxNGNjOTRmN2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBEZWMgMTUgMTU6NDA6MTIgMjAwOCArMDEwMAoKICAgIHNlcmlhbDogUmVuYW1lIGRyaXZlciB2Y3RoIHRvIHZjdCB0byBzdXBwb3J0IG90aGVyIGJvYXJkIHZhcmlhbnRzCgogICAgTW92ZWQgZHJpdmVyIHZjdGguYyB0byB2Y3QuYyB0byBiZXR0ZXIgcmVmbGVjdCB0aGUgVkNUIGJvYXJkIHNlcmllcy4KICAgIFRoaXMgZHJpdmVyIGlzIG5vdyB1c2VkIGJ5IHRoZSBWQ1QgcGxhdGZvcm1zOgoKICAgIHZjdF9wcmVtaXVtCiAgICB2Y3RfcGxhdGludW0KICAgIHZjdF9wbGF0aW51bXN2YwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmVkZTRkNjNlNTljOTI3N2VjMTgwYjA5YzM5YjhiZjQ2NDI1YmEyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJRnJpIERlYyAxMiAwMDo0NToyNyAyMDA4ICswOTAwCgogICAgbmlvczogTW92ZSBSRUFETUUubmlvc19DT05GSUdfU1lTX05JT1NfQ1BVIHRvIGRvYy8gZGlyCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBjMzI4NGIwMzBiMWNkNDkyYjRmNDZjNTc2YWVhMDFiZWYyNTg1OTlkCkF1dGhvcjogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KRGF0ZToJV2VkIERlYyAxMCAxNjoyNDoxNiAyMDA4ICswMTAwCgogICAgY29tbW9uL21haW46IHN1cHBvcnQgYm9vdGRlbGF5PTAgZm9yIENPTkZJR19BVVRPQk9PVF9LRVlFRAoKICAgIFN1cHBvcnQgYm9vdGRlbGF5PTAgaW4gYWJvcnRib290IGZvciB0aGUgQ09ORklHX0FVVE9CT09UX0tFWUVEIGNhc2UKICAgIHNpbWlsYXIgdG8gdGhlIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSyBzdXBwb3J0IGZvciB0aGUKICAgICFDT05GSUdfQVVUT0JPT1RfS0VZRUQgY2FzZS4KCiAgICBEbyB0aGlzIGJ5IHJldmVyc2luZyB0aGUgbG9vcCBzbyB3ZSBkbyBhdCBsZWFzdCBvbmUgaXRlcmF0aW9uIGJlZm9yZQogICAgY2hlY2tpbmcgZm9yIHRpbWVvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KCmNvbW1pdCA5NGY5Mjc5ZjdiYmRjMDFiYmM3Y2Y4NWFlZGY5YjU0NTk0M2I5NGMzCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIERlYyA4IDE3OjI0OjA4IDIwMDggKzAxMDAKCiAgICBBZGRlZCBsZWdhY3kgZmxhc2ggU1QgTWljcm8gTTI5VzA0MEIKCmNvbW1pdCA2MjZkMDczNDhlNWY5ZjMwMmY0ZWExODIxNjFhODlmNzM2MmEwNDg4CkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJTW9uIERlYyA4IDIwOjA0OjUxIDIwMDggKzExMDAKCiAgICBGaXhlZCBvZmYtYnktb25lIGVycm9ycyBpbiBsaWJfbTY4ay9pbnRlcnJ1cHRzLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IGE1OTg5YzQyYWU1ZTI5NWYyNzRhNzk1YzQyNmM0NzgxOWJiZGJmZGEKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjk6MDUgMjAwOCArMTEwMAoKICAgIFJlbW92ZWQgYWxsIHJlZmVyZW5jZXMgdG8gQ09ORklHX1NZU19SRVNFVF9HRU5FUklDCgogICAgR2VuZXJpYyBpMzg2IHJlc2V0IC0gI2RlZmluZSBtYWRlIHJlZHVuZGFudCBieSB3ZWFrIGZ1bmN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCAyYjUzNjBlYjJiYzBiNzQxYWU1Y2IzYzg0ZDM1Y2NkZDE3NjY3YzhhCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyA3IDEwOjI5OjA0IDIwMDggKzExMDAKCiAgICBSZW1vdmUgI2lmZGVmIENPTkZJR19TQzUyMCBpbiBzb3VyY2UgY29kZQoKICAgIENPTkZJR19TQzUyMCBpcyBub3cgdXNlZCBmb3IgY29uZGl0aW9uYWwgY29tcGlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgZWFkMDU2YmMyMDZmNmI3ZWU2ZGM5ODc2NjY3OGI2NDYzNWVhMjBiOApBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgNyAxMDoyOTowMyAyMDA4ICsxMTAwCgogICAgQWRkZWQgTU1DUiByZXNldCBmdW5jdGlvbmFsaXR5CgogICAgUmVzZXQgZnVuY3Rpb24gc3BlY2lmaWMgdG8gQU1EIFNDNTIwIG1pY3JvY29udHJvbGxlciAtIElzIG1vcmUgb2YgYQogICAgJ2hhcmQgcmVzZXQnIHRoYXQgdGhlIHRyaXBsZSBmYXVsdC4KCiAgICBSZXF1aXJlcyBDT05GSUdfU1lTX1JFU0VUX1NDNTIwIHRvIGJlIGRlZmluZWQgaW4gY29uZmlnCgogICAgSSB3b3VsZCBoYXZlIGxpa2VkIHRvIGFkZCB0aGlzIHRvIGEgbmV3IGZpbGUgKGNwdS9pMzg2L3NjNTIwL3Jlc2V0LmMpCiAgICBidXQgbGQgcmVxdWlyZXMgdGhhdCBhIG9iamVjdCBmaWxlIGluIGEgbGlicmFyeSBhcmhpdmUgTVVTVCBjb250YWluCiAgICBhdCBsZWFzdCBvbmUgZnVuY3Rpb24gd2hpY2ggZG9lcyBub3Qgb3ZlcnJpZGUgYSB3ZWFrIGZ1bmN0aW9uIChhbmQgaXMKICAgIGNhbGxlZCBmcm9tIG91dHNpZGUgdGhlIG9iamVjdCBmaWxlKSBpbiBvcmRlciBmb3IgdGhhdCBvYmplY3QgZmlsZSB0bwogICAgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGFyY2hpdmUuIFRoaXMgd291bGQgYmUgdGhlIG9ubHkgZnVuY3Rpb24gb24gdGhlCiAgICBuZXcgZmlsZSwgYW5kIGhlbmNlLCB3aWxsIG5ldmVyIGdldCBsaW5rZWQgaW4uCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCAzZjVmMThkMTJkMzJlZTA2NjFiZjUxZGZjNTU3NTJjMDA1MjMwZDZlCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyA3IDEwOjI5OjAyIDIwMDggKzExMDAKCiAgICBNb3ZlZCBnZW5lcmljICh0cmlwbGUgZmF1bHQpIHJlc2V0IGNvZGUKCiAgICBNb3ZlZCBmcm9tIGludGVycnVwdHMuYyB0byBjcHUuYyBhbmQgbWFkZSBpbnRvIGEgd2VhayBmdW5jdGlvbiB0bwogICAgYWxsb3cgdmVuZG9yIHNwZWNpZmljIG92ZXJyaWRlCgogICAgVmVuZG9yIHNwZWNpZmljIENQVSByZXNldCAobGlrZSB0aGUgQU1EIFNDNTIwIE1NQ1IgcmVzZXQpIGNhbiBub3cgYmUKICAgIGFkZGVkIHRvIHRoZSB2ZW5kb3Igc3BlY2lmaWMgY29kZSB3aXRob3V0IHRoZSBuZWVkIHRvIHJlbWVtYmVyIHRvCiAgICAjdW5kZWYgdXNhZ2Ugb2YgdGhlIGdlbmVyaWMgbWV0aG9kIGFuZCBpZiB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgeW91cgogICAgY3VzdG9tIHJlc2V0IG1ldGhvZCwgeW91IHdpbGwgYWx3YXlzIGdldCB0aGUgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IDk5MzNkNjA5MDIwYzI5Nzc4OGY1M2YzMzRjODQ2NWZhN2E5OWIxMGMKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjk6MDEgMjAwOCArMTEwMAoKICAgIE1vdmVkIGRlZmluaXRpb24gb2Ygc2V0X3ZlY3RvcigpIHRvIG5ldyBoZWFkZXIgZmlsZQoKICAgIFRoaXMgYWxsb3dzIGZvciBmdXR1cmUgdGlkeSB1cHMgYW5kIGZ1bmN0aW9uYWxpdHkgdGhhdCB3aWxsIHJlcXVpcmUKICAgIHNldF92ZWN0b3IgKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IDQwNzk3NjE4NWUwZGRhMmM5MGU4OTAyNzEyMWExMDcxYjljNzdiZmIKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjk6MDAgMjAwOCArMTEwMAoKICAgIE1vdmVkIHNjNTIwIHNwZWNpZmljIGNvZGUgaW50byBuZXcgY3B1L2kzODYvc2M1MjAgZm9sZGVyCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODVmZmJiZDUxOTE0OTI1YTU0MmQ4NTI4YmU3ZjA3MmU1YWIwMjE1NwpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgNyAxMDoyODo1OCAyMDA4ICsxMTAwCgogICAgUmVuYW1lZCBjcHUvaTM4Ni9yZXNldC5TIHRvIHJlc2V0dmVjLlMKCiAgICBCcmluZ3MgaTM4NiBpbiBsaW5lIHdpdGggb3RoZXIgQ1BVcyB3aXRoIGEgcmVzZXQgdmVjdG9yIGFuZCBmcmVlcyB1cCByZXNldC5jCiAgICBmb3IgQ1BVIHJlc2V0IGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgYTNmNGMxMjNmNTY5NDc0ZTgwZWEwMTJiOGRiMGRlNDZhZmRiNjQ0MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMjQgMDE6MDE6NDkgMjAwOSArMDEwMAoKICAgIE1ha2VmaWxlOiBrZWVwIGxpc3RzIHNvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM2MjBjMDFlOTY4MTQ1NTg0NzA2OThlZDVjYWIxYmYyZjUwNGQxYjUKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjg6NTcgMjAwOCArMTEwMAoKICAgIEFkZGVkIGluaXRpYWwgZU5FVCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCAwYzBjY2Y0MDFlZTAzYTUwMDhmYzJjMTliMDVhNjYyYmNlMWExMDg2CkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjAgMTE6Mzc6MjYgMjAwOCArMDEwMAoKICAgIFBPV0VSUEMgODJ4eDogYWRkIHRoZSBTQ0MgYXMgYW4gSERMQyBjb250cm9sbGVyCgogICAgUmlnaHQgbm93IHRoaXMgaXMgb25seSB1c2VkIGJ5IGtleW1pbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgMWU4ZjRlNzhjYTM5M2IzZDhlODZiZDgwNTU3NThkZDQ2NWQ5MTEzZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgTm92IDIwIDA5OjU5OjA5IDIwMDggKzAxMDAKCiAgICBwb3dlcnBjLCBrZXltaWxlIGJvYXJkczogZXh0cmFjdCBpZGVudGljYWwgY29uZmlnIG9wdGlvbnMKCiAgICBUaGlzIHBhdGNoIGV4dHJhY3RzIHRoZSBpZGVudGljYWwgY29uZmlnIG9wdGlvbnMgZm9yIHRoZQogICAga2V5bWlsZSBib2FyZHMgbWdjb2dlLCBtZ3N1dmQgYW5kIGttZXRlcjEgaW4gYSBuZXcKICAgIGNvbW1vbiBjb25maWcgZmlsZSBrZXltaWxlLWNvbW1vbi5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDIxMGM4YzAwYWFkMzMyODE0NTIwNGFkYWI0MzRiYjdkNzBiMDZiNzUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAyMSAwODoyOTo0MCAyMDA4ICswMTAwCgogICAgcG93ZXJwYzoga2V5bWlsZTogQWRkIGEgY2hlY2sgZm9yIHRoZSBQSUdHWSBkZWJ1ZyBib2FyZAoKICAgIENoZWNrIHRoZSBwcmVzZW5jZSBvZiB0aGUgUElHR1kgb24gdGhlIGtleW1pbGUgYm9hcmRzIG1nY29nZSwKICAgIG1nc3V2ZCBhbmQga21ldGVyMS4gSWYgdGhlIFBJR0dZIGlzIG5vdCBwcmVzZW50LCBkb250IHJlZ2lzdGVyCiAgICB0aGlzIEV0aGVybmV0IGRldmljZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGRlMDQ0MzYxNGFmNGQxNjY3NWFiNDM2NjY1YWViMTFkZGM5ZjcyMTQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMCAwOTo1Nzo0NyAyMDA4ICswMTAwCgogICAgcG93ZXJwYzogODN4eDogYWRkIHN1cHBvcnQgZm9yIHRoZSBrbWV0ZXIxIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBrbWV0ZXIxIGJvYXJkIGZyb20gS2V5bWlsZSwKICAgIGJhc2VkIG9uIGEgRnJlZXNjYWxlIE1QQzgzNjAgQ1BVLgoKICAgIC0gc2VyaWFsIGNvbnNvbGUgb24gVUFSVCAxCiAgICAtIDI1NiBNQiBERFIyIFJBTQogICAgLSA2NCBNQiBOT1IgRmxhc2gKICAgIC0gRXRoZXJuZXQgUk1JSSBNb2RlIG92ZXIgVUNDNAogICAgLSBQSFkgU01TQyBMQU44NzAwCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2ZlYjY0N2YzZmQwODgxMzgyYzdhMjlmNGNmMjgwYjY2NDczYWUwYQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBOb3YgNCAxMzo1MToxOCAyMDA4ICswMTAwCgogICAgQWRkIGEgZG9fZGl2KCkgd3JhcHBlciBtYWNybywgbGxkaXYoKS4KCiAgICBBZGQgYSBkb19kaXYoKSB3cmFwcGVyLCBsbGRpdigpLiBUaGUgbmV3IGlubGluZSBmdW5jdGlvbiBkb2Vzbid0IG1vZGlmeQogICAgdGhlIGRpdmlkZW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgZGl2aXNpb24sIHNvIGl0IGlzIHVzZWZ1bAogICAgaW4gY29tcGxleCBleHByZXNzaW9ucywgaS5lLiAicmV0dXJuKGEvYikiIC0+ICJyZXR1cm4obGxkaXYoYSxiKSkiCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAxOGFmMWM1ZjBmNzQwMmRjMGQ2YTcxYjAxMmM2ODAyNWRkOTdjZjcyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEphbiAyMyAxNDoyMjoxNCAyMDA5IC0wNjAwCgogICAgODV4eDogQWRkIGEgMzYtYml0IHBoeXNpY2FsIGNvbmZpZ3VyYXRpb24gZm9yIE1QQzg1NzJEUwoKICAgIFdlIG1vdmUgYWxsIElPIGFkZHJlc3NlZCAoQ0NTUiwgbG9jYWxidXMsIFBDSSkgYWJvdmUgdGhlIDRHIGJvdW5kYXJ5CiAgICB0byBhbGxvdyBmb3IgbGFyZ2VyIG1lbW9yeSBzaXplcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGM1MWZjNWQ1M2M0NTYwYWJjNGQwYTYxMjZjMDZmYzY4MTMzZDE1MjgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgSmFuIDIzIDE0OjIyOjEzIDIwMDkgLTA2MDAKCiAgICA4NXh4OiBIYW5kbGUgZUxCQyBkaWZmZXJlbmNlIHcvMzYtYml0IHBoeXNpY2FsCgogICAgVGhlIGVMQkMgb25seSBoYW5kbGVzIDMyLWJpdCBwaHlzaWNhbCBhZGRyZXNzIGluIHN5c3RlbXMgd2l0aCAzNi1iaXQKICAgIHBoeXNpY2FsLiAgVGhlIHByZXZpb3MgZ2VuZXJhdGlvbiBvZiBMQkMgaGFuZGxlZCAzNC1iaXQgcGh5c2ljYWwKICAgIGFkZHJlc3MgaW4gMzYtYml0IHN5c3RlbXMuCUFkZGVkIGEgbmV3IENPTkZJRyBvcHRpb24gdG8gY29udmV5CiAgICB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBMQkMgYW5kIGVMQkMuCgogICAgQWxzbyBhZGRlZCBkZWZpbmVzIGZvciBYQU0gYml0cyB1c2VkIGluIExCQyBmb3IgdGhlIGV4dGVuZGVkIDM0LWJpdAogICAgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDcyYTk0MTRhOGUyMWU5NTM2ODIyYzczNTNiYzA4ZDIxY2U1YWQ1M2QKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgSmFuIDIzIDE0OjIyOjEyIDIwMDkgLTA2MDAKCiAgICA4NXh4OiBVc2UgQlJfQUREUiBtYWNybyBmb3IgTkFORCBjaGlwc2VsZWN0cwoKICAgIFVzZSB0aGUgbmV3IEJSX0FERFIgbWFjcm8gdG8gcHJvcGVybHkgc2V0dXAgdGhlIGFkZHJlc3MgZmllbGQgb2YgdGhlCiAgICBsb2NhbGJ1cyBjaGlwc2VsZWN0cyB1c2VkIGJ5IE5BTkQuCgogICAgVGhpcyBhbGxvd3MgdXMgdG8gZGVhbCB3aXRoIDM2LWJpdCBwaHlzIG9uIHRoZXNlIGJvYXJkcyBpbiB0aGUgZnV0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmZjN2ViMGNmYzYwOGM5MzY5MDAxZDU3YTA0MTFhZjVlNmE1OGY3YwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTUgMTE6NTg6MzUgMjAwOSAtMDUwMAoKICAgIEFkZCBzZWNvbmRhcnkgQ1BVcyBwcm9jZXNzb3IgZnJlcXVlbmN5IGZvciBlNTAwIGNvcmUKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgZTUwMCBmcmVxUHJvY2Vzc29yIHRvIGFycmF5IGJhc2VkIG9uIENPTkZJR19OVU1fQ1BVUywKICAgIGFuZCBwcmludHMgZWFjaCBDUFUncyBmcmVxdWVuY3kgc2VwYXJhdGVseS4gSXQgYWxzbyBmaXhlcyB1cCBlYWNoIENQVSdzCiAgICBmcmVxdWVuY3kgaW4gImNsb2NrLWZyZXF1ZW5jeSIgb2YgZmR0IGJsb2IuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjViMWYwYzBkMjhjZTA2MmUxZDM2ODY4MDYzMmRmYjA5OWRlNjkyCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxNjozMTo1MyAyMDA4ICswODAwCgogICAgODV4eDogZW5hYmxlIHRoZSBhdXRvIHNlbGYgcmVmcmVzaCBmb3Igd2FrZSB1cCBBUlAKCiAgICBUaGUgd2FrZSB1cCBBUlAgZmVhdHVyZSBuZWVkIHVzZSB0aGUgbWVtb3J5IHRvIHByb2Nlc3MKICAgIHdha2UgdXAgcGFja2V0LCB3ZSBlbmFibGUgYXV0byBzZWxmIHJlZnJlc2ggdG8gc3VwcG9ydCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNDk4M2UxNmQxNTBhYjdkMDM5NzA0YzMxMGFhY2JkMmY0ZGMxZTBmCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxNjozMTo0MyAyMDA4ICswODAwCgogICAgZnNsLWRkcjogdXNlIHRoZSAxVCB0aW1pbmcgYXMgZGVmYXVsdCBjb25maWd1cmF0aW9uCgogICAgRm9yIGxpZ2h0IGxvYWRlZCBzeXN0ZW0sIHdlIHVzZSB0aGUgMVQgdGltaW5nIHRvIGdhaW4gYmV0dGVyCiAgICBtZW1vcnkgcGVyZm9ybWFuY2UsIGJ1dCBmb3Igc29tZSBoZWF2aWx5IGxvYWRlZCBzeXN0ZW0sCiAgICB5b3UgaGF2ZSB0byBhZGQgdGhlIDJUIHRpbWluZyBvcHRpb25zIHRvIGJvYXJkIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyY2NhN2UxY2Q1NDU5MGU5NjdjNzM1NThiMDdmZmJkY2NkMzk1MDQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDIxIDE2OjMxOjM1IDIwMDggKzA4MDAKCiAgICBmc2wtZGRyOiBtYWtlIHRoZSBzZWxmIHJlZnJlc2ggaWRsZSB0aHJlc2hvbGQgY29uZmlndXJhYmxlCgogICAgU29tZSA4NXh4IHByb2Nlc3NvcnMgaGF2ZSB0aGUgYWR2YW5jZWQgcG93ZXIgbWFuYWdlbWVudCBmZWF0dXJlLAogICAgc3VjaCBhcyB3YWtlIHVwIEFSUCwgdGhhdCBuZWVkcyBlbmFibGUgdGhlIGF1dG9tYXRpYyBzZWxmIHJlZnJlc2guCgogICAgSWYgdGhlIEREUiBjb250cm9sbGVyIHBhc3MgdGhlIFNSX0lUIChzZWxmIHJlZnJlc2ggaWRsZSB0aHJlc2hvbGQpCiAgICBpZGxlIGN5Y2xlcywgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGVudGVyIHNlbGYgcmVmcmVzaC4gSG93ZXZlciwKICAgIGFueXRpbWUgb25lIHRyYW5zYWN0aW9uIGlzIGlzc3VlZCB0byB0aGUgRERSIGNvbnRyb2xsZXIsIGl0IHdpbGwKICAgIHJlc2V0IHRoZSBjb3VudGVyIGFuZCBleGl0IHNlbGYgcmVmcmVzaCBzdGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmZmM2QwMTM0OGUwYTJkYzM2OWI3ZWZjYmFjMzBlNGNlODZkMTc4CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxNjozMToyOSAyMDA4ICswODAwCgogICAgZnNsLWRkcjogY2xlYW4gdXAgdGhlIGRkciBjb2RlIGZvciBERFIzIGNvbnRyb2xsZXIKCiAgICAtIFRoZSBERFIzIGNvbnRyb2xsZXIgaXMgZXhwYW5kaW5nIHRoZSBiaXRzIGZvciB0aW1pbmcgY29uZmlnCiAgICAtIEFkZCB0aGUgRERSMyAzMi1iaXQgYnVzIG1vZGUgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwZWUzY2U2ZDdmZTk0NDFiNDM1MmQ3Y2ZhZjZhZmMyNTA3YjExMDYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDIxIDE2OjMxOjIyIDIwMDggKzA4MDAKCiAgICBmc2wtZGRyOiB1cGRhdGUgdGhlIGJpdCBtYXNrIGZvciBERFIzIGNvbnRyb2xsZXIKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCA4NTcyIFVNLCB0aGUgRERSMyBjb250cm9sbGVyCiAgICBpcyBleHBhbmRpbmcgdGhlIGJpdCBtYXNrLCBhbmQgd2UgdXNlIHRoZSBleHRlbmQgQUNUVE9QUkUKICAgIG1vZGUgd2hlbiB0UkFTIG1vcmUgdGhhbiAxOSBNQ0xLLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWNhNWYwMThhODM4NmI4NTQ2OTQ4MmVkOTg2N2UzZTI5YTI0MzdkMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMiAxNjowODo0MCAyMDA4IC0wNjAwCgogICAgODV4eDogSW50cm9kdWNlIENPTkZJR19TWVNfUENJKl9JT19WSVJUIGZvciBGU0wgYm9hcmRzCgogICAgSW50cm9kdWNlIGEgbmV3IGRlZmluZSB0byBzZXBlcmF0ZSBvdXQgdGhlIHZpcnR1YWwgYWRkcmVzcyB0aGF0IFBDSQogICAgSU8gc3BhY2UgaXMgYXQgZnJvbSB0aGUgcGh5c2ljYWwgYWRkcmVzcy4gIEluIG1vc3Qgc2l0dWF0aW9ucyB0aGVzZSBhcmUKICAgIG1hcHBlZCAxOjEuICBIb3dldmVyIGFueSBjb2RlIGFjY2Vzc2luZyB0aGUgYnVzIHNob3VsZCB1c2UgVklSVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YWYwZmRkODFjMzM3MGMzYTUxNDIxMjA4ZmRhNTY4YmRjYmJlYzIzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE2OjA4OjM5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBJbnRyb2R1Y2UgQ09ORklHX1NZU19QQ0kqX01FTV9WSVJUIGZvciBGU0wgYm9hcmRzCgogICAgSW50cm9kdWNlIGEgbmV3IGRlZmluZSB0byBzZXBlcmF0ZSBvdXQgdGhlIHZpcnR1YWwgYWRkcmVzcyB0aGF0IFBDSQogICAgbWVtb3J5IGlzIGF0IGZyb20gdGhlIHBoeXNpY2FsIGFkZHJlc3MuICBJbiBtb3N0IHNpdHVhdGlvbnMgdGhlc2UgYXJlCiAgICBtYXBwZWQgMToxLiAgSG93ZXZlciBhbnkgY29kZSBhY2Nlc3NpbmcgdGhlIGJ1cyBzaG91bGQgdXNlIFZJUlQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTZlMDRjMzQ0YWQxZWVmZDQ3YTc1NDg0NDQxYjM4NWRhODE1YjhkZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMiAxNjowODozOCAyMDA4IC0wNjAwCgogICAgODV4eDogVXNlIENPTkZJR19TWVNfe1BDSSosUklPKn1fTUVNX1BIWVMgZm9yIHBoeXNpY2FsIGFkZHJlc3Mgb24gRlNMIGJvYXJkcwoKICAgIFVzZSB0aGUgX01FTV9QSFlTIGRlZmluZXMgaW5zdGVhZCBvZiBfTUVNX0JVUyBmb3IgTEFXIGFuZCByZWFsIGFkZHJlc3MgZmllbGRzCiAgICBvZiBUTEJzLiAgVGhpcyBpcyB3aGF0IHdlIHNob3VsZCBoYXZlIGFsd2F5cyBiZWVuIHVzaW5nIGZyb20gdGhlIHN0YXJ0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmOTFlZjZhY2RiYWRlYzMzZTAxOTIwNDllMmIyNGExZDk2OTJmMWQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRGVjIDIgMTY6MDg6MzcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgQ09ORklHX1NZU19QQ0kqX0lPX0JBU0UgdG8gX0lPX0JVUyBmb3IgRlNMIGJvYXJkcwoKICAgIFVzZSBDT05GSUdfU1lTX1BDSSpfSU9fQlVTIGZvciB0aGUgYnVzIHJlbGF0aXZlIGFkZHJlc3MgaW5zdGVhZAogICAgb2YgX0lPX0JBU0Ugc28gd2UgYXJlIG1vcmUgZXhwbGljaXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxMDc5NWY0MmNiOTRlNzFiY2IyNjJiNjE1MDg0ZjY5ZGQ4ODYzOTlhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE2OjA4OjM2IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IENPTkZJR19TWVNfe1BDSSosUklPKn1fTUVNX0JBU0UgdG8gX01FTV9CVVMgZm9yIEZTTCBib2FyZHMKCiAgICBVc2UgQ09ORklHX1NZU197UENJLFJJT31fTUVNX0JVUyBmb3IgdGhlIGJ1cyByZWxhdGl2ZSBhZGRyZXNzIGluc3RlYWQKICAgIG9mIF9NRU1fQkFTRSBzbyB3ZSBhcmUgbW9yZSBleHBsaWNpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOTUzZGRmZDU2YjNhZTNmMjg5MTBmZTNhZWQ2ZGU2OTY4ZDFjOWFhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE0OjE5OjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBzZXBhcmF0ZSBGTEFTSCBCQVNFIHZpcnR1YWwgZnJvbSBwaHlzaWNhbCBhZGRyZXNzCgogICAgQWRkZWQgYSBDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZUyBmb3IgdXNlIGFzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGFuZAogICAgbWFpbnRhaW4gQ09ORklHX1NZU19GTEFTSF9CQVNFIGFzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGZsYXNoLgoKICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRlYWwgd2l0aCAzNi1iaXQgcGh5cyBvbiB0aGVzZSBib2FyZHMgaW4gdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MmI1NjVmNWFkMjNiNjgyNDg5MDU1YjE4Nzc2N2Q4YmYxYzJlNDQ0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE0OjE5OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBzZXBhcmF0ZSBQSVhJUyB2aXJ0dWFsIGZyb20gcGh5c2ljYWwgYWRkcmVzcwoKICAgIEFkZGVkIGEgUElYSVNfQkFTRV9QSFlTIGZvciB1c2UgYXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgYW5kIG1haW50YWluCiAgICBQSVhJU19CQVNFIGFzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIFBJWElTIGZwZ2EgcmVnaXN0ZXJzLgoKICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRlYWwgd2l0aCAzNi1iaXQgcGh5cyBvbiB0aGVzZSBib2FyZHMgaW4gdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMDgzN2U1YjIxZDVhNzQyOTgzNTgxYWI5ZWUzZmFjMDg1MzExZDE5CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAxMSAwODo1MjowOSAyMDA4IC0wNTAwCgogICAgQWRkIFJFQURNRSBmaWxlIGZvciBNUEM4NTcyRFMgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZGFkYzkxOTVhZDY0MmNjNjYyNjMyZjRkOTJmOTJkM2Q3MWU4YmYyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDIwIDE2OjE1OjA0IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogdXNlIGNvbW1vbiBzdHJtaHooKSBpbiBzeXN0ZW0gb3V0cHV0CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDViYjkwN2E0OTI1Mzk3Nzg5YzkwZDA3NGY0ZjdlOTJjZTZiMzk0MDIKQXV0aG9yOiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+CkRhdGU6CVRodSBKYW4gMjIgMTU6MDU6MjQgMjAwOSAtMDgwMAoKICAgIG1wYzgzeHg6IE5ldyBib2FyZCBzdXBwb3J0IGZvciBTSU1QQzgzMTMKCiAgICBUaGlzIHBhdGNoIHdpbGwgY3JlYXRlIGEgbmV3IGJvYXJkLCBTSU1QQzgzMTMsIGZyb20gU2hlbGRvbiBJbnN0cnVtZW50cy4gIFRoaXMKICAgIGJvYXJkIGJvb3RzIGZyb20gTkFORCBkZXZpY2VzIGFuZCBpcyBjb25maWd1cmVhYmxlIGZvciBlaXRoZXIgbGFyZ2Ugb3Igc21hbGwKICAgIHBhZ2UgZGV2aWNlcy4gIFRoZSBib2FyZCBzdXBwb3J0cyBub24tc29sZGVyZWQgRERSMiwgb25lIGV0aGVybmV0IHBvcnQsIGEKICAgIE1hcnZlbGwgODhFMTExOCBQSFksIGFuZCBQQ0kgaG9zdCBzdXBwb3J0LglUaGUgYm9hcmQgYWxzbyBoYXMgYSBGUEdBIGNvbm5lY3RlZAogICAgdG8gdGhlIGVMQkMgcHJvdmlkaW5nIGdsdWUgbG9naWMgdG8gYSBUTVMzMjBDNjd4eCBEU1AuCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNGJhZGU4ZDc3YWEyMGUyODQ2ZmE0YWNjZmYwZTdmYTc5NjFhMTM0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gSmFuIDE4IDE5OjQ2OjA2IDIwMDkgLTA1MDAKCiAgICBuYW5kOiBmaXh1cCBwcmludGYgbW9kaWZpZXJzIHRvIG1hdGNoIHR5cGVzIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODllNjYyMGUyMjcxMDk2ZGYzMzE2OTE3NTI4MDAzNjI3ZGI0MDIxCkF1dGhvcjogU2NobGFlZ2wgTWFuZnJlZCBqdW4gPG1hbmZyZWQuc2NobGFlZ2xAZ214LmF0PgpEYXRlOglUdWUgSmFuIDIwIDE2OjU3OjU1IDIwMDkgKzAxMDAKCiAgICBuYW5kIHJlYWQuamZmczIgKG5hbmRfbGVnYWN5KSBpbiBjb21tb24vY21kX25hbmQuYwoKICAgIEVycm9yIHdpdGggQ09ORklHX05BTkRfTEVHQUNZIGluIGNvbW1vbi9jbWRfbmFuZC5jOgogICAgV2l0aCBjdXJyZW50IGNvZGUgIm5hbmQgcmVhZC5qZmZzMnMiIChyZWFkIGFuZCBza2lwIGJhZCBibG9ja3MpIGlzIGFsd2F5cyBpbnRlcnByZXRlZCBhcwogICAgIm5hbmQgcmVhZC5qZmZzMiIgKHJlYWQgYW5kIGZpbGwgYmFkIGJsb2NrcyB3aXRoIDB4ZmYpLiBUaGlzIGlzIGJlY2F1c2UgIi5qZmZzMiIgaXMKICAgIHRlc3RlZCBiZWZvcmUgIi5qZmZzMnMiIGFuZCBvbmx5IHRoZSBmaXJzdCB0d28gY2hhcmFjdGVycyBhcmUgY29tcGFyZWQuCgogICAgQ29ycmVjdGlvbjoKICAgIFRlc3QgZm9yICIuamZmczJzIiBmaXJzdCBhbmQgY29tcGFyZSB0aGUgZmlyc3QgNyBjaGFyYWN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjODY5NjM3ZmVmMzFlNjYzODBmMGVhMWQ0OTY5MGEyZTI2ZWMwZDcKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJRnJpIEphbiAxNiAxODo1NTo1NCAyMDA5ICswMTAwCgogICAgTkFORDogcmVuYW1lIE5BTkRfTUFYX0NISVBTIHRvIENPTkZJR19TWVNfTkFORF9NQVhfQ0hJUFMKCiAgICBUaGlzIHBhdGNoIHJlbmFtZXMgTkFORF9NQVhfQ0hJUFMgdG8gQ09ORklHX1NZU19OQU5EX01BWF9DSElQUyBhbmQKICAgIGNoYW5nZXMgdGhlIGRlZmF1bHQgZnJvbSA4IHRvIDEgZm9yIHRoZSBsZWdhY3kgYW5kIHRoZSBuZXcgTVRECiAgICBOQU5EIGxheWVyLiBUaGlzIGFsbG93cyB0byByZW1vdmUgYWxsIE5BTkRfTUFYX0NISVBTIGRlZmluaXRpb25zCiAgICBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGVzIGJlY2F1c2Ugbm9uZSBvZiB0aGUgYm9hcmRzIHVzZSBtdWx0aQogICAgY2hpcCBzdXBwb3J0IChOQU5EX01BWF9DSElQUyA+IDEpIHNvIGZhci4gVGhlIGJhbWJvbyBhbmQgdGhlIERVNDQwCiAgICBkZWZpbmUKCiAgICAgI2RlZmluZSBOQU5EX01BWF9DSElQUwkgICAgIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCgogICAgYnV0IHRoYXQncyBib2d1cyBhbmQgZGlkIG5vdCB3b3JrIGFueWhvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3MDU2NGU2YjFiZDA4ZjMyMzAxODIzOTIyMzg5MDdmMzUzMWE4N2UKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDIgMTE6NDg6NTEgMjAwOCArMDgwMAoKICAgIE5BTkQ6IEZpeCBjYWNoZSBhbmQgbWVtb3J5IGluY29uc2lzdGVuY3kgaXNzdWUKCiAgICBXZSBsb2FkIHRoZSBzZWNvbmRhcnkgc3RhZ2UgdS1ib290IGltYWdlIGZyb20gTkFORCB0bwogICAgc3lzdGVtIG1lbW9yeSBieSBuYW5kX2xvYWQsIGJ1dCB3ZSBkaWQgbm90IGZsdXNoIGQtY2FjaGUKICAgIHRvIG1lbW9yeSwgbm9yIGludmFsaWRhdGUgaS1jYWNoZSBiZWZvcmUgd2UganVtcCB0byBSQU0uCiAgICBXaGVuIHRoZSBzeXN0ZW0gaGFzIGNhY2hlIGVuYWJsZWQgYW5kIHRoZSBUTEIvcGFnZSBhdHRyaWJ1dGUKICAgIG9mIHN5c3RlbSBtZW1vcnkgaXMgY2FjaGVhYmxlLCBpdCB3aWxsIGNhdXNlIGlzc3Vlcy4KCiAgICAtIDgzeHggZmFtaWx5IGlzIHVzaW5nIHRoZSBkLWNhY2hlIGxvY2ssIHNvIGFsbCBvZiBkLWNhY2hlCiAgICAgIGFjY2VzcyBpcyBjYWNoZS1pbmhpYml0ZWQuIHNvIHlvdSBjYW4ndCBzZWUgdGhlIGlzc3VlLgogICAgLSA4NXh4IGZhbWlseSBpcyB1c2luZyBkLWNhY2hlLCBpLWNhY2hlIGVuYWJsZSwgcGFydGlhbAogICAgICBjYWNoZSBsb2NrLiB5b3Ugd2lsbCBzZWUgdGhlIGlzc3VlLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNhY2hlIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDY1N2MyNzMyNzhmNzQzNzhlMWFjMzliNDFkNjEyYjkyZmRmZmEwCkF1dGhvcjogTmlzaGFudGggTWVub24gPG1lbm9uLm5pc2hhbnRoQGdtYWlsLmNvbT4KRGF0ZToJU2F0IERlYyAxMyAwOTo0MzowNiAyMDA4IC0wNjAwCgogICAgTkFORDogRW5hYmxlIG5hbmQgbG9jaywgdW5sb2NrIGZlYXR1cmUKCiAgICBFbmFibGUgbmFuZCBsb2NrLCB1bmxvY2sgYW5kIHN0YXR1cyBvZiBsb2NrIGZlYXR1cmUuCiAgICBOb3QgZXZlcnkgZGV2aWNlIGFuZCBwbGF0Zm9ybSByZXF1aXJlcyB0aGlzLCBoZW5jZSwKICAgIGl0IGlzIHVuZGVyIGRlZmluZSBmb3IgQ09ORklHX0NNRF9OQU5EX0xPQ0tfVU5MT0NLCgogICAgTmFuZCB1bmxvY2sgYW5kIHN0YXR1cyBvcGVyYXRlIG9uIGJsb2NrIGJvdW5kYXJ5IGluc3RlYWQKICAgIG9mIHBhZ2UgYm91bmRhcnkuIERldGFpbHMgaW46CiAgICBodHRwOi8vd3d3Lm1pY3Jvbi5jb20vcHJvZHVjdHMvcGFydGRldGFpbD9wYXJ0PU1UMjlDMkcyNE1BS0xBSkctNiUyMElUCgogICAgSW50aWFsIHNvbHV0aW9uIHByb3ZpZGVkIGJ5IFZpa3JhbSBQYW5kaXRhIDx2aWtyYW0ucGFuZGl0YUB0aS5jb20+CiAgICBJbmNsdWRlcyBwcmVsaW1pbmFyeSBzdWdnZXN0aW9ucyBmcm9tIFNjb3R0IFdvb2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaXNoYW50aCBNZW5vbiA8bm1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjlmYjhiZTRmYzA3MTYyZmRmNmVkZjA0YmRjNzIzM2IwZTlhOTIwZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IERlYyA2IDAyOjQwOjU1IDIwMDggLTA1MDAKCiAgICBOQU5EOiBtb3ZlIGJvYXJkX25hbmRfaW5pdCB0byBuYW5kLmgKCiAgICBSYXRoZXIgdGhhbiBwdXR0aW5nIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIGJvYXJkX25hbmRfaW5pdCgpIGluIHRoZSBvbmUKICAgIHBsYWNlIHdoZXJlIGl0IGdldHMgY2FsbGVkLCBwdXQgaXQgaW50byBuYW5kLmggc28gdGhhdCBldmVyeSBwbGFjZSB0aGF0IGFsc28KICAgIGRlZmluZXMgaXQgZ2V0cyB0aGUgcHJvdG90eXBlLiAgT3RoZXJ3aXNlLCBlcnJvcnMgY2FuIGdvIHNpbGVudGx5IHVubm90aWNlZAogICAgc3VjaCBhcyB1c2luZyB0aGUgd3JvbmcgcmV0dXJuIHZhbHVlICh2b2lkIHJhdGhlciB0aGFuIGludCkgd2hlbiBkZWZpbmluZwogICAgdGhlIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhZTM5ODYyMDQ0ZWJiMWU2ODIyMzRiNTFmOTQ0MjFlM2Y4NzFkNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMiAxMTowNjo0NyAyMDA4ICswMTAwCgogICAgT25lTkFORDogQWRkaXRpb25hbCBzeW5jIHdpdGggMi42LjI3CgogICAgLSBBZGQgc3VicGFnZSB3cml0ZSBzdXBwb3J0CiAgICAtIEFkZCBvbmVuYW5kX29vYl82NC8zMiBlY2NsYXlvdXQKCiAgICBUaGlzIGhhcyBiZWVuIG1pc3NpbmcgYW5kIHdpdGhvdXQgaXQgVUJJIGhhcyBzb21lIGluY29tcGF0aWJpbGllcyBpc3N1ZXMKICAgIHdpdGggdGhlIGN1cnJlbnQgKD49IDIuNi4yNykgTGludXgga2VybmVsIHZlcnNpb24uIHZpZF9oZHJfb2Zmc2V0IGlzCiAgICBwbGFjZWQgZGlmZmVyZW50bHkgKDIwNDggaW5zdGVhZCBvZiA1MTIpIHdpdGhvdXQgdGhpcyBmaXguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTcxNGY1MWEyMDA5YmFhZWNmM2Q0ZjZlM2JkOGM0ZTkzYThkM2YyMwpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglUaHUgTm92IDEzIDE1OjE0OjMzIDIwMDggKzA5MDAKCiAgICBBZGQgbWFya2JhZCBmdW5jdGlvbgoKICAgIEFkZCBtaXNzaW5nIG1hcmtiYWQgZnVuY3Rpb24KICAgIElmIG5vdCwgaXQncyBoYW5nIHdoZW4gaXQgZW50ZXJlZCB0aGUgbXRkLT5tYXJrX2JhZCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYzQzOGVhMTc1ZDhkMDAyYzEwNjNiN2E5NGIwYzBlMjY2NjhkMWFjOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAxMiAxMzo0NzoyNCAyMDA4ICswMTAwCgogICAgT25lTkFORDogQmFkIGJsb2NrIGF3YXJlIHJlYWQvd3JpdGUgY29tbWFuZCBzdXBwb3J0CgogICAgVXBkYXRlIE9uZU5BTkQgY29tbWFuZCB0byBzdXBwb3J0IGJhZCBibG9jayBhd2FyZW5lc3MuCiAgICBBbHNvIGNoYW5nZSB0aGUgT25lTkFORCBjb21tYW5kIHN0eWxlIHRvIGJldHRlciBtYXRjaCB0aGUKICAgIE5BTkQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA4Y2YxMWYzYWE3ODY3MzczMGU5ZWNiYmU0Yjc1MjEzYjUzZjIxMmM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDExIDEwOjI5OjA5IDIwMDggKzAxMDAKCiAgICBPbmVOQU5EOiBTYXZlIHZlcnNpb25faWQgaW4gb25lbmFuZF9jaGlwIHN0cnVjdAoKICAgIFRoZSB2ZXJzaW9uICh2ZXJfaWQpIHdhcyBub3Qgc3RvcmVkIGluIHRoZSBvbmVuYW5kX2NoaXAgc3RydWN0dXJlIGFuZAogICAgYmVjYXVzZSBvZiB0aGlzIHRoZSBjb250aW51b3VzIGxvY2tpbmcgc2NoZW1lIGNvdWxkIGJlIGVuYWJsZWQgb24gc29tZQogICAgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmY2EzMzEwZDYxMWNjMGY1MWQ3Mjk1ZWYzNTU3YWZiZGJkOTFkYzMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTEgMTA6Mjg6NTMgMjAwOCArMDEwMAoKICAgIE9uZU5BTkQ6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYWM1NzQ0ZTMzZWUwYWE2ZDZkZGFiM2I5OWY5ZTcwOTUzMTU2ZTY5CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiA0IDE0OjU1OjA2IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBlbmFibGUgZUxCQyBOQU5EIHN1cHBvcnQgZm9yIE1QQzgzMTVFUkRCIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZjA5MjFkNmIwNWFlYjkwMzQxNThmOWJlZjUzMjNkNmRhOWM5MjVlCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVR1ZSBOb3YgNCAwOToyNDowNyAyMDA4ICswOTAwCgogICAgU3luYyB3aXRoIDIuNi4yNwoKICAgIFN5bmMgd2l0aCBPbmVOQU5EIGtlcm5lbCBjb2RlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgZTdmMzI1YmU5ZWRlYjg0YmI0NTczMDE3NzZiYmFjMWY3MjU3ZGFmYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEphbiA1IDEzOjM1OjMxIDIwMDkgKzAxMDAKCiAgICBtaWNyb2JsYXplOiBVc2UgY2FjaGUgZnVuY3Rpb25zIChlc3BlY2lhbGx5IGNhY2hlIHN0YXR1cykKICAgIGluIHN5c3RlbXMgd2hpY2ggYXJlIGNvbmZpZ3VyZWQgd2l0aG91dCBmbGFzaAoKY29tbWl0IGU5YjczN2RlYjJjMzAxMjUzNjJkMjBlMjQxNzA2MTc0NzYwMjZlOTQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKYW4gNSAxMzoyOTozMiAyMDA5ICswMTAwCgogICAgbWljcm9ibGF6ZTogQWRkIGNhY2hlIGZsdXNoCgpjb21taXQgYjRmOGRkYTM1YmZhZDQ0N2I0MTA2ODI4MjMyNzA1YjJlODc4ZDE2OApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEphbiA1IDEzOjI4OjQwIDIwMDkgKzAxMDAKCiAgICBtaWNyb2JsYXplOiBBZGQgYm9vdHVwIG1lc3NhZ2VzIHRvIGJvYXJkLmMKCmNvbW1pdCAzMzBlNTU0NTliYzk5ODMzNDFkYTZjMWQ1YzdmZTAwYTY2NDQzNmZlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgRGVjIDE5IDEzOjI1OjU1IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBDaGFuZ2UgbWljcm9ibGF6ZS1nZW5lcmljIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDUyYTgyMmVkOWMzN2EyZWEwZWQxMTJhMjZkOGZmNWE2Y2IxYzZmMTAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBEZWMgMTkgMTM6MTQ6MDUgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IFJlbmFtZSBtbDQwMSB0byBtaWNyb2JsYXplLWdlbmVyaWMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgNjY3Nzg3NjE4MWNjODc3MmJjYThhMzcyNDc5YTUwMGQxNjBmMzk5MwpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDIwIDExOjU2OjExIDIwMDkgLTA2MDAKCiAgICA4M3h4OiBVc2UgdGhlIHByb3BlciBzZXF1ZW5jZSBmb3IgdXBkYXRpbmcgSU1NUi4KCiAgICBUaGlzIGVuc3VyZXMgdGhhdCBzdWJzZXF1ZW50IGFjY2Vzc2VzIHByb3Blcmx5IGhpdCB0aGUgbmV3IHdpbmRvdy4KCiAgICBUaGUgZGNiaSBkdXJpbmcgdGhlIE5BTkQgbG9vcCB3YXMgYWNjaWRlbnRhbGx5IHdvcmtpbmcgYXJvdW5kIHRoaXM7CiAgICBpdCdzIG5vIGxvbmdlciBuZWNlc3NhcnksIGFzIHRoZSBjYWNoZSBpcyBub3QgZW5hYmxlZC4KCiAgICBSZXBvcnRlZC1ieTogU3VjaGl0IExlcGNoYSA8U3VjaGl0LkxlcGNoYUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiMzQ1NTdjNTQ2ZTVlOWYzNGViZjgzYzkzNDEzZGFkOTczZDkzZGYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEphbiA4IDA0OjI2OjE5IDIwMDkgKzAzMDAKCiAgICBtcGM4M3h4OiBBZGQgUENJLUUgc3VwcG9ydCBmb3IgTVBDODM3WEVNRFMgYm9hcmRzCgogICAgTVBDODM3WEVNRFMgYm9hcmRzIGNhbiBzdXBwb3J0IFBDSS1FIHZpYSAiUENJLUUgcmlzZXIgY2FyZCIuIFRoZSBjYXJkCiAgICBwcm92aWRlcyB0d28gUENJLUUgKHgyKSBwb3J0cy4gVGhvdWdoLCBvbmx5IG9uZSBwb3J0IGNhbiBiZSB1c2VkIGluIHgyCiAgICBtb2RlLiBUd28gcG9ydHMgY2FuIGZ1bmN0aW9uIHNpbXVsdGFuZW91c2x5IGluIHgxIG1vZGUuCgogICAgUENJLUUgeDEveDIgbW9kZXMgY2FuIGJlIHN3aXRjaGVkIHZpYSAicGV4X3gyIiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGYxMWUzNGIzMWE3YmUxMjRhMzIzOTY1M2YzM2FmOTUxMDUwMjA0NQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgSmFuIDggMDQ6MjY6MTcgMjAwOSArMDMwMAoKICAgIG1wYzgzeHg6IEFkZCBQQ0ktRSBzdXBwb3J0IGZvciBNUEM4MzE1RVJEQiBib2FyZHMKCiAgICBNUEM4MzE1RVJEQiBib2FyZHMgZmVhdHVyZXMgUENJLUUgeDEgYW5kIE1pbmkgUENJLUUgeDEgcG9ydHMuIExldCdzCiAgICBzdXBwb3J0IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZkNjY0NmMwYjllYmU3ZTVhZmM0YWU0Yzc4MDk3ZDljZDMxN2E1ZTgKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEphbiA4IDA0OjI2OjEyIDIwMDkgKzAzMDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgTVBDODN4eCBQQ0ktRSBjb250cm9sbGVycwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBNUEM4M3h4IFBDSS1FIGNvbnRyb2xsZXJzIGluIFJvb3QgQ29tcGxleAogICAgbW9kZS4KCiAgICBUaGUgcGF0Y2ggaXMgYmFzZWQgb24gVG9ueSBMaSBhbmQgRGF2ZSBMaXUgd29ya1sxXS4KCiAgICBUaG91Z2ggdW5saWtlIHRoZSBvcmlnaW5hbCBwYXRjaCwgYnkgZGVmYXVsdCB3ZSBkb24ndCByZWdpc3RlciBQQ0ktRQogICAgYnVzZXMgZm9yIHVzZSBpbiBVLUJvb3QsIHdlIG9ubHkgY29uZmlndXJlIHRoZSBjb250cm9sbGVycyBmb3IgZnV0dXJlCiAgICB1c2UgaW4gb3RoZXIgT1NlcyAoTGludXgpLiBUaGlzIGlzIGRvbmUgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGVub3VnaAogICAgb2Ygc3BhcmUgQkFUcyB0byBtYXAgYWxsIHRoZSBQQ0ktRSByZWdpb25zLgoKICAgIFRvIGFjdHVhbGx5IHVzZSBQQ0ktRSBpbiBVLUJvb3QsIHVzZXJzIHNob3VsZCBleHBsaWNpdGx5IGRlZmluZQogICAgQ09ORklHXzgzWFhfR0VORVJJQ19QQ0lFX1JFR0lTVEVSX0hPU0VTIHN5bWJvbCBpbiB0aGUgYm9hcmQgZmlsZS4gQW5kCiAgICBvbmx5IHRoZW4gVS1Cb290IHdpbGwgYWJsZSB0byBhY2Nlc3MgUENJLUUsIGJ1dCBhdCB0aGUgY29zdCBvZiBkaXNhYmxlZAogICAgYWRkcmVzcyB0cmFuc2xhdGlvbi4KCiAgICBbMV0gaHR0cDovL2xpc3RzLmRlbnguZGUvcGlwZXJtYWlsL3UtYm9vdC8yMDA4LUphbnVhcnkvMDI3NjMwLmh0bWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OGVjZjU1Y2FiZDdhZWEyOGZlODA5MzcyMGUyMDhmNTNjY2ZkY2Y1CkF1dGhvcjogSXJhIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CkRhdGU6CU1vbiBKYW4gMTIgMTM6MzM6MTcgMjAwOSAtMDgwMAoKICAgIE1QQzgzNDlFTURTOiBkbyBub3Qgc2V0dXAgdW51c2VkIFBDSSBjbG9jayBvdXRwdXRzIGluIFBDSSBhZ2VudCBtb2RlCgogICAgV2hlbiBydW5uaW5nIGluIFBDSSBhZ2VudCBtb2RlLCB0aGUgUENJX0NMS19PVVQgc2lnbmFscyBhcmUgbm90IHVzZWQsIHNvIGRvCiAgICBub3QgZW5hYmxlIHRoZW0uIFNlZSB0aGUgTVBDODM0OUVBIFJlZmVyZW5jZSBNYW51YWwsIFNlY3Rpb24gNC40LjIKICAgICJDbG9ja2luZyBpbiBQQ0kgQWdlbnQgTW9kZSIuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc1ZjM1MjA5ZjcwMmJiMjY4MjY4NTVlZDhjOGU0ZDEwOGFiNWY0MTIKQXV0aG9yOiBJcmEgU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KRGF0ZToJTW9uIEphbiAxMiAxMzozMjoyNiAyMDA5IC0wODAwCgogICAgODN4eDogUENJIGFnZW50IG1vZGUgZml4ZXMgZm9yIG11bHRpLWJvYXJkIHN5c3RlbXMKCiAgICBXaGVuIHJ1bm5pbmcgYSBzeXN0ZW0gd2l0aCAyIG9yIG1vcmUgTVBDODM0OUVNRFMgYm9hcmRzIGluIFBDSSBhZ2VudCBtb2RlLAogICAgdGhlIGJvYXJkcyB3aWxsIGxvY2sgdXAgdGhlIFBDSSBidXMgYnkgc2Nhbm5pbmcgYWdhaW5zdCBlYWNoIG90aGVyLgoKICAgIFRoZSBib2FyZHMgbG9jayBhZ2FpbnN0IGVhY2ggb3RoZXIgYnkgdHJ5aW5nIHRvIGFjY2VzcyB0aGUgUENJIGJ1cyBiZWZvcmUKICAgIGNsZWFyaW5nIHRoZWlyIGNvbmZpZ3VyYXRpb24gbG9jayBiaXQuIEJvdGggYm9hcmRzIGVuZCB1cCBpbiBhIGxvb3AsCiAgICBzZW5kaW5nIGFuZCByZWNlaXZpbmcgIlRhcmdldCBOb3QgUmVhZHkiIG1lc3NhZ2VzIGZvcmV2ZXIuCgogICAgV2hlbiBydW5uaW5nIGluIFBDSSBhZ2VudCBtb2RlLCB0aGUgc2Nhbm5pbmcgbm93IHRha2VzIHBsYWNlIGFmdGVyIHRoZQogICAgYm9hcmRzIGhhdmUgY2xlYXJlZCB0aGVpciBjb25maWd1cmF0aW9uIGxvY2sgYml0LgoKICAgIEFsc28sIGFkZCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gdG8gdGhlIG1wYzgzeHguaCBoZWFkZXIgZmlsZSwgZml4aW5nIGEKICAgIGJ1aWxkIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1NWE0NjkxNWI4Mjg5NmNjMjA3MGViMzI2ZDA3NTU1NWMyYmM1ODAKQXV0aG9yOiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+CkRhdGU6CUZyaSBEZWMgMTIgMTM6MTI6NDUgMjAwOCAtMDgwMAoKICAgIG1wYzgzeHg6IFNpemUgb3B0aW1pemF0aW9uIG9mIHN0YXJ0LlMKCiAgICBDdXJyZW50bHkgdGhlcmUgYXJlIGluIGV4Y2VzcyBvZiAxMDAgYnl0ZXMgbG9jYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbWFnZQogICAgYnVpbHQgYnkgc3RhcnQuUyB0aGF0IGFyZSBub3QgYmVpbmcgdXRpbGl6ZWQuICBUaGlzIHBhdGNoIG1vdmVzIGEgZmV3IGZ1bmN0aW9ucwogICAgaW50byB0aGlzIHBhcnQgb2YgdGhlIGltYWdlLiAgVGhpcyB3aWxsIGNyZWF0ZSBhIGdyZWF0ZXIgbnVtYmVyIG9mICphdmFpbGFibGUqCiAgICBieXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IGJvYXJkIHNwZWNpZmljIGNvZGUgaW4gTkFORCBidWlsZHMgYW5kIHdpbGwgZGVjcmVhc2UKICAgIHRoZSBzaXplIG9mIHRoZSBhc3NlbWJsZWQgY29kZSBpbiBvdGhlciBidWlsZHMuCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmQxNWU3MDViYzM5ODM4ODQxMDVjYjc3NTVjN2JhODBlNzRhMGE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAyMzowODoxMiAyMDA5ICswMTAwCgogICAgUHJlcGFyZSB2MjAwOS4wMQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjM1ZTVmOGZjODIzNjVlNmU5NzM0YjMxMzJiYzk1MTM1YTZkZTY3OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTggMjE6Mzc6NDggMjAwOSArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMS1yYzMKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0Y2RhNDM3ODk4Zjc4NzM3NTJmMDIwMTc1N2NkMzNmMTIxOTZjZTg3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgSmFuIDE3IDEzOjMyOjQyIDIwMDkgLTA1MDAKCiAgICBidWlsZCBzeXN0ZW06IHRyZWF0IGFsbCBEYXJ3aW4ncyBhbGlrZQoKICAgIFRoZSB4ODYgYmFzZWQgdmVyc2lvbiBvZiBEYXJ3aW4gYmVoYXZlcyB0aGUgc2FtZSBxdWlya3kgd2F5IGFzIHRoZSBwb3dlcnBjCiAgICBEYXJ3aW4sIHNvIG9ubHkgY2hlY2sgSE9TVE9TIHdoZW4gc2V0dGluZyB1cCBEYXJ3aW4gd29ya2Fyb3VuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGMwODhhMTA4Yzc1ZGI1NjVlMDcyOTJmZDY2OGRmYTU0OTFlODViYzIKQXV0aG9yOiBQZXRlciBLb3JzZ2FhcmQgPGphY21ldEBzdW5zaXRlLmRrPgpEYXRlOglXZWQgSmFuIDE0IDEzOjUyOjI0IDIwMDkgKzAxMDAKCiAgICBmZHRfcmVzaXplKCk6IGZpeCBhY3R1YWxzaXplIGNhbGN1bGF0aW9ucyB3aXRoIHVuYWxpZ25lZCBibG9icwoKICAgIFRoZSBjb2RlIGluIGZkdF9yZXNpemUoKSB0byBleHRlbmQgdGhlIGZkdCBzaXplIHRvIGVuZCBvbiBhIHBhZ2UgYm91bmRhcnkKICAgIGlzIHdyb25nIGZvciBmZHQncyBub3QgbG9jYXRlZCBhdCBhbiBhZGRyZXNzIGFsaWduZWQgb24gYSBwYWdlIGJvdW5kYXJ5LgogICAgV2hhdCdzIGV2ZW4gd29yc2UsIHRoZSBjb2RlIHdvdWxkIG1ha2UgYWN0dWFsc2l6ZSBzaHJpbmsgcmF0aGVyIHRoYW4gZ3JvdwogICAgaWYgKGJsb2IgJiAweGZmZikgd2FzIGJpZ2dlciB0aGFuIHRoZSBhbW91bnQgb2YgcGFkZGluZyBhZGRlZCBieSBBTElHTigpLAogICAgY2F1c2luZyBmZHRfYWRkX21lbV9yc3YgdG8gZmFpbC4KCiAgICBGaXggaXQgYnkgYWxpZ25pbmcgZW5kIGFkZHJlc3MgKGJsb2IgKyBzaXplKSB0byBhIHBhZ2UgYm91bmRhcnkgaW5zdGVhZC4KICAgIEZvciBhbGlnbmVkIGZkdCdzIHRoaXMgaXMgZXF1aXZhbGVudCB0byB3aGF0IHdlIGhhZCBiZWZvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KCmNvbW1pdCBmYWRhZDE1NzNmYjE2YzkwMDI1ZjA4YTI4NjFkNjA0N2QwOTNjYmE3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgSmFuIDkgMDQ6Mzg6MTcgMjAwOSAtMDUwMAoKICAgIG5jYjogdXNlIHNvY2tsZW5fdAoKICAgIFRoZSByZWN2ZnJvbSgpIGZ1bmN0aW9uIHRha2VzIGEgc29ja2xlbl90LCBub3QgYW4gaW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBmYzgzYzkyNzNjZWM2ZTZlNTQyZjRhMGVhM2I2NTNiN2QwNTEzZmZhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEphbiAxMSAxNjozNToxNiAyMDA5ICswMTAwCgogICAgc2g6IHNlcmlhbDogdXNlIHJlYWR4L3dyaXRleCBhY2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDllMWZhNjI4YmRiNjQ3NDU4MTFjZGQyNmM0Zjk1Mzg0NmMwNzYxODAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gSmFuIDExIDE2OjM1OjE1IDIwMDkgKzAxMDAKCiAgICBzaDogc2VyaWFsOiBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzk5MzVjOTkyNTc1OTIyYjdlZjEzZWVjMDY1NmVkODY2NWQzMjRlMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIEphbiAxMSAxNzo0ODo1NiAyMDA5ICswOTAwCgogICAgc2g6IEZpeCBjb21waWxlIGVycm9yIG9uIGxvd2xldmVsX2luaXQgZmlsZQoKICAgIGxvd2xldmVsX2luaXQgb2YgU0ggd2FzIGNvcnJlY3RlZCB0byB1c2UgdGhlIHdyaXRlL3JlYWRYWCBtYWNyby4KICAgIEhvd2V2ZXIsIHRoZXJlIHdhcyBhIHByb2JsZW0gdGhhdCB3YXMgbm90IGFibGUgdG8gYmUgY29tcGlsZWQgcGFydGlhbGx5LgogICAgVGhpcyBwYXRjaCBjb3JyZWN0ZWQgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYTViMDRkMDBiZmViOTQwYzYyMjMyOTcyY2U2NDRkNTBiNDU3OTdmOQpBdXRob3I6IEtpZXJhbiBCaW5naGFtIDxraWVyYW5iaW5naGFtQGdtYWlsLmNvbT4KRGF0ZToJVHVlIERlYyAzMCAwMToxNjowMyAyMDA4ICswMDAwCgogICAgc2g6IEZpeCB1cCByc2s3MjAzIHRhcmdldCBmb3Igb3V0IG9mIHRyZWUgYnVpbGQKCiAgICBGaXggdXAgcnNrNzIwMyB0YXJnZXQgdG8gYnVpbGQgc3VjY2Vzc2Z1bGx5IHVzaW5nIG91dC1vZi10cmVlIGJ1aWxkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpZXJhbiBCaW5naGFtIDxrYmluZ2hhbUBtcGMtZGF0YS5jby51az4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmN2U3OGYzYjc0YWFlOWNhY2EyOTk3YmFkODY1YTcyMzM4MzI2YzBhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAyMCAxOToyOTo0OSAyMDA4ICswMTAwCgogICAgc2g6IHVzZSB3cml0ZXs4LDE2LDMyfSBpbiBhbGwgbG93bGV2ZWxfaW5pdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZTQ0MzA3Nzk2MjNhZjUwMGRlMWNlZTc4OTJjMzc5ZjA3ZWY1OTgxMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgMjAgMTk6Mjk6NDggMjAwOCArMDEwMAoKICAgIHNoOiBsb3dsZXZlbF9pbml0IGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA4NWNiMDUyZWU0MTY3NWNhMzYxZTZhNGM2OTQ1NWRjNzE1YzhmMmQ5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAyMCAxNToyNzo0NSAyMDA4ICswMTAwCgogICAgc2g6IHVwZGF0ZSBzaDIvc2gyYSB0aW1lciBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDFlMTVmZjk5OTMyMmU4MWFmNGMwYzBjNTQ4OTA4ZjM4OTQ0YmEzOWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRGVjIDIwIDE1OjI1OjIyIDIwMDggKzAxMDAKCiAgICBzaDogdXBkYXRlIHNoIHRpbWVyIGNvZGluZyBzdHlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMGUzZWNlMzM4MDFlMzc3YmU2N2ZmYTI5ZjA4MzQyMWFkODIwZjI4YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTQgMjM6MjY6MDUgMjAwOSArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMS1yYzIKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTkyYzlhODYwZTQ0YzE0NTEzYzg5MDljZTQyOTllMjUzYTc3NWVlYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTQgMjI6MzU6MzAgMjAwOSArMDEwMAoKICAgIGNwdS9tcGM4MjR4L01ha2VmaWxlOiBmaXggd2FybmluZyB3aXRoIHBhcmFsbGVsIGJ1aWxkcwoKICAgIFBhcmFsbGVsIGJ1aWxkcyB3b3VsZCBvY2Nhc2lvbmFsbHkgaXNzdWUgdGhpcyBidWlsZCB3YXJuaW5nOgoKCWxuOiBjcmVhdGluZyBzeW1ib2xpYyBsaW5rIGBjcHUvbXBjODI0eC9iZWRidWdfNjAzZS5jJzogRmlsZSBleGlzdHMKCiAgICBVc2UgImxuIC1zZiIgYXMgcXVpY2sgd29yayBhcm91bmQgZm9yIHRoZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNiYTYwNWQ0YmVlYzY0OTQzODUzOWU3ZGY5N2I1ZmVkYjI2NTkyZmIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEphbiAyIDEyOjE4OjQ5IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBsb2FkcGNpIGNvbW1hbmQgdG8gZXNkJ3MgQ1BDSTQwNTIgYW5kIENQQ0k0MDVBQiBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgZXNkJ3MgbG9hZHBjaSBCU1AgY29tbWFuZCB0byBDUENJNDA1MiBhbmQKICAgIENQQ0k0MDVBQiBib2FyZC4gVGhpcyByZXF1aXJlcyBDT05GSUdfQ01EX0JTUCBhbmQgQ09ORklHX1BSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjAwZmU0NmZiM2RhYjdmMDc2MDRmOTAwOTkwNGYzMTU4NDQxNTExNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDIgMTI6MTg6MTIgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogRGlzYWJsZSBwY2kgbm9kZSBpbiBkZXZpY2UgdHJlZSBvbiBDUENJNDA1IHBjaSBhZGFwdGVycwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY2YTFmNDkwZDIyNGM2MDBhMDkxMzdlNThkMTAyNmQxNTBiOGU2NzkKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEphbiAyIDEyOjE3OjM2IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IENsZWFudXAgQ1BDSTQwNSBib2FyZCBjb2RlCgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgQ1BDSTQwNSBib2FyZCBzdXBwb3J0OgogICAgLSB3cmFwIGxvbmcgbGluZXMKICAgIC0gdW5pZmljYXRpb24gb2Ygc3BhY2VzIGluIGZ1bmN0aW9uIGNhbGxzCiAgICAtIHJlbW92ZSBkZWFkIGNvZGUKCiAgICBVc2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgb24gcGVyaXBoZXJhbHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmNlZWJiNDVhMGI5N2U5MmY5ODg5ODYxZjhjM2I5Y2I4ODVlNzA2ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDIgMTI6MTY6MzUgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIGF1dG8gUlM0ODUgbW9kZSBvbiBQTFU0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCB0dXJucyBvbiB0aGUgYXV0byBSUzQ4NSBtb2RlIGluIHRoZSAybmQgZXh0ZXJuYWwKICAgIHVhcnQgb24gUExVNDA1IGJvYXJkcy4gVGhpcyBpcyBhIHNwZWNpYWwgbW9kZSBvZiB0aGUgdXNlZAogICAgRXhhciBYUjE2QzI4NTAgdWFydC4gQmVjYXVzZSB0aGVzZSBib2FyZHMgb25seSBoYXZlIGEgNDg1IHBoeXNpY2FsCiAgICBsYXllciBjb25uZWN0ZWQgaXQncyBhIGdvb2QgaWRlYSB0byB0dXJuIGl0IG9uIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1mQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNWY2NWRmYTlhYThlMDY4ZTYyYWJhNDczM2RjNGZkOTdiMWQ5YmY2CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxMyAxNjoyOToyOCAyMDA5IC0wNTAwCgogICAgU29tZSBjaGFuZ2VzIG9mIFRMQiBlbnRyeSBzZXR0aW5nIGZvciBNUEM4NTcyRFMKCiAgICAtIE1vdmUgdGhlIFRMQiBlbnRyeSBvZiBQSVhJU19CQVNFIGZyb20gVExCMCB0byBUTEIxWzhdLCBiZWNhdXNlIGluIENBTVAgbW9kZSwKICAgIGFsbCB0aGUgVExCMCBlbnRyaWVzIHdpbGwgYmUgaW52YWxpZGF0ZWQgYWZ0ZXIgY3B1MSBicmluZ3MgdXAga2VybmVsLCB0aHVzIGNwdTAKICAgIGNhbiBub3QgYWNjZXNzIFBJWElTX0JBU0UgYW55bW9yZSAoYW55IGFjY2VzcyB3aWxsIGNhdXNlIERhdGFUTEJFcnJvciBleGNlcHRpb24pCgogICAgLSBTZXQgQ09ORklHX1NZU19ERFJfVExCX1NUQVJUIHRvIDkgZm9yIE1QQzg1NzJEUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1MDI2NDMxN2ViOTU5NGIyYjVlZTJmYjY1MjA2MjAwYTFjNjAwN2EKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDEzIDE2OjI5OjIyIDIwMDkgLTA1MDAKCiAgICBDaGFuZ2UgRERSIHRsYiBzdGFydCBlbnRyeSB0byBDT05GSUcgcGFyYW0gZm9yIDg1eHgKCiAgICBTbyB0aGF0IHdlIGNhbiBsb2NhdGUgdGhlIEREUiB0bGIgc3RhcnQgZW50cnkgdG8gdGhlIHZhbHVlIG90aGVyIHRoYW4gOC4gQnkKICAgIGRlZmF1bHQsIGl0IGlzIHN0aWxsIDguCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZDNhMTBmNzNlY2U3ZmZiNzM2ODkwYzEwZTAyMzIyMjYxMmE0YWEwCkF1dGhvcjogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDkgMTY6MDI6MzUgMjAwOSArMDgwMAoKICAgIENoYW5nZSBQQ0lFMSYyIGRlY2lpZGUgbG9naWMgb24gTVBDODU0NERTIGJvYXJkIG1vcmUgcmVhZGFibGUKCiAgICBUaGUgSU8gcG9ydCBzZWxlY3Rpb24gZm9yIE1QQzg1NDREUyBib2FyZDoKICAgICBQb3J0CQkJY2ZnX2lvX3BvcnRzCiAgICAgUENJRTEJCTB4MiwgMHgzLCAweDQsIDB4NSwgMHg2LCAweDcKICAgICBQQ0lFMgkJMHg0LCAweDUsIDB4NiwgMHg3CiAgICAgUENJRTMJCTB4NiwgMHg3CiAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBQQ0lFMTIgYW5kIFBDSUUyIGxvZ2ljIG1vcmUgcmVhZGFibGUuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDI4ZTExNjgxMWQyOGEwMzE2NjBmMWFkOWUyMGFjMTI5M2IzYzVjNwpBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiA5IDE2OjAxOjUyIDIwMDkgKzA4MDAKCiAgICBQQ0lFMiBhbmQgUENJRTMgYXJlIGRlY2lkZWQgYnkgY29ycmVzcG9uaW5nIGJpdCBpbiBkZXZkaXNyIGluc3RlYWQgb2YgUENJRTEgYml0CgogICAgUENJRTIgYW5kIFBDSUUzIHNob3VsZCBiZSBkZWNpZGVkIGJ5IGNvcnJlc3BvbmluZyBiaXQgaW4gZGV2ZGlzciBpbnN0ZWFkIG9mCiAgICBQQ0lFMSBiaXQuCiAgICBPbiBNUEM4NTcyRFMgYm9hcmQsIFBDSUUgcmVmZXJzIHRvIFBDSUUxLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlhZmMyZWYwMzA3YWVjZjUyNDgyZGY2N2MzMWI3NWQ1ZjllNjZiNDcKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gOSAxNjowMDo1NSAyMDA5ICswODAwCgogICAgRml4IElPIHBvcnQgc2VsZWN0aW9uIGlzc3VlIG9uIE1QQzg1NDREUyBhbmQgTVBDODU3MkRTIGJvYXJkcwoKICAgIFRoZSBJTyBwb3J0IHNlbGVjdGlvbiBpcyBub3QgY29ycmVjdCBvbiBNUEM4NTcyRFMgYW5kIE1QQzg1NDREUyBib2FyZC4KICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUuCiAgICAgRm9yIE1QQzg1NzIKICAgICBQb3J0CQkJY2ZnX2lvX3BvcnRzCiAgICAgUENJRTEJCTB4MiwgMHgzLCAweDcsIDB4YiwgMHhjLCAweGYKICAgICBQQ0lFMgkJMHgzLCAweDcKICAgICBQQ0lFMwkJMHg3CgogICAgRm9yIE1QQzg1NDQKICAgIFBvcnQJCQljZmdfaW9fcG9ydHMKICAgIFBDSUUxCQkweDIsIDB4MywgMHg0LCAweDUsIDB4NiwgMHg3CiAgICBQQ0lFMgkJMHg0LCAweDUsIDB4NiwgMHg3CiAgICBQQ0lFMwkJMHg2LCAweDcKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZTNmZmZlM2JhZjNiZWZkZTI4N2ZlYzFmY2JmZTU1MDUyZmI4OTQ2CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRGVjIDMgMjI6MzY6NDQgMjAwOCAtMDYwMAoKICAgIG1wYzg2MTBocGNkOiBGaXggUENJIG1hcHBpbmcgY29uY2VwdHMKCiAgICBSZW5hbWUgX0JBU0UgdG8gX0JVUywgYXMgaXQncyBhY3R1YWxseSBhIFBDSSBidXMgYWRkcmVzcywKICAgIHNlcGFyYXRlIHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3NlcyBpbnRvIF9WSVJUIGFuZCBfUEhZUywKICAgIGFuZCB1c2UgZWFjaCBhcHBvcHJpYXRlbHkuCVRoaXMgbWFrZXMgdGhlIGNvZGUgZWFzaWVyIHRvIHJlYWQKICAgIGFuZCB1bmRlcnN0YW5kLCBhbmQgZmFjaWxpdGF0ZXMgbWFwcGluZyBjaGFuZ2VzIGdvaW5nIGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDc5ZTQzNmNhZDNiNGE3ZGI4ODQwOGMzZjA1MTc1MDI4ZjMwZDcwMGQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBEZWMgMyAyMjozNjoyNiAyMDA4IC0wNjAwCgogICAgc2JjODY0MWQ6IEZpeCBQQ0kgbWFwcGluZyBjb25jZXB0cwoKICAgIFJlbmFtZSBfQkFTRSB0byBfQlVTLCBhcyBpdCdzIGFjdHVhbGx5IGEgUENJIGJ1cyBhZGRyZXNzLAogICAgc2VwYXJhdGUgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzc2VzIGludG8gX1ZJUlQgYW5kIF9QSFlTLAogICAgYW5kIHVzZSBlYWNoIGFwcG9wcmlhdGVseS4JVGhpcyBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gcmVhZAogICAgYW5kIHVuZGVyc3RhbmQsIGFuZCBmYWNpbGl0YXRlcyBtYXBwaW5nIGNoYW5nZXMgZ29pbmcgZm9yd2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTlmM2FjYmNkMDdkYTcyYjU0NDZjZTU1NzUzMWEzZWQ4YjhiZWZmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMTIgMTQ6NTA6MzUgMjAwOSArMDEwMAoKICAgIE1QQzg2eHg6IGZpeCBidWlsZCB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDMyYTFjOTM0ZWY0ZGMwMDMyODFmNTczMDJiNmU2OTMwNjJjMTg2OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEphbiA1IDE2OjA5OjQ0IDIwMDkgLTA1MDAKCiAgICBiZjUzNy1zdGFtcC9uYW5kOiBmaXggYm9hcmRfbmFuZF9pbml0IHByb3RvdHlwZQoKICAgIFRoZSBib2FyZF9uYW5kX2luaXQoKSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGludCwgbm90IHZvaWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY4N2Y5NTJlNDExOTU5NGFiOTEzYmUxMWM5MGY3ZjAxOGMyYTdhNzkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBEZWMgMTEgMDc6MDQ6NDggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBkcm9wIENPTkZJR19TUEkgaGFuZGxpbmcgaW4gYm9hcmQgaW5pdAoKICAgIFRoZSBlZXByb20gU1BJIGluaXQgZnVuY3Rpb25zIGFyZSBkdXBsaWNhdGVkIGFzIHRoZSBjb21tb24gY29kZSBhbHJlYWR5CiAgICBleGVjdXRlcyB0aGVzZSBmb3IgdXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGU3ZTY4NGIxMGQ3M2EzMDM5MDIyMDg1OTRjN2MzZTdlMGQ3NTMyODIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTc6NTE6NTcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggb3V0LW9mLXRyZWUgYnVpbGRpbmcgd2l0aCBsZHNjcmlwdHMKCiAgICBNYW55IG9mIHRoZSBCbGFja2ZpbiBib2FyZCBsaW5rZXIgc2NyaXB0cyBhcmUgcHJlcHJvY2Vzc2VkLCBzbyBtYWtlIHN1cmUgd2UKICAgIG91dHB1dCB0aGUgbGlua2VyIHNjcmlwdCBpbnRvIHRoZSBidWlsZCB0cmVlIHJhdGhlciB0aGFuIHRoZSBzb3VyY2UgdHJlZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjllZWNjMzQyZjc2N2I1MGUxNDc2ZmJjMWFhZDdkODhkZDRjZTVlYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIE9jdCAyNCAxNzo0ODo1NCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGZpeCBsaW5rZXIgc2NyaXB0cyB0byB3b3JrIHdpdGggLS1nYy1zZWN0aW9ucwoKICAgIE1ha2Ugc3VyZSBhbGwgLnRleHQgc2VjdGlvbnMgZ2V0IHB1bGxlZCBpbiBhbmQgdGhlIGVudHJ5IHBvaW50IGlzIHByb3Blcmx5CiAgICByZWZlcmVuY2VkIHNvIHRoZXkgZG9uJ3QgZ2V0IGRpc2NhcmRlZCB3aGVuIGxpbmtpbmcgd2l0aCAtLWdjLXNlY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1MDlmYzU1M2JjNjA4N2E2ZjcwNWIzYmY1MmYzOTUwZDdkMWVhYTU4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIwOjQ1OjQ0IDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogc2V0IHByb3BlciBMRFJGTEFHUyBmb3IgcGFyYWxsZWwgYm9vdGluZyBMRFJzCgogICAgSW4gb3JkZXIgdG8gYm9vdCBhbiBMRFIgb3V0IG9mIHBhcmFsbGVsIGZsYXNoLCB0aGUgbGRyIHV0aWxpdHkgbmVlZHMgYSBmZXcKICAgIGZsYWdzIHRvIHRlbGwgaXQgdG8gZ2VuZXJhdGUgdGhlIHJpZ2h0IGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgM2RkOTM5NWEwZDdjZTY5YTMzNWQwZTc0M2MwNGI5Y2FlZGQ2ODFkMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBKYW4gNiAyMTo0MTo1OSAyMDA5ICswMTAwCgogICAgYXQ5MXJtOTIwMDogbW92ZSBkZWZpbmUgZnJvbSBsb3dsZXZlbF9pbml0IHRvIGhlYWRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGE0ODY4NmZhYzIwMzAyODc3NjVmMTk3MGVhMDQ2YmQ1NzM0YjczMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKYW4gMyAxNzoyMjoyNiAyMDA5ICswMTAwCgogICAgbTUwMXNrOiBtb3ZlIHRvIHRoZSBjb21tb24gbWVtb3J5IHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkNDgxYzgwZDc4Zjk1NDEzM2MwMzVkYWU2YzdkMjJkZTM2MjU3OTVkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzIDE3OjIyOjI1IDIwMDkgKzAxMDAKCiAgICBhdDkxcm05MjAwOiByZW5hbWUgbG93bGV2ZWwgaW5pdCB2YWx1ZSB0byBDT05GSUdfU1lTXwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGUxNzBiMTY2MjUyOTFhYTEwZDBkOWFiYzNmMzRlOGE1OTQ1ZDE1NwpBdXRob3I6IE5pY29sYXMgRmVycmUgPG5pY29sYXMuZmVycmVAYXRtZWwuY29tPgpEYXRlOglUdWUgSmFuIDYgMjE6MTM6MTQgMjAwOSArMDEwMAoKICAgIGF0OTE6IGFkZCBhdDkxc2FtOXhlZWsgYm9hcmQgc3VwcG9ydAoKICAgIEF0OTFzYW05eGUgaXMgYmFzaWNhbGx5IGFuIGF0OTFzYW05MjYwIHdpdGggZW1iZWRkZWQgZmxhc2guIFdlIGNhbiBtYW5hZ2UKICAgIGl0IGFzIGFub3RoZXIgZW50cnkgZm9yIGF0OTFzYW05MjYwIGluIHRoZSBNYWtlZmlsZS4KCiAgICBDaGVjayBkb2N1bWVudGF0aW9uIGF0IDoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9wcm9kdWN0X2NhcmQuYXNwP3BhcnRfaWQ9NDI2MwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgRmVycmUgPG5pY29sYXMuZmVycmVAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5ZmZkNTNkYjg3MGE3ZGExMzRmOWExYWU3Njg5NGE2YjMxMjM3YmU1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIEphbiA2IDIxOjE1OjU3IDIwMDkgKzAxMDAKCiAgICBmaXggYm1wX2xvZ28uaCBtYWtlIGRlcGVuZGVuY2llcyB0byBhbGxvdyBwYXJhbGxlbCBidWlsZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTEyZDlhOGZiNDhkMjQxNzZlZmZmY2NjMDcyYjQ0NWU2MGEzYWZlNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKYW4gMyAxNzoyMjoyNCAyMDA5ICswMTAwCgogICAgYXQ5MTogRml4IEF0bWVsJ3MgYXQ5MXNhbTkgYm9hcmRzIG91dCBvZiB0cmVlIGJ1aWxkCgogICAgaW50cm9kdWNlZCBpbiBjb21taXQgODlhN2E4N2YwODRjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwNjY4MjM2YmFmYWExYzExYzUyMTY1MmEyZmFjZWJjNzRiZWVjYmYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAzMCAyMjo1NjoxMSAyMDA4ICswMTAwCgogICAgUkVBRE1FOiB1cGRhdGUgbWFpbGluZyBsaXN0IG5hbWUgYW5kIGhpdHMgdG8gcGF0Y2ggc3VibWlzc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ5MDExZjliNzU1NjFhMGJkOTI1NDkzNGMyYmIyYmM3OTlkNGY2NDUKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgRGVjIDIzIDE2OjMyOjAxIDIwMDggLTA2MDAKCiAgICA4NXh4OiBFbmFibGUgaW5ib3VuZCBQQ0kgY29uZmlnIGN5Y2xlcyBmb3IgWC1FUyBib2FyZHMgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgMWYwM2NiZmFlMjIxYjI0YmExMzQxYTBhM2Y2MmZmMDFjNWM4NzRkZgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBEZWMgMjMgMTY6MzI6MDAgMjAwOCAtMDYwMAoKICAgIFhQZWRpdGU1MjAwIGJvYXJkIHN1cHBvcnQgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZmVhOTFlZGVlOGFlMDI5NWUzYzMwYjFmZjU0NGRmNTFmNGQ2NjhlMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBEZWMgMiAyMTo1ODowNCAyMDA4ICswMTAwCgogICAgdXNiX2tiZDogZml4IHVzYl9rYmRfZGVyZWdpc3RlciB3aGVuIERFVklDRV9ERVJFR0lTVEVSIG5vdCBlbmFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGFkYTU5MWQyYTBlY2ZmNWY5YmM1ZWQxZWJmMzEwZjQzOWMzZDBhMjgKQXV0aG9yOiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAzIDE1OjE2OjM3IDIwMDggLTA4MDAKCiAgICBtcGM4WzU2XXh4OiBQdXQgbG9jYWxidXMgY2xvY2sgaW4gc3lzaW5mbyBhbmQgZ2QKCiAgICBDdXJyZW50bHkgTVBDODV4eCBhbmQgTVBDODZ4eCBib2FyZHMganVzdCBjYWxjdWxhdGUgdGhlIGxvY2FsYnVzIGZyZXF1ZW5jeQogICAgYW5kIHByaW50IGl0IG91dCwgYnV0IGRvbid0IHNhdmUgaXQuCgogICAgVGhpcyBjaGFuZ2VzIHdoZXJlIGl0cyBjYWxjdWxhdGVkIGFuZCBzdG9yZWQgdG8gYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlCiAgICBDUFUsIENDQiwgVEIsIGFuZCBERFIgZnJlcXVlbmNpZXMgYW5kIHRoZSBNUEM4M3h4IGxvY2FsYnVzIGNsb2NrLgoKICAgIFRoZSBsb2NhbGJ1cyBmcmVxdWVuY3kgaXMgYWRkZWQgdG8gc3lzaW5mbyBhbmQgY2FsY3VsYXRlZCB3aGVuIHN5c2luZm8gaXMKICAgIHNldCB1cCwgaW4gY3B1L21wYzhbNTZdeHgvc3BlZWQuYywgdGhlIHNhbWUgYXMgdGhlIG90aGVyIGZyZXF1ZW5jaWVzIGFyZS4KCiAgICBnZXRfY2xvY2tzKCkgY29waWVzIHRoZSBmcmVxdWVuY3kgaW50byB0aGUgZ2xvYmFsIGRhdGEsIGFzIHRoZSBvdGhlcgogICAgZnJlcXVlbmNpZXMgYXJlLCBpbnRvIGEgbmV3IGZpZWxkIHRoYXQgaXMgb25seSBlbmFibGVkIGZvciBNUEM4NXh4IGFuZAogICAgTVBDODZ4eC4KCiAgICBjaGVja2NwdSgpIGluIGNwdS9tcGM4WzU2XXh4L2NwdS5jIHdpbGwgcHJpbnQgb3V0IHRoZSBsb2NhbCBidXMgZnJlcXVlbmN5CiAgICBmcm9tIHN5c2luZm8sIGxpa2UgdGhlIG90aGVyIGZyZXF1ZW5jaWVzLCBpbnN0ZWFkIG9mIGNhbGN1bGF0aW5nIGl0IG9uIHRoZQogICAgc3BvdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTg2M2Q2YWNhMTE0MDVlMWUwZDhhYmEyMDQ1ZDc4YWVlYzRkNGVlNwpBdXRob3I6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDMgMTU6MTY6MzYgMjAwOCAtMDgwMAoKICAgIG1wYzg2eHg6IERvdWJsZSBsb2NhbCBidXMgY2xvY2sgZGl2aWRlcgoKICAgIFRoZSBsb2NhbCBidXMgY2xvY2sgZGl2aWRlciBzaG91bGQgYmUgZG91YmxlZCBmb3IgYm90aCA4NjEwIGFuZCA4NjQxLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NDZjMzgxZTNlMTZmMTk4NTdiNzJlYTBkMDYyNDEyNjdiOGI5ZDU4CkF1dGhvcjogVHJlbnQgUGllcGhvIDx0cGllcGhvQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgMyAxNToxNjozNSAyMDA4IC0wODAwCgogICAgbXBjODU2ODogRG91YmxlIGxvY2FsIGJ1cyBjbG9jayBkaXZpZGVyCgogICAgVGhlIGNsb2NrIGRpdmlkZXIgZm9yIHRoZSBNUEM4NTY4IGxvY2FsIGJ1cyBzaG91bGQgYmUgZG91YmxlZCwgbGlrZSB0aGUKICAgIG90aGVyIG5ld2VyIE1QQzg1eHggY2hpcHMuCgogICAgU2luY2UgdGhlcmUgYXJlIG5vdyBtb3JlIGNoaXBzIHdpdGggYSAyeCBkaXZpZGVyIHRoYW4gYSAxeCwgYW5kIGFueSBuZXcKICAgIDg1eHggY2hpcHMgd2lsbCBwcm9iYWJseSBiZSAyeCwgaW52ZXJ0IHRoZSBzZW5zZSBvZiB0aGUgI2lmIHNvIHRoYXQgaXQKICAgIGxpc3RzIHRoZSAxeCBjaGlwcyBpbnN0ZWFkIG9mIHRoZSAyeCBvbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTFmMDdlYjU4ZmFkMTJkZTkyOTRiYTRlZTZjMDlhMGRkZWFlZTAzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyAxNiAxMjowOToyNyAyMDA4ICswODAwCgogICAgODV4eDogRml4IHRoZSBib290IHdpbmRvdyBpc3N1ZQoKICAgIElmIG9uZSBjdXN0b20gYm9hcmQgaXMgdXNpbmcgdGhlIDhNQiBmbGFzaCwgaXQgaXMgc2V0CiAgICBhcyBGTEFTSF9CQVNFID0gMHhlZjAwMDAwMCwgVEVYVF9CQVNFID0gMHhlZjc4MDAwMC4KICAgIFRoZSBjdXJyZW50IHN0YXJ0LlMgY29kZSB3aWxsIGJlIGJyb2tlbiBhdCBzd2l0Y2hfYXMuCgogICAgSXQgaXMgYmVjYXVzZSB0aGUgVExCMVsxNV0gaXMgc2V0IGFzIDE2TUIgcGFnZSBzaXplLAogICAgRVBOID0gVEVYVF9CQVNFICYgMHhmZjAwMDAwMCwgUlBOID0gMHhmZjAwMDAwMC4KCiAgICBGb3IgdGhlIDhNQiBmbGFzaCBjYXNlLCB0aGUgRVBOID0gMHhlZnh4eHh4eCwKICAgIFJQTiA9IDB4ZmZ4eHh4eHguIEFzc3VtZSB0aGUgdmlydCBhZGRyZXNzIG9mIHN3aXRjaF9hcwogICAgaXMgMHhlZjdmZjE4YywgdGhlIHJlYWwgYWRkcmVzcyBvZiB0aGUgaW5zdHJ1Y3Rpb24gYXQKICAgIHN3aXRjaF9hcyBzaG91bGQgYmUgMHhmZjdmZjE4Yy4gdGhlIDB4ZmY3ZmYxOGMgaXMgb3V0CiAgICBvZiB0aGUgcmFuZ2Ugb2YgdGhlIGRlZmF1bHQgOE1CIGJvb3QgTEFXIHdpbmRvdwogICAgMHhmZjgwMDAwMCAtIDB4ZmZmZmZmZmYuCgogICAgU28gd2hlbiB3ZSBzd2l0Y2ggdG8gQVMxIGFkZHJlc3Mgc3BhY2UgYXQgc3dpdGNoX2FzLAogICAgdGhlIGNvcmUgY2FuJ3QgZmV0Y2ggdGhlIGluc3RydWN0aW9uIGF0IHN3aXRjaF9hcyBhbnkKICAgIG1vcmUuIEl0IHdpbGwgY2F1c2UgYnJva2VuIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNThkYTg4OTBkNWZiZDA3NDc0NjAzNzcyMmE0MjNkZTlhYzQwODYxNgpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDExIDE1OjQ3OjUwIDIwMDggLTA1MDAKCiAgICBzYmM4NTQ4OiB1c2UgcHJvcGVyIFBIWSBhZGRyZXNzCgogICAgVGhlIHZhbHVlcyBnaXZlbiBmb3IgdGhlIFBIWSBhZGRyZXNzIHdlcmUgd3JvbmcsIHNvIHRoZSBjb2RlCiAgICByZWFkIG5vIHZhbGlkIFBIWSBJRCwgYW5kIGZlbGwgdGhyb3VnaCB0byB0aGUgZ2VuZXJpYyBQSFkKICAgIHN1cHBvcnQsIHdoaWNoIHdvdWxkIHdvcmsgb24gMTAwME0gYnV0IHdvdWxkIG5vdCBhdXRvIG5lZ290aWF0ZQogICAgZG93biB0byAxMDBNIG9yIDEwTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCBhZDIyZjkyNzNjNmYyNGZiZmE5MTdlODY3NjgwZTk2ODhlMGM1OWM1CkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBEZWMgMTEgMTU6NDc6NTEgMjAwOCAtMDUwMAoKICAgIHNiYzg1NDg6IGVuYWJsZSBjb21tYW5kIGxpbmUgZWRpdGluZyBieSBkZWZhdWx0LgoKICAgIExldHMgbWFrZSB0aGluZ3MgYSBiaXQgbW9yZSB1c2VyIGZyaWVuZGx5LglJdCBpc24ndCAxOTg1IGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgYmQ5MzEwNWZhMTcxMTg0YTcxY2E4YjIyYmUwM2RjMjcwNWNmYmQzZgpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDExIDE1OjQ3OjQ5IDIwMDggLTA1MDAKCiAgICBzYmM4NTQ4OiBkb24ndCBlbmFibGUgdGhlIDNyZCBhbmQgNHRoIGVUU0VDCgogICAgVGhlc2UgaW50ZXJmYWNlcyBkb24ndCBoYXZlIHVzYWJsZSBjb25uZWN0b3JzIG9uIHRoZSBib2FyZCwgc28gZG9uJ3QKICAgIGJvdGhlciBlbnVtZXJhdGluZyBvciBjb25maWd1cmluZyB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDE4MWEzNjUwMTEzODgzNzI4OTI3OTI4YjNhYzgxYWQ2ZGFkZTRiMmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDMgMTA6MDg6MTkgMjAwOCAtMDUwMAoKICAgIFNldCBJVlBSIHRvIGtlbnJlbCBlbnRyeSBwb2ludCBpbiBzZWNvbmQgY29yZSBib290IHBhZ2UKCiAgICBBc3N1bWluZyB0aGUgT1NlcyBleGNlcHRpb24gdmVjdG9ycyBzdGFydCBmcm9tIHRoZSBiYXNlIG9mIGtlcm5lbCBhZGRyZXNzLCBhbmQKICAgIHRoZSBrZXJuZWwgcGh5c2ljYWwgc3RhcnRpbmcgYWRkcmVzcyBjYW4gYmUgcmVsb2NhdGVkIHRvIGFuIG5vbi16ZXJvIGFkZHJlc3MuCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIHNlY29uZCBjb3JlIHRvIGhhdmUgYSB2YWxpZCBJVlBSIGZvciBkZWJ1Z2dlciBiZWZvcmUKICAgIGtlcm5lbCBzZXR0aW5nIElWUFIgaW4gQ0FNUCBtb2RlLiBPdGhlcndpc2UsIElWUFIgaXMgMHgwIGFuZCBpdCBpcyBub3QgYSB2YWxpZAogICAgdmFsdWUgZm9yIHNlY29uZCBjb3JlIHdoaWNoIHJ1bnMga2VybmVsIGF0IGRpZmZlcmVudCBwaHlzaWNhbCBhZGRyZXNzIG90aGVyCiAgICB0aGFuIDB4MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1ZDIxMmEyNjNjNThjYzc0NjQ4MWJmMWZjODc4NTEwNTMzY2U3ZDYKQXV0aG9yOiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAzIDE1OjE2OjM0IDIwMDggLTA4MDAKCiAgICBtcGM4eHh4OiBMQ1JSW0NMS0RJVl0gaXMgc29tZXRpbWVzIGZpdmUgYml0cwoKICAgIE9uIG5ld2VyIENQVXMsIDg1MzYsIDg1NzIsIGFuZCA4NjEwLCB0aGUgQ0xLRElWIGZpZWxkIG9mIExDUlIgaXMgZml2ZSBiaXRzCiAgICBpbnN0ZWFkIG9mIGZvdXIuCgogICAgSW4gb3JkZXIgdG8gYXZvaWQgYW4gaWZkZWYsIExDUlJfQ0xLRElWIGlzIHNldCB0byAweDFmIG9uIGFsbCBzeXN0ZW1zLiAgSXQKICAgIHNob3VsZCBiZSBzYWZlIGFzIHRoZSBmaWZ0aCBiaXQgd2FzIGRlZmluZWQgYXMgcmVzZXJ2ZWQgYW5kIHNldCB0byAwLgoKICAgIENvZGUgdGhhdCB3YXMgdXNpbmcgYSBoYXJkIGNvZGVkIDB4MGYgaXMgY2hhbmdlZCB0byB1c2UgTENSUl9DTEtESVYuCgogICAgU2lnbmVkLW9mZi1ieTogVHJlbnQgUGllcGhvIDx0cGllcGhvQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU4ZWM0ODY2ZWQ5MTZjN2U0MjJmNTEwN2JiMjdiMDgyMjA4NDcyOGUKQXV0aG9yOiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAzIDE1OjE2OjM4IDIwMDggLTA4MDAKCiAgICBtcGM4WzU2XXh4OiBQdXQgbG9jYWxidXMgY2xvY2sgaW4gZGV2aWNlIHRyZWUKCiAgICBFeHBvcnQgdGhlIGxvY2FsYnVzIGZyZXF1ZW5jeSBpbiB0aGUgZGV2aWNlIHRyZWUsIHRoZSBzYW1lIHdheSB0aGUgQ1BVLCBUQiwKICAgIENDQiwgYW5kIHZhcmlvdXMgb3RoZXIgZnJlcXVlbmNpZXMgYXJlIGV4cG9ydGVkIGluIHRoZWlyIHJlc3BlY3RpdmUgZGV2aWNlCiAgICB0cmVlIG5vZGVzLgoKICAgIFNvbWUgbG9jYWxidXMgZGV2aWNlcyBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYmUgcHJvZ3JhbWVkIGNvcnJlY3RseSwgc28KICAgIGl0IG1ha2VzIHNlbnNlIHRvIGV4cG9ydCBpdCBhbG9uZyB3aXRoIHRoZSBvdGhlciBmcmVxdWVuY2llcy4KCiAgICBVbmZvcnR1bmF0ZWx5LCB3aGVuIHNvbWVvbmUgd3JvdGUgdGhlIGxvY2FsYnVzIGR0cyBiaW5kaW5ncywgdGhleSBkaWRuJ3QKICAgIGJvdGhlciB0byBkZWZpbmUgd2hhdCB0aGUgImNvbXBhdGlibGUiIHByb3BlcnR5IHNob3VsZCBiZS4JU28gaXQgc2VlbXMgbm8KICAgIG9uZSB3YXMgcXVpdGUgc3VyZSB3aGF0IHRvIHB1dCBpbiB0aGVpciBkdHMgZmlsZXMuCgogICAgQmFzZWQgb24gY3VycmVudCBleGlzdGluZyBkdHMgZmlsZXMgaW4gdGhlIGtlcm5lbCBzb3VyY2UsIEkndmUgdXNlZAogICAgImZzbCxwcTMtbG9jYWxidXMiIGFuZCAiZnNsLGVsYmMiIGZvciBNUEM4NXh4LCB3aGljaCBhcmUgdXNlZCBieSBhbG1vc3QgYWxsCiAgICBvZiB0aGUgODV4eCBkZXZpY2VzLCBhbmQgYXJlIGxvb2tlZCBmb3IgYnkgdGhlIExpbnV4IGNvZGUuCVRoZSBlTEJDIGlzCiAgICBhcHBhcmVudGx5IG5vdCBlbnRpcmVseSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggdGhlIHBxMyBMQkMgYW5kIHNvIGVMQkMKICAgIGVxdWlwcGVkIHBsYXRmb3JtcyBsaWtlIDg1NzIgd29uJ3QgdXNlIHBxMy1sb2NhbGJ1cy4KCiAgICBGb3IgTVBDODZ4eCwgSSd2ZSB1c2VkICJmc2wsZWxiYyIgd2hpY2ggaXMgdXNlZCBieSBzb21lIG9mIHRoZSA4Nnh4IHN5c3RlbXMKICAgIGFuZCBpcyBhbHNvIGxvb2tlZCBmb3IgYnkgdGhlIExpbnV4IGNvZGUuICBPbiBNUEM4NjQxLCBJJ3ZlIGFsc28gdXNlZAogICAgImZzbCxtcGM4NjQxLWxvY2FsYnVzIiBhcyBpdCBpcyBhbHNvIGNvbW1vbmx5IHVzZWQgaW4gZHRzIGZpbGVzLCBzb21lIG9mCiAgICB3aGljaCBkb24ndCB1c2UgImZzbCxlbGJjIiBvciBhbnkgb3RoZXIgYWNjZXB0YWJsZSBuYW1lIHRvIG1hdGNoIG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZDk0YWZmNjk5ZWVkMzhiMjg2ODE0ZmNiYjMzNWYzZWI4NTE2YTBlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAxNiAxNDo1OToyMiAyMDA4IC0wNjAwCgogICAgTkFORCBGU0wgZWxiYzogVXNlIHZpcnRfdG9fcGh5cyB0byBkZXRlcm1pbmUgd2hpY2ggYmFuayBpcyBpbiB1c2UKCiAgICBUaGUgY3VycmVudCBjb2RlIHRoYXQgZGV0ZXJtaW5lcyB3aGljaCBiYW5rL2NoaXBzZWxlY3QgaXMgdXNlZCBmb3IgYQogICAgZ2l2ZW4gTkFORCBpbnN0YW5jZSBvbmx5IHdvcmtlZCBmb3IgMzItYml0IGFkZHJlc3NlcyBhbmQgYXNzdW1lZAogICAgYSAxOjEgbWFwcGluZy4gIFRoaXMgYnJlYWtzIGluIDM2LWJpdCBwaHlzaWNhbCBjb25maWdzLgoKICAgIFRoZSBwcm9wZXIgd2F5IHRvIGhhbmRsZSB0aGlzIGlzIHRvIHVzZSB0aGUgdmlydF90b19waHlzKCkgYW5kCiAgICBCUl9QSFlTX0FERFIoKSByb3V0aW51ZXMgdG8gbWF0Y2ggdGhlIDM0LWJpdCBsYmMgYnVzIGFkZHJlc3MKICAgIHdpdGggdGhlIHRoZSB2aXJ0dWFsIGFkZHJlc3MgdGhlIE5BTkQgY29kZSB1c2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzdjODExNWIxZjE4NzE4MTE2MzNlYWU3N2E1YTcwMGZhYzFmMGU1MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMTYgMTQ6NTk6MjEgMjAwOCAtMDYwMAoKICAgIHBwYzogVXNlIGFkZHJtYXAgaW4gdmlydF90b19waHlzIGFuZCBtYXBfcGh5c21lbS4KCiAgICBJZiB3ZSBoYXZlIGFkZHIgbWFwIHN1cHBvcnQgZW5hYmxlZCB1c2UgdGhlIG1hcHBpbmcgZnVuY3Rpb25zIHRvCiAgICBpbXBsZW1lbnQgdmlydF90b19waHlzKCkgYW5kIG1hcF9waHlzbWVtKCkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlY2Y1Yjk4YzdhNmEyZTIyNTZkZmRkZDQ4ZmFiMjY2NzhkY2Q2YjkwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAxNiAxNDo1OToyMCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIHN1cHBvcnQgdG8gcG9wdWxhdGUgYWRkciBtYXAgYmFzZWQgb24gVExCIHNldHRpbmdzCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3OGJiYzVjZTE1MWM1YTQ4NGJiNTFiZjE4NjZiNGE5OTNmZmMxNmVjCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDEzOjQ3OjEzIDIwMDggLTA2MDAKCiAgICBYUGVkaXRlNTIwMCBib2FyZCBzdXBwb3J0CgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciBFeHRyZW1lIEVuZ2luZWVyaW5nIFNvbHV0aW9ucyBYUGVkaXRlNTIwMCAtCiAgICBhIE1QQzg1NDgtYmFzZWQgUE1DIHNpbmdsZSBib2FyZCBjb21wdXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDQ4N2RjYjRmYjg5YmUwOTkyYmMwNmVjMTM0MTA5MDAxN2JkOWNmMmYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglXZWQgT2N0IDI5IDEyOjM5OjI3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBFbmFibGUgaW5ib3VuZCBQQ0kgY29uZmlnIGN5Y2xlcyBmb3IgWC1FUyBib2FyZHMKCiAgICBVcGRhdGUgWC1FUyBGcmVlc2NhbGUgYm9hcmRzIHRvIGFsbG93IGluYm91bmQgUENJIGNvbmZpZ3VyYXRpb24KICAgIGN5Y2xlcyB3aGVuIGNvbmZpZ3VyZWQgYXMgYWdlbnQvZW5kcG9pbnQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBjY2YwZmRkMDJiOTczMjNmOGNhYWUxOGQwNmNjOWRhZWFjMmYxOTJmCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIERlYyAxNyAxNjozNjoyMyAyMDA4IC0wNjAwCgogICAgWFBlZGl0ZTUzNzAgYm9hcmQgc3VwcG9ydAoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgRXh0cmVtZSBFbmdpbmVlcmluZyBTb2x1dGlvbnMgWFBlZGl0ZTUzNzAgLQogICAgYSBNUEM4NTcyLWJhc2VkIDNVIFZQWCBzaW5nbGUgYm9hcmQgY29tcHV0ZXIgd2l0aCBhIFBNQy9YTUMKICAgIHNpdGUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBlOTI3MzlkMzRlMmQ2YjZhY2E5M2IyNTk4MjQ4MjEwNzEwODk3Y2U4CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIERlYyAxNyAxNjozNjoyMSAyMDA4IC0wNjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFBDQTk1M3ggSTJDIGdwaW8gZGV2aWNlcwoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgTlhQJ3MgNCBhbmQgOCBiaXQgSTJDIGdwaW8gZXhwYW5kZXJzCiAgICAoZWcgcGNhOTUzNywgcGNhOTU1NywgZXRjKS4gVGhlIENPTkZJR19QQ0E5NTNYIGRlZmluZQogICAgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgZGV2aWNlcyB3aGlsZSB0aGUgQ09ORklHX0NNRF9QQ0E5NTNYCiAgICBkZWZpbmUgZW5hYmxlcyB0aGUgcGNhOTUzeCBjb21tYW5kLiBUaGUgQ09ORklHX0NNRF9QQ0E5NTNYX0lORk8KICAgIGRlZmluZSBlbmFibGVzIGFuICdpbmZvJyBzdWItY29tbWFuZCB3aGljaCBwcm92aWRlcyBzdW1tYXJ5CiAgICBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIHBjYTk1M3ggZGV2aWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgN2E4OTc5NTkxMTcxNjc2NDE3YWIzNjg1MmQ4ODExYThjNDZhY2NkOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBPY3QgMjkgMTI6Mzk6MjYgMjAwOCAtMDUwMAoKICAgIHBjaS9mc2xfcGNpX2luaXQ6IEVuYWJsZSBpbmJvdW5kIFBDSSBjb25maWcgY3ljbGVzCgogICAgQWRkIGZzbF9wY2lfY29uZmlnX3VubG9jaygpIGZ1bmN0aW9uIHRvIGVuYWJsZSBhCiAgICBQQ0kvUENJZSBpbnRlcmZhY2UgY29uZmlndXJlZCBpbiBhZ2VudC9lbmRwb2ludCBtb2RlIHRvCiAgICByZXNwb25kIHRvIGluYm91bmQgUENJIGNvbmZpZ3VyYXRpb24gY3ljbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgOTJjNzhhM2JiY2IyY2U1MDhiNGJmMWM0YTFlMDk0MDQwNmEwMjRiYgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIERlYyAxNyAxNjo0MzoxOCAyMDA4ICswMTAwCgogICAgYXZyMzI6IFJlbW92ZSBzZWNvbmQgZGVmaW5pdGlvbiBvZiB2aXJ0X3RvX3BoeXMoKQoKICAgIFRoZSBzZWNvbmQgZGVmaW5pdGlvbiBpbnRyb2R1Y2VkIGJ5IDY1ZTQzYTEwNjMgY29uZmxpY3RzIHdpdGggdGhlCiAgICBleGlzdGluZyBvbmUuCgogICAgQWxzbywgY29udmVydCB0aGUgZXhpc3RpbmcgZGVmaW5pdGlvbiB0byB1c2UgcGh5c19hZGRyX3QuIFRoZSB2b2xhdGlsZQogICAgcXVhbGlmaWVyIGlzIHN0aWxsIG5lZWRlZCBkdWUgdG8gYnJhaW4gZGFtYWdlIGVsc2V3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjYxNmYyYjU0NWY3Mzc1NzY2OWIzNzM4NmYwYjM3YmI2MWZjNjc5NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgOCAyMjoyNzoxOCAyMDA4ICswMjAwCgogICAgTUlQUzogcWVtdV9taXBzOiB1cGRhdGUgZG9jIHRvIGdlbmVyYXRlIGFuZCB0byB1c2UgcWVtdSBmbGFzaCwgaWRlIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxNmNkZjgxNjc3OWY1YjYwMmE5YjNiNGQyZWE0ZGVhMDUwOTVjMzViCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIERlYyAxNiAyMjoxMDozMSAyMDA4ICswMTAwCgogICAgTUlQUzogcWVtdV9taXBzOiB1cGRhdGUgZG9jIHRvIHVzZSBhbGwgZGlzayBhbmQgYm9vdCBsaW51eCBrZXJuZWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxMzA5NWIyZjA3ZGFjYjFmODYzNzcyMjY2YzE3ODlkNDdhNTIzYThhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIERlYyAxNiAyMjoxMDozMCAyMDA4ICswMTAwCgogICAgTUlQUzogcWVtdV9taXBzOiBtb3ZlIGVudiBzdG9yYWdlIGp1c3QgYWZ0ZXIgdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgYWNlZDc4ZDg1MmQwYjAwOWU4YWFhMTQ0NWFmOGNiNDA4NjFlZTU0OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMjM6NDg6MjcgMjAwOCArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMS1yYzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDllMmE3OWI0YzU4NWFkMzExMzhmYjkwYjY4ZmQwMjM0ZDY0YThkYTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDE2IDIzOjEzOjQ2IDIwMDggKzAxMDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvYXQ5MWNhcDlhZGsuaDogZml4IHR5cG8uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NWNhMDRmMjM3NzM2MTU5MzE1MWQyZDRkYTUxZjhiYTQ4MzJkMjMzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxNiAyMjozMjoyNSAyMDA4ICswMTAwCgogICAgYm9hcmQvdHJhYi9tZW1vcnkuYzogRml4IGNvbXBpbGUgcHJvYmxlbXMuCgogICAgQXBwbHkgY2hhbmdlcyBmcm9tIGNvbW1pdCA0NGI0ZGJlZCB0byBib2FyZC90cmFiL21lbW9yeS5jLCB0b28uCgogICAgQWN0dWFsbHkgd2UnZCBuZWVkIGEgbWFqb3IgY2xlYW51cCBoZXJlIC0gYXMgaXQgdHVybnMgb3V0LAogICAgYm9hcmQvdHJhYi9tZW1vcnkuYyBpcyBtb3JlIG9yIGxlc3MgYSB2ZXJiYXRpbSBjb3B5IG9mCiAgICBwb3N0L2RyaXZlcnMvbWVtb3J5LmMgLi4uIGJ1dCB0aGVuLCB0cmFiIGlzIEVPTCBhbnl3YXkscgogICAgc28gdGhpcyBpcyBub3Qgd29ydGggdGhlIGVmZm9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZmNDllYTg5NzdiNTY5MTZlZGQ1YjE3NjZkOTkzOTAxMGUzMGIxODEKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyAxNiAxNDoyNDoxNiAyMDA4IC0wNjAwCgogICAgTkFORDogTWFyayB0aGUgQkJUIGFzIHNjYW5uZWQgcHJpb3IgdG8gY2FsbGluZyBzY2FuX2JidC4KCiAgICBPdGhlcndpc2UsIHJlY3Vyc2lvbiBjYW4gb2NjdXIgaWYgc2Nhbl9iYnQgZG9lcyBub3QgZmluZCBhIGJhZCBibG9jawogICAgdGFibGUsIGFuZCB0cmllcyB0byB3cml0ZSBvbmUsIGFuZCB0aGUgYXR0ZW1wdCB0byBlcmFzZSB0aGUgQkJUIGFyZWEKICAgIGNhdXNlcyBhIGJhZCBibG9jayBjaGVjay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ODRlZWRhYjY2ZDA4MjhmMmQ1NzFhMjRiMTA1MjZjNGU2NWY1NDdiCkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBEZWMgMTEgMDU6NTE6NTcgMjAwOCArMDMwMAoKICAgIGpmZnMyOiBpbmNsdWRlIDxsaW51eC9tdGQvY29tcGF0Lmg+IGluc3RlYWQgb2YgZGVmaW5pbmcgb3duIG1pbl90CgogICAgSW5jbHVkZSA8bGludXgvbXRkL2NvbXBhdC5oPiBoZWFkZXIgZm9yIG1pbl90IGRlZmluaXRpb24gaW5zdGVhZCBvZgogICAgcHJvdmlkaW5nIG91ciBvd24gb25lLiBSZW1vdmVzIHdhcm5pbmdzIGluIGNhc2Ugb2YgT25lTkFORCBzdXBwb3J0CiAgICBlbmFibGVkLgoKICAgIEFsdGhvdWdoIEkgdGhpbmtzIGl0J3MgYSBiaXQgc2lsbHkgdG8gaW5jbHVkZSA8bGludXgvbXRkL2NvbXBhdC5oPgogICAganVzdCBmb3IgbWluX3QuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjFmZmVjZWMzN2I1N2E1OWMxMzkwNDIyNjdmYWFjNDU4ZTUzMjRlOQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIERlYyAzIDIzOjA0OjM3IDIwMDggLTA2MDAKCiAgICBwb3dlcnBjOiBmaXggaW8uaCBidWlsZCB3YXJuaW5nIHdpdGggQ09ORklHX1BIWVNfNjRCSVQKCiAgICBDYXN0aW5nIGEgcG9pbnRlciB0byBhIHBoeXNfYWRkcl90IHdoZW4gaXQncyBhbiB1bnNpZ25lZCBsb25nIGxvbmcKICAgIG9uIGEgMzItYml0IHN5c3RlbSB3aXRob3V0IGZpcnN0IGNhc3RpbmcgdG8gYSBub24tcG9pbnRlciB0eXBlCiAgICBnZW5lcmF0ZXMgYSBjb21waWxlciB3YXJuaW5nLiBGaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNmNkYWRjYjNmMWI2ZWFjNGExYzQyNTZhY2FhMTQzODQxM2Y5NTM1MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMTY6MjI6NTAgMjAwOCArMDEwMAoKICAgIHRyYWI6IG1ha2UgdHJhYl9ma3Qgc3RhbmRhbG9uZSBjb2RlIGluZGVwZW5kZW50IG9mIGxpYmdjYwoKICAgIFVzZSBvdXIgb3duIGxvY2FsIGZ1bmN0aW9ucyBpbiBsaWJfYXJtLyBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWExYmNjYTNkMmUyMmFmNGRlYTlmMDIxMzJmOWI1NmEzMDM3OGRlZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMTQ6NDQ6MDYgMjAwOCArMDEwMAoKICAgIHBvc3QvTWFrZWZpbGU6IGZpeCBkZXBlbmRlbmN5IHByb2JsZW0gd2l0aCBwYXJhbGxlbCBidWlsZHMKCiAgICBQYXJhbGxlbCBidWlsZHMgKHVzaW5nICJtYWtlIC1qTiIpIHdvdWxkIG9jY2FzaW9uYWxseSBmYWlsIHdpdGggZXJyb3IKICAgIG1lc3NhZ2VzIGxpa2UKCXBwY180eHhGUC1vYmpkdW1wOiBzdHJpbmcubzogRmlsZSBmb3JtYXQgbm90IHJlY29nbml6ZWQKICAgIG9yCglwb3N0L2xpYnBvc3QuYShjcHUubyk6IEluIGZ1bmN0aW9uIGBjcHVfcG9zdF90ZXN0JzoKCS9ob21lL3dkL2dpdC91LWJvb3Qvd29yay9wb3N0L2xpYl9wcGMvY3B1LmM6MTMwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjcHVfcG9zdF90ZXN0X3N0cmluZycKICAgIG9yIHNpbWlsYXIuIFdlIG5vdyBtYWtlIHN1cmUgdG8gcnVuIHRoZSAncG9zdGRlcHMiIHN0ZXAgYmVmb3JlCiAgICBhdHRlbXB0aW5nIHRvIGJ1aWxkIHRoZSBzcGVjaWZpYyBQT1NUIGxpYnJhcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRhMGY3NTM4YzVjMDgwNWZkOWE3OTE5NjdiYmFiYWNjNDFkZWFkZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDE2IDE0OjQxOjAyIDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogZml4IGRlcGVuZGVuY3kgcHJvYmxlbSB3aXRoIHBhcmFsbGVsIGJ1aWxkcwoKICAgIFBhcmFsbGVsIGJ1aWxkcyAodXNpbmcgIm1ha2UgLWpOIikgd291bGQgb2NjYXNpb25hbGx5IGZhaWwgd2l0aCBlcnJvcgogICAgbWVzc2FnZXMgbGlrZQoJaW5jbHVkZS9hdXRvY29uZi5tazoyMTI6ICoqKiBtaXNzaW5nIHNlcGFyYXRvci4gIFN0b3AuCiAgICBMaW5lIG51bWJlcnMgYW5kIGFmZmVjdGVkIGJvYXJkcyB3ZXJlIGNoYW5naW5nLiBPYnZpb3VzbHkgc29tZQogICAgTWFrZWZpbGVzIGluY2x1ZGVkIGF1dG9jb25mLm1rIHdoaWxlIGl0IHdhcyBzdGlsbCBiZWluZyB3cml0dGVuIHRvLgogICAgQXMgYSBmaXgsIHdlIG5vdyB3cml0ZSB0byBhIHRlbXBvcmFyeSBmaWxlIGZpcnN0IGFuZCB0aGVuIHJlbmFtZSBpdCwKICAgIHNvIHRoYXQgaXQgaXMgcmVhbGx5IHJlYWR5IHRvIHVzZSBhcyBzb29uIGFzIGl0IGFwcGVhcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NTVhZTdlODdmNjdjNDRlNmFlYTY4ODY1YzgzYWNhZGQzZmNkMzZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxNiAwMTowMjoxNyAyMDA4ICswMTAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NGJjNzJkOTBjNTA1ZmVjM2VmNGI2OTM5OTU0MDdhMGJkNDA2NGU1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgRGVjIDExIDE4OjM5OjA4IDIwMDggLTA1MDAKCiAgICBzcGkvc3RtaWNybzogZml4IGRlYnVnKCkgZGlzcGxheSBvZiBjbWQKCiAgICBUaGUgc3RtaWNyb193YWl0X3JlYWR5KCkgZnVuYyB0cmllcyB0byBzaG93IHRoZSBhY3R1YWwgb3Bjb2RlIHRoYXQgd2FzIHNlbnQKICAgIHRvIHRoZSBkZXZpY2UsIGJ1dCBpbnN0ZWFkIGl0IGRpc3BsYXlzIHRoZSBhcnJheSBwb2ludGVyLiAgRml4IGl0IHRvIHB1bGwKICAgIG91dCB0aGUgb3Bjb2RlIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBhcnJheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNWIzMzc1YWM4YzM2YzI5Yzg3YWJiMTMyZmVkZTA1MDllYjIxZTVjOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IERlYyAxMSAwNjoyMzozNyAyMDA4IC0wNTAwCgogICAgZW52X3NmOiBzdXBwb3J0IGVtYmVkZGVkIGVudmlyb25tZW50cwoKICAgIElmIGJvdGggQ09ORklHX0VOVl9TRUNUX1NJWkUgYW5kIENPTkZJR19FTlZfU0laRSBhcmUgZGVmaW5lZCwgYW5kIHRoZSBzZWN0CiAgICBzaXplIGlzIGxhcmdlciB0aGFuIHRoZSBlbnYgc2l6ZSwgdGhlbiBpdCBtZWFucyB0aGUgZW52IGlzIGVtYmVkZGVkIGluIGEKICAgIGJsb2NrLiAgU28gd2UgaGF2ZSB0byBzYXZlL3Jlc3RvcmUgdGhlIHBhcnQgb2YgdGhlIHNlY3RvciB3aGljaCBpcyBub3QgdGhlCiAgICBlbnZpcm9ubWVudC4gIFByZXZpb3VzbHksIHNhdmluZyB0aGUgZW52aXJvbm1lbnQgaW4gU1BJIGZsYXNoIGluIHRoaXMKICAgIHNldHVwIHdvdWxkIHByb2JhYmx5IGJyaWNrIHRoZSBib2FyZCBhcyB0aGUgcmVzdCBvZiB0aGUgc2VjdG9yIHRlbmRzIHRvCiAgICBjb250YWluIGFjdHVhbCBVLUJvb3QgZGF0YS9jb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZWNmNWYwNzdjOGU3NzQ1NGY1MzJlYWFjM2UzYWZiN2NmYzQ4YzYyZApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgMyAxMToyODozMCAyMDA4IC0wNjAwCgogICAgaTJjOiBtZXJnZSBhbGwgaTJjX3JlZ19yZWFkKCkgYW5kIGkyY19yZWdfd3JpdGUoKSBpbnRvIGlubGluZSBmdW5jdGlvbnMKCiAgICBBbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBmdW5jdGlvbnMgaTJjX3JlZ19yZWFkKCkgYW5kCiAgICBpMmNfcmVnX3dyaXRlKCkgYXJlIGlkZW50aWNhbC4gV2UgY2FuIHNhdmUgc3BhY2UgYW5kIHNpbXBsaWZ5IHRoZQogICAgY29kZSBieSBjb252ZXJ0aW5nIHRoZXNlIGZ1bmN0aW9ucyBpbnRvIGlubGluZXMgYW5kIHB1dHRpbmcgdGhlbSBpbgogICAgaTJjLmguCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLUJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGUzOWNkODFjNDQ3NDBkNzM1NWQyNzdlZDNkMzg1MzZjYmUxZTAwM2QKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDUgMTU6MzY6MTQgMjAwOCArMDgwMAoKICAgIGxpYl9wcGM6IHJld29yayB0aGUgZmx1c2hfY2FjaGUKCiAgICAtIEl0IGlzIHBvc3NpYmxlIHRvIG1pc3MgZmx1c2gvaW52YWxpZGF0ZSB0aGUgbGFzdAogICAgICBjYWNoZSBsaW5lLCB3ZSBmaXggaXQgYXQgaGVyZS4KICAgIC0gYWRkIHRoZSB2b2xhdGlsZSBhbmQgbWVtb3J5IGNsb2JiZXIuCgogICAgVGhleSBhcmUgcG9pbnRlZCBieSBTY290dCBXb29kLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjMyNDBiYTg4Y2Q2YTIyMDA1N2EwZjI4ZTViZjk3ZjViMTdhYzg0YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBEZWMgMTMgMTc6MjA6MjggMjAwOCAtMDYwMAoKICAgIEludHJvZHVjZSBhZGRyX21hcCBsaWJyYXJ5CgogICAgQWRkIGEgbGlicmFyeSB0aGF0IGhlbHBzIGluIHRyYW5zbGF0aW5nIGJldHdlZW4gdmlydHVhbCBhbmQgcGh5c2ljYWwKICAgIGFkZHJlc3Nlcy4JVGhpcyBsaWJyYXJ5IGNhbiBiZSB1c2VmdWwgYXMgYSBzaW1wbGUgbWVhbnMgdG8gaW1wbGVtZW50CiAgICBtYXBfcGh5c21lbSgpIGFuZCB2aXJ0X3RvX3BoeXMoKSBmb3IgcGxhdGZvcm1zIHRoYXQgbmVlZCBmdW5jdGlvbmFsaXR5CiAgICBiZXlvbmQgdGhlIHNpbXBsZSAxOjEgbWFwcGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDY1ZTQzYTEwNjMxNTM3ZGNiOTJjMzAyZDM2MzAxYTEyMzA4MjE2YzMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglTYXQgRGVjIDEzIDE3OjIwOjI3IDIwMDggLTA2MDAKCiAgICBJbnRyb2R1Y2UgdmlydF90b19waHlzKCkKCiAgICB2aXJ0X3RvX3BoeXMoKSByZXR1cm5zIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGdpdmVuIGEgdmlydHVhbC4gSW4gbW9zdAogICAgY2FzZXMgdGhpcyB3aWxsIGJlIGp1c3QgdGhlIGlucHV0IHZhbHVlIGFzIHRoZSB2YXN0IG1ham9yaXR5IG9mCiAgICBzeXN0ZW1zIHJ1biBpbiBhIDE6MSBtb2RlLgoKICAgIEhvd2V2ZXIgaW4gc3lzdGVtcyB0aGF0IGFyZSBub3QgcnVubmluZyB0aGlzIHdheSBpdCBzaG91bGQgcmVwb3J0IHRoZQogICAgcGh5c2ljYWwgYWRkcmVzcyBvciB+MCBpZiBubyBtYXBwaW5nIGV4aXN0cyBmb3IgdGhlIGdpdmVuIHZpcnR1YWwKICAgIGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NTg0NTMwMWFmM2RlODY3NWMxZjdiYmM4MTVjNmRlMzU0NTI2MDVhCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglTdW4gRGVjIDcgMjI6MTI6NTAgMjAwOCArMDEwMAoKICAgIFBPU1QgTWFrZTogZml4IHRoZSBzdWItZGlyIGRlcGVuZGVuY2llcyBtaXNzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAyMjUyNTc3OWNiNTFmMWJiZTRlOTZmZWE3Yjc3OGRlMTkzNWE1YTY5CkF1dGhvcjogTWFydGluIE1pY2hsbWF5ciA8dGJtQGN5cml1cy5jb20+CkRhdGU6CVdlZCBBdWcgNiAxNDo0NDowNSAyMDA4ICswMzAwCgogICAgRml4IGEgdHlwbyBpbiBmd19lbnYuY29uZmlnCgogICAgUmVwb3J0ZWQtYnk6IE1hcnRpbiBNaWNobG1heXIgPHRibUBjeXJpdXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiYTQ5MGI3NzYxYzYyYjU0OWMyMjJhOTcyM2U1MzJkYzgwMWEzODk5CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDE2OjIyOjQ1IDIwMDggLTA2MDAKCiAgICBSZW1vdmUgdW51c2VkIENPTkZJR19BRERSX1NUUkVBTUlORyBkZWZpbmVzCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBkMTZkYTkzNDMwNTIwZDNlNDZjMWFiNTJlZWRhY2YzNmFiN2EyMzExCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxMTo1NDo0NyAyMDA4IC0wNjAwCgogICAgY21kX21lbTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgM2FlZDNhYTJjMTI4Y2U5ZmIzOWNhM2Y0ZTkzODVhNzQ5OWU5M2RiZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMTA6Mjk6MzkgMjAwOCArMDEwMAoKICAgIEZpeCBuZXcgZm91bmQgQ0ZHXwoKICAgIEFsc28gZml4IHNvbWUgbWlub3IgdHlwb3MuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGUwYzg2MmVmZTcyNzllOTYwOWRiNzRkNzU4Y2QxYjg0YzZjNzIwOQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBTZXAgMTkgMTI6MDc6MzQgMjAwOCArMDIwMAoKICAgIFJlbW92ZSBjb21waWxlciB3YXJuaW5nOiB0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nCgogICAgVGhpcyB3YXJuaW5nIGlzIGlzc3VlZCBieSBtb2Rlcm4gQVJNLUVBQkkgR0NDIG9uIG5vbi10aHVtYiB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIFBhbmZpbG92IDxwdnJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGNkNjczNDUxMGE5ZmYwZjQxYzRhNzM1NjdkNDA4MGVhMDAzM2QyYzEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gTm92IDI0IDEzOjMzOjUxIDIwMDggKzAxMDAKCiAgICBGaXggRklUIGFuZCBGRFQgc3VwcG9ydCB0byBoYXZlIENPTkZJR19PRl9MSUJGRFQgYW5kIENPTkZJR19GSVQgaW5kZXBlbmRlbnQKCiAgICBGRFQgc3VwcG9ydCBpcyB1c2VkIGZvciBib3RoIEZJVCBzdHlsZSBpbWFnZXMgYW5kIGZvciBhcmNoaXRlY3R1cmVzCiAgICB0aGF0IGNhbiBwYXNzIGEgZmR0IGJsb2IgdG8gYW4gT1MgKHBwYywgbTY4aywgc3BhcmMpLgoKICAgIEZvciBvdGhlciBhcmNoaXRlY3R1cmVzIGFuZCBib2FyZHMgd2hpY2ggZG8gbm90IHBhc3MgYSBmZHQgYmxvYiB0byBhbgogICAgT1MgYnV0IHdhbnQgdG8gdXNlIHRoZSBuZXcgdUltYWdlIGZvcm1hdCwgd2UganVzdCBuZWVkIEZJVCBzdXBwb3J0LgoKICAgIE5vdyB3ZSBjYW4gaGF2ZSB0aGUgNCBmb2xsb3dpbmcgY29uZmlndXJhdGlvbnMgOgoKICAgIDEpIEZJVCBvbmx5CQkgICAgQ09ORklHX0ZJVAogICAgMikgZmR0IGJsb2Igb25seQkgICAgQ09ORklHX09GX0xJQkZEVAogICAgMykgYm90aAkJICAgIENPTkZJR19PRl9MSUJGRFQgJiBDT05GSUdfRklUCiAgICA0KSBub25lCQkgICAgbm9uZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTllZjRmN2E2ZWYzYjcyNWFhOWZlNGI0ZjVmYjY3NmE4NDE2MDE3MgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgRGVjIDEwIDE1OjEzOjMyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IERpc2FibGUgRUVQUk9NIHdyaXRlIGFjY2VzcyBvbiBQTUM0NDAgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBFRVBST00gd3J0aWUgYWNjZXNzIGJ5IGRlZmF1bHQgb24gUE1DNDQwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDViNjdhMTQzOWE3M2JhNmMzNDAwN2Q5ZmY2MGEyYzZhYTkwMjY1ZGYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIERlYyAxMCAxNToxMjo1NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggRXRoZXJuZXQgUEhZIExFRCBjb25maWd1cmF0aW9uIG9uIFBNQzQ0MCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MWZhMDcxNGZlNTEzNGJjODcxOGMzOGQ1MjYxZDI2N2U4ODU4MmJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDE4IDE2OjM2OjEyIDIwMDggKzAxMDAKCiAgICBNSVBTOiBGbHVzaCBkYXRhIGNhY2hlIHVwb24gcmVsb2NhdGlvbgoKICAgIFRoaXMgcGF0Y2ggbm93IGFkZHMgYSBmbHVzaCB0byB0aGUgZGF0YSBjYWNoZSB1cG9uIHJlbG9jYXRpb24uIFRoZQogICAgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcyBtaXNzaW5nIHRoaXMuIE9ubHkgYSBjb21tZW50IHN0YXRlcyB0aGF0IGl0CiAgICBzaG91bGQgYmUgZG9uZS4gU28gbGV0J3MgcmVhbGx5IGRvIGl0IG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDQ0MTc0MzQzNjg4ZGJhMzI1NzFhMzQ1NTBkYmEwODk3MWM2NWZlZjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTggMTY6MzY6MjIgMjAwOCArMDEwMAoKICAgIE1JUFM6IEFkZCBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUIG9wdGlvbiB0byBzdGFydC5TLiBUaGlzCiAgICBlbmFibGVzIHN1cHBvcnQgZm9yIGJvYXJkcyB3aGVyZSB0aGUgbG93bGV2ZWwgaW5pdGlhbGl6YXRpb24gaXMKICAgIGFscmVhZHkgZG9uZSB3aGVuIFUtQm9vdCBydW5zIChlLmcuIHZpYSBPbkNoaXAgUk9NKS4KCiAgICBUaGlzIHdpbGwgYmUgdXNlZCBpbiB0aGUgdXBjb21pbmcgVkNUSCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGIwOGVjYWE2ZWI4MTc2OTA0YjNiYWUxMDNhODVlZThmNzM1ZGM0MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAxMiAxMzoxODowMiAyMDA4ICswMTAwCgogICAgTUlQUzogQWRkIGJvYXJkX2Vhcmx5X2luaXRfZigpIHRvIGluaXRfc2VxdWVuY2UKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGJvYXJkX2Vhcmx5X2luaXRfZigpIGNhbGwgdG8gdGhlIE1JUFMgaW5pdAogICAgc2VxdWVuY2UuIEEgd2VhayBkdW1teSBpbXBsZW1lbnRhdGlvbiBpcyBhbHNvIGFkZGVkIHdoaWNoIGNhbiBiZQogICAgb3ZlcnJpZGRlbiBieSBhIGJvYXJkIHNwZWNpZmljIHZlcnNpb24uCgogICAgVGhpcyB3aWxsIGJlIHVzZWQgYnkgdGhlIHVwY29taW5nIFZDVEggYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDlkMjNmYzU4NGM0YjdiOGJiOWVjYmVlNDg5MjBiMWIwNGIwOGZhMWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMTIgMTM6MTg6MTkgMjAwOCArMDEwMAoKICAgIE1JUFM6IEFkZCBvbmVuYW5kX2luaXQoKSB0byBib2FyZC5jIGFuZCBtb3ZlIG5hbmRfaW5pdCgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgY2FsbCB0byBvbmVuYW5kX2luaXQoKSBmb3IgT25lTkFORCBzdXBwb3J0IGFuZCBtb3ZlcwogICAgdGhlIG5hbmRfaW5pdCgpIGNhbGwgdG8gYW4gZWFybGllciBwbGFjZSwgc28gdGhhdCB0aGUgZW52aXJvbm1lbnQgY2FuCiAgICBiZSB1c2VkIGZyb20gTkFORCBhbmQgT25lTkFORC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGQ4YmJjNTFjN2JhOWI3MzdhMjA5ODQzMzNkMTlmZTI4YTM1MjY0MzEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBEZWMgOSAxMTozMjo0NiAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBzaDIvc2gyYSB0aW1lcgoKICAgIFJlbmVzYXMgU0gyL1NIMkEgdGltZXIgYnJva2VuLgogICAgVGhpcyBwYXRjaCBmaXggdGltZXIgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGEzMTlmMTQ5NjIxMDExN2I3MzE5OGUzZDg4OWZmZmZhZjY4MjVkMDAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgRGVjIDUgMDc6Mjc6MzcgMjAwOCArMDEwMAoKICAgIHNoOiByMmRwbHVzIGZpeCByZWdpc3RlciBhY2Nlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDRkNGE5NjA1NWY2OTE3MzM1YTg5ZGJkZjJlNTU1NmZhNWFjMzI5ZjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgRGVjIDIgMDc6NDA6MDMgMjAwOCArMDEwMAoKICAgIHNoOiByMmRwbHVzL2xvd2xldmVsX2luaXQ6IGNvZGluZyBzdHlsZSBmaXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM1NGI5YTQyZDhmNWFiNWIyYTAzOWIzYTJlNmZkZThiNDI3NzQ1ZTUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBOb3YgMjUgMTE6MDU6MTkgMjAwOCArMDkwMAoKICAgIHNoOiBDaGFuZ2VkIHZhbHVlIG9mIENBQ0hFX09DX05VTV9FTlRSSUVTIGFuZCBDQUNIRV9PQ19XQVlfU0hJRlQKCiAgICBTSDQgaXMgZGlmZmVyZW50IGEgdmFsdWUgb2YgQ0FDSEVfT0NfTlVNX0VOVFJJRVMgYW5kCiAgICBDQUNIRV9PQ19XQVlfU0hJRlQgZXZlcnkgQ1BVLgogICAgVGhpcyBwYXRjaCBjb3JyZWN0cyB0aGVzZSB2YWx1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGU5ZDVmMzU0OTc4ODViM2M2NWQ0OTRkMDlhNTI1ZDQ0M2RjY2NkM2IKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBOb3YgMjAgMTY6NDQ6NDIgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgc2ggdGltZXIgZnVuY3Rpb24KCiAgICBDaGFuZ2UgdG8gd3JpdGUvcmVhZFggZnVuY3Rpb24gYW5kIGZpeCB0aW1lciBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBiODE3ODZjZmY0NzZjNDFlMzMyZWFlYjY3OTE1OGY2NTI3Y2Q2N2Q0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgTm92IDQgMTE6NTg6NTggMjAwOCArMDkwMAoKICAgIHNoOiBNaWdvLVI6IFVwZGF0ZSBCU0MgdmFsdWUKCiAgICBBIHZhbHVlIG9mIEJTQyBDUzQgd2FzIHdyb25nLCBGaXhlZCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNTc4Mzc1OGZkMjYwYTAyZjQ0NTY2YWQ4ZjI5Zjg5OTU2NWNkMDQwMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIE5vdiAxNyAxNjo1MjowOSAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBtczc3MjJzZSBib2FyZCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTVlMjY5N2M5ZjdmYjJiYTY3MmExYTcwZjA3Y2Q2ZDlkNGU5MmI1MQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIE5vdiAxNyAxNjo1MzowOSAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBTdXBlckggc2VyaWFsIGRyaXZlcgoKICAgIFRoZSBhZGRyZXNzIG9mIFNDRlNSIHJlZ2lzdGVyIGlzIHdyb25nIGF0IFNINzcyMC9TSDc3MjEuCiAgICBUaGlzIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA5YTFkMzU1N2RjZDQ3MzY1YzEyZWVhYjU4NGI4MjJlNTdkOTk0MzUyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAxMSAyMjoyMDoxNSAyMDA4ICswMTAwCgogICAgc2g6IGZpeCByc2s3MjAzIGFuZCBNaWdvUiBvdXQgb2YgdHJlZSBidWlsZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTk1MWY4NDdmMGE4NTE4NTM4NzFiNjEzYWQ3Y2YyMWE1MjQyMjI2YwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgRGVjIDEwIDE0OjQxOjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBURVhUX0JBU0UgZm9yIENQQ0k0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBidWlsZGluZyBVLUJvb3QgZm9yIENQQ0k0MDUgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhjOTJhZjdiMmZiZDYwYWU4NzM3OTQ3N2Y5M2M3ZWM5NDQxYjc0NTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgOSAyMDowODowMSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgc29tZSBmZWF0dXJlcyBmcm9tIEFMUFIgdG8gZml0IGludG8gMjU2ayBhZ2FpbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYjA4OWU0Zjg4OWEyOTAyNDQ5ZDU1ZTA4MWM4ODZhZTYwN2NhZTg5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRGVjIDEwIDEwOjMyOjU5IDIwMDggKzAxMDAKCiAgICBVQkk6IFNldCB1YmlfZGV2LnR5cGUgYmFjayB0byBERVZfVFlQRV9OT05FIHVwb24gZmFpbGluZyBpbml0aWFsaXphdGlvbgoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBzZXQgdGhlIHR5cGUgYmFjayB0byBOT05FIHVwb24gZmFpbGluZyBVQkkgcGFydGl0aW9uCiAgICBpbml0aWFsaXphdGlvbi4gT3RoZXJ3aXNlIGZ1cnRoZXIgY2FsbHMgdG8gdGhlIFVCSSBzdWJzeXN0ZW0gd291bGQgdHJ5CiAgICB0byByZWFsbHkgYWNjZXNzIHRoZSBub24tZXhpc3RpbmcgVUJJIHBhcnRpdGlvbi4KCiAgICBUaGFua3MgdG8gTWljaGFlbCBMYXduaWNrIGZvciBwb2ludGluZyB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODE3MzI5MzUxNjM5YTg4OTVjZDliODdiMzNhZWZmMDQzZjNkNWE0NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIERlYyAxMCAxMDoyODozMyAyMDA4ICswMTAwCgogICAgVUJJOiBSZXR1cm4gLUVOT01FTSB1cG9uIGZhaWxpbmcgbWFsbG9jCgogICAgUmV0dXJuIHdpdGggY29ycmVjdCBlcnJvciBjb2RlICgtRU5PTUVNKSBmcm9tIHViaV9hdHRhY2hfbXRkX2RldigpIHVwb24KICAgIGZhaWxpbmcgbWFsbG9jKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIxNDUxODhiZWEyZGY4ZjJiNDdhODdlYzMwNzFiNTUwMjdlOGQwYWUKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUdWUgRGVjIDkgMjM6MzQ6MTUgMjAwOCAtMDgwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIGluIGJ1aWxkaW5nIE1CWDg2MFQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4ZmFiNDllYTkxMWZlOTI1MzkyZmE1YWZjYzliYzczNzNhM2QwY2VlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTm92IDI1IDExOjQyOjIwIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBSZW1vdmUgWFVQVjJQIGJvYXJkCgogICAgLS0tCgogICAgTWljcm9ibGF6ZSBwbGF0Zm9ybXMgdXNlIGdlbmVyaWMgc2V0dGluZ3MgYW5kIHRvIGhhdmUKICAgIG1hbnkgcGxhdGZvcm1zIGlzIGNvbmZ1c2luZyB0aGF0J3Mgd2h5IEkgZGVjaWRlZCB0byByZW1vdmUgdGhpcwogICAgcGxhdGZvcm0gZnJvbSBVLUJPT1QuIG1sNDAxIHRyZWUgaXMgc3VmZmljaWVudCBmb3IgY292ZXJpbmcKICAgIGFsbCBNaWNyb2JsYXplIHBsYXRmb3Jtcy4KCiAgICBUaGlzIGNoYW5nZSB3aWxsIGdvIHRocm91Z2ggbWljcm9ibGF6ZSBjdXN0b2RpYW4gdHJlZS4KCmNvbW1pdCA5OWJhNmYzNTM1ODI3MjBkZWZmZjZlNmU2NzYxZGM0NTVhMjA3ZDMxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTm92IDI0IDE4OjI1OjQxIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBSZW1vdmUgQ09ORklHX0xJQkZEVCBkdWUgdG8gZXJyb3IgaW4gY29tbW9uIGZpbGVzCgpjb21taXQgZTdkNTkxZTgyM2E5OTE1MTM4MzNhZjcwMzA0Njg0MDllMjVhM2IxMwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE5vdiAyNCAxMTo0MzowMCAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogRml4IG1sNDAxIHVhcnQxNjU1MCBzZXR0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGM4NWZmMDU1M2E4Y2ZiY2NhNTFjMTViOTQ3ZTFlZDU1ZDM4MTBhMzkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBOb3YgMjQgMTE6Mzg6MjIgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IFNldCB1cCByZWxvY2F0aW9uIGlzIGRvbmUKCmNvbW1pdCBiY2I2ZGQ5MTg3ZDRiMjNjNzQ4NzA0NzY3YmQxMmQyMGM4MjllOTk2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDkgMjM6MjA6MzEgMjAwOCAtMDUwMAoKICAgIHRvb2xzL25ldGNvbnNvbGU6IG5ldyBzY3JpcHQgZm9yIHdvcmtpbmcgd2l0aCBuZXRjb25zb2xlIG92ZXIgVURQCgogICAgV2hpbGUgdGhlIGRvYy9SRUFETUUuTmV0Q29uc29sZSBkb2VzIGhhdmUgYSBzbmlwcGV0IGZvciBwZW9wbGUgdG8KICAgIGNyZWF0ZSB0aGVpciBvd24gbmV0Y2F0IHNjcmlwdCwgaXQncyBhIGxvdCBlYXNpZXIgdG8gbWFrZSBhIHNpbXBsZQogICAgZGVkaWNhdGVkIHNjcmlwdCBhbmQgdGVsbCBwZW9wbGUgdG8gdXNlIGl0LgoKICAgIEFsc28gc3BydWNlIGl0IHVwIGEgYml0IHRvIG1ha2UgaXQgdXNlciBmcmllbmRseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGM1MTcwYTdkMDg4NjAxZDVmMzBkODUwOTMzODhkYWIxZjFlOGVjMApBdXRob3I6IFNvbmljIFpoYW5nIDxTb25pYy5aaGFuZ0BhbmFsb2cuY29tPgpEYXRlOglUdWUgRGVjIDkgMjM6MjA6MTggMjAwOCAtMDUwMAoKICAgIGZzL2ZhdDogaGFuZGxlIEZBVCBvbiBTQVRBCgogICAgVGhlIEZBVCBmaWxlIHN5c3RlbSBkcml2ZXIgc2hvdWxkIGFsc28gaGFuZGxlIEZBVCBvbiBTQVRBIGRldmljZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU29uaWMgWmhhbmcgPFNvbmljLlpoYW5nQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNGNkOGVkNDA2MTVhN2Q3NDFlZjJmMDllZTUzNzc5ZWM2OTA3YjhhNgpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVR1ZSBEZWMgOSAyMzoyNjozMSAyMDA4IC0wODAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IgaW4gYnVpbGRpbmcgTUJYODYwVC4KICAgIEJ1ZyB3YXMgaW50cm9kdWNlZCBpbiA5ZWI3OWJkODg1NmJjYWI4OTZlZDVlMWYxYmNhMTU5ODA3YTEyNGRkCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5N2EyNGE3OGVlNmYzNGI4OWI4MjFjYjcwZWRhMWNmMzRhYTExZDk3CkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglNb24gTm92IDI0IDA4OjE1OjAyIDIwMDggLTA1MDAKCiAgICBsaWJmZHQ6IEZpeCByZWRlZmluZWQgdWludHB0cl90IHdhcm5pbmcgZm9yIFVTRV9IT1NUQ0MKCiAgICBDb21waWxpbmcgVS1Cb290IGluIGFuIG9sZCBPUyBlbnZpcm9ubWVudCAoUmVkSGF0LTcuMyAgOi0pCWdpdmVzIHRoZQogICAgZm9sbG93aW5nIHdhcm5pbmdzIGZyb20gRkRUOgoKICAgIGluY2x1ZGUvbGliZmR0X2Vudi5oOjUwOiB3YXJuaW5nOiByZWRlZmluaXRpb24gb2YgJ3VpbnRwdHJfdCcKICAgIC91c3IvaW5jbHVkZS9zdGRpbnQuaDoxMjk6IHdhcm5pbmc6ICd1aW50cHRyX3QnIHByZXZpb3VzbHkgZGVjbGFyZWQgaGVyZQoKICAgIEZpeDogUHJvdGVjdCB0aGUgZGVmaW5pdGlvbiBvZiB1aW50cHRyX3Qgd2hlbiBjb21waWxpbmcgb24gdGhlIGhvc3QKICAgIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDFmYzJiMTY1YzUxZDZmNDBjOGQ1MDVmMWIzZWFlZmRiNjU5OWIxN2IKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTYXQgTm92IDIyIDA4OjQzOjI5IDIwMDggKzExMDAKCiAgICBNb3ZlZCBzYzUyMCBQQ0kgZGVmaW5pdGlvbnMgdG8gc3RhbmQtYWxvbmUgZmlsZQoKICAgIFNpZ25lZCBPZmYgQnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgMWY1MDcwYzBjMThmYTU2ODRiZmNlMDljOGFiZGYxMGMwNGVkNDhmYQpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVNhdCBOb3YgMjIgMDg6NDM6MjEgMjAwOCArMTEwMAoKICAgIEZpeGVkIHBhdGggdG8gc2M1MjAgU1NJIGluY2x1ZGUgZmlsZQoKICAgIFNpZ25lZCBPZmYgQnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgZDRmNzBkYTU0NGMzM2RiM2U0ZmNlNjQ3M2RlYTRlY2NhNDMyMjU0NQpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CUZyaSBOb3YgMjEgMDY6Mjg6MDUgMjAwOCArMTEwMAoKICAgIEZpeGVkIGJ1aWxkIGVycm9yIGR1ZSB0byAjZGVmaW5lIG9mIF9MSU5VWF9TVFJJTkdfSF8gaW4gODI1NTlfZWVwcm9tLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IGMwMzQwNzVhNzEzYjYwZTY1NGM2NGU4OGU4N2RhMjk0NDBmMzFiYjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMTIgMTM6MzA6MTAgMjAwOCArMDEwMAoKICAgIHNlcmlhbDogQWRkIHZjdGggVUFSVCBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIFVBUlQgZHJpdmVyIGZvciB0aGUgdXBjb21pbmcgVkNUSCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDJhODBmZmMzYjUzN2E5YzQ1YWNkMjQ0NGE0MmE3N2YxNDdjNjAyCkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBOb3YgMTMgMTk6NDk6MzYgMjAwOCArMDMwMAoKICAgIGpmZnMyOiBjYWNoZSBkYXRhX2NyYyByZXN1bHRzCgogICAgQXMgd2UgbW92ZWQgZGF0YV9jcmMoKSBpbnZvY2F0aW9uIGZyb20gamZmczJfMXBhc3NfYnVpbGRfbGlzdHMoKSB0bwogICAgamZmczJfMXBhc3NfcmVhZF9pbm9kZSgpIGRhdGFfY3JjIGlzIGdvaW5nIHRvIGJlIGNhbGN1bGF0ZWQgb24gZWFjaAogICAgaW5vZGUgYWNjZXNzLiBUaGlzIHBhdGNoIGFkZHMgY2FjaGluZyBvZiBkYXRhX2NyYygpIHJlc3VsdHMuIFRoZXJlCiAgICBpcyBubyBzaWduaWZpY2FudCBpbXByb3ZlbWVudCBpbiBzcGVlZCAoYmVjYXVzZSBvZiBmbGFzaCBhY2Nlc3MKICAgIGNhY2hpbmcgYWRkZWQgaW4gcHJldmlvdXMgcGF0Y2ggSSB0aGluaywgY3JjIGluIFJBTSBpcyByZWFsbHkgZmFzdCkKICAgIGJ1dCB0aGlzIHBhdGNoIGltcGFjdHMgbWVtb3J5IHVzYWdlIC0tIGV2ZXJ5IGJfbm9kZSBzdHJ1Y3R1cmUgdXNlcwogICAgMTIgYnl0ZXMgaW5zdGVhZCBvZiA4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBOZXltYW4gPGF2bkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKY29tbWl0IDliNzA3NjIyOWVjNmE5NThiZDgzNWFiNzA3NDVmNzY3NjI5N2NlODIKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE5vdiAxMyAxOTo0OTozNSAyMDA4ICswMzAwCgogICAgamZmczI6IHN1bW1hcnkgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIGZzIGluZm9ybWF0aW9uIGZyb20gc3VtbWFyeQogICAgbm9kZSBpbnN0ZWFkIG9mIHNjYW5uaW5nIGZ1bGwgZXJhc2VibG9jay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3MDc0MTAwNGRjMjg5NDZjZDgyYzdhZjY3ODljNGRkYjNmYzk0NTI2CkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBOb3YgMTMgMTk6NDk6MzQgMjAwOCArMDMwMAoKICAgIGpmZnMyOiBhZGQgYnVmZmVyIHRvIGNhY2hlIGZsYXNoIGFjY2Vzc2VzCgogICAgV2l0aCB0aGlzIHBhdGNoIEpGRlMyIGNvZGUgYWxsb2NhdGVzIG1lbW9yeSBidWZmZXIgb2YgbWF4X3RvdGxlbiBzaXplCiAgICAoc2l6ZSBvZiB0aGUgbGFyZ2VzdCBub2RlLCBjYWxjdWxhdGVkIGR1cmluZyBzY2FuIHRpbWUpIGFuZCB1c2VzIGl0IHRvCiAgICBzdG9yZSBlbnRpcmUgbm9kZS4gU3BlZWRzIHVwIGxvYWRpbmcuIElmIG1hbGxvYyBmYWlscyB3ZSB1c2Ugb2xkIHdheXMKICAgIHRvIGRvIHRoaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgTmV5bWFuIDxhdm5AZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA4YTM2ZDMxZjcyNDExMTQ0YWMwNDEyZWU3ZTE4ODBlODAxYWNkNzU0CkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBOb3YgMTMgMTk6NDk6MzMgMjAwOCArMDMwMAoKICAgIGpmZnMyOiByZXdyaXRlIGpmZnMyIHNjYW5uaW5nIGNvZGUgYmFzZWQgb24gTGludXggb25lCgogICAgUmV3cml0ZXMgamZmczJfMXBhc3NfYnVpbGRfbGlzdHMoKSBmdW5jdGlvbiBpbiBzdHlsZSBvZiBMaW51eCdzCiAgICBqZmZzMl9zY2FuX21lZGl1bSgpIGFuZCBqZmZzMl9zY2FuX2VyYXNlYmxvY2soKS4KICAgIFRoaXMgaW5jbHVkZXM6CiAgICAgLSBDYWNoaW5nIGZsYXNoIGFjY2VzZXMKICAgICAtIFNtYXJ0IGRlYWxpbmcgd2l0aCBmcmVlIHNwYWNlCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGV5IE5leW1hbiA8YXZuQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgZTBiNTUzMjU3OWVkYThiNDYyOWYxYjRmNmU0OWMzY2M2MGY1MjIzNwpBdXRob3I6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTm92IDEzIDE5OjQ5OjMyIDIwMDggKzAzMDAKCiAgICBqZmZzMjogYWRkIHNlY3Rvcl9zaXplIGZpZWxkIHRvIHBhcnRfaW5mbyBzdHJ1Y3R1cmUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc2VjdG9yX3NpemUgZmllbGQgdG8gcGFydF9pbmZvIHN0cnVjdHVyZSAodXNlZAogICAgYnkgbmV3IEpGRlMyIGNvZGUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKY29tbWl0IGY3Mzg0Njk1Njc3OGE3ZGZlZTgzNDAzZWY5NzQ3YWZmNzcxOTg4NDgKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE5vdiAxMyAxOTo0OTozMSAyMDA4ICswMzAwCgogICAgamZmczI6IGZpeCBzZWFyY2hpbmcgZm9yIGxhdGVzdCB2ZXJzaW9uIGluIGpmZnMyXzFwYXNzX2xpc3RfaW5vZGVzKCkKCiAgICBXZSBuZWVkIHRvIHVwZGF0ZSBpX3ZlcnNpb24gaW5zaWRlIGN5Y2xlIHRvIGZpbmQgcmVhbGx5IGxhdGVzdCB2ZXJzaW9uCiAgICBpbnNpZGUgamZmczJfMXBhc3NfbGlzdF9pbm9kZXMoKS4gV2l0aCB0aGF0IGZpeGVkIHdlIGNhbiB1c2UgaXNpemUgaW5zaWRlCiAgICBkdW1wX2lub2RlKCkgaW5zdGVhZCBvZiBjYWxsaW5nIGV4cGVuc2l2ZSBqZmZzMl8xcGFzc19yZWFkX2lub2RlKCkuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGV5IE5leW1hbiA8YXZuQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgMTExM2NiNzY0YjNkYTI1NmVmOGExZjk1MzlmNGVmYmUyMjFmZjNjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgOSAyMzoxMzo1MSAyMDA4ICswMTAwCgogICAgZXZiNjQyNjA6IGZpeCAiY2FzdCB0byBwb2ludGVyIGZyb20gaW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSIgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQyNzc2ODI3MzE1YzNkNDY5YjhjYjRjZWMxNGQ1ODg3Nzc5OGRhYTIKQXV0aG9yOiBTdGVmYW4gQWx0aG9lZmVyIDxzdGVmYW4uYWx0aG9lZmVyQHdlYi5kZT4KRGF0ZToJU3VuIERlYyA3IDE5OjM5OjExIDIwMDggKzAxMDAKCiAgICBVU0I6IGRlc2NyaXB0b3IgaGFuZGxpbmcKCiAgICBIaSwKCiAgICBJIGZvdW5kIGEgYnVnIHdoZW4gd29ya2luZyB3aXRoIHRoZSB1LWJvb3QgVVNCIHN1YnN5c3RlbSBvbiBJWFA0MjUgcHJvY2Vzc29yCiAgICAoYmlnIGVuZGlhbiBYc2NhbGUgYWthIEFSTXY1KS4KICAgIEkgcmVjb2duaXplZCB0aGF0IHRoZSBzZWNvbmQgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3Igb2YgdGhlIGF0dGFjaGVkIG1lbW9yeQogICAgc3RpY2sgd2FzIGNvcnJ1cHRlZC4KCiAgICBUaGUgcmVhc29uIGZvciB0aGlzIGFyZSB0aGUgcGFja2VkIHN0cnVjdHVyZXMgYmVsb3cgKGVpdGhlciB1LWJvb3QgYW5kCiAgICB1LWJvb3QtdXNiKToKCiAgICAtLS0tLS0tLS0tLS0tLQogICAgLyogRW5kcG9pbnQgZGVzY3JpcHRvciAqLwogICAgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yIHsKCXVuc2lnbmVkIGNoYXIgIGJMZW5ndGg7Cgl1bnNpZ25lZCBjaGFyICBiRGVzY3JpcHRvclR5cGU7Cgl1bnNpZ25lZCBjaGFyICBiRW5kcG9pbnRBZGRyZXNzOwoJdW5zaWduZWQgY2hhciAgYm1BdHRyaWJ1dGVzOwoJdW5zaWduZWQgc2hvcnQgd01heFBhY2tldFNpemU7Cgl1bnNpZ25lZCBjaGFyICBiSW50ZXJ2YWw7Cgl1bnNpZ25lZCBjaGFyICBiUmVmcmVzaDsKCXVuc2lnbmVkIGNoYXIgIGJTeW5jaEFkZHJlc3M7CgogICAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAgICAvKiBJbnRlcmZhY2UgZGVzY3JpcHRvciAqLwogICAgc3RydWN0IHVzYl9pbnRlcmZhY2VfZGVzY3JpcHRvciB7Cgl1bnNpZ25lZCBjaGFyICBiTGVuZ3RoOwoJdW5zaWduZWQgY2hhciAgYkRlc2NyaXB0b3JUeXBlOwoJdW5zaWduZWQgY2hhciAgYkludGVyZmFjZU51bWJlcjsKCXVuc2lnbmVkIGNoYXIgIGJBbHRlcm5hdGVTZXR0aW5nOwoJdW5zaWduZWQgY2hhciAgYk51bUVuZHBvaW50czsKCXVuc2lnbmVkIGNoYXIgIGJJbnRlcmZhY2VDbGFzczsKCXVuc2lnbmVkIGNoYXIgIGJJbnRlcmZhY2VTdWJDbGFzczsKCXVuc2lnbmVkIGNoYXIgIGJJbnRlcmZhY2VQcm90b2NvbDsKCXVuc2lnbmVkIGNoYXIgIGlJbnRlcmZhY2U7CgoJdW5zaWduZWQgY2hhciAgbm9fb2ZfZXA7Cgl1bnNpZ25lZCBjaGFyICBudW1fYWx0c2V0dGluZzsKCXVuc2lnbmVkIGNoYXIgIGFjdF9hbHRzZXR0aW5nOwoJc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yIGVwX2Rlc2NbVVNCX01BWEVORFBPSU5UU107CiAgICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKICAgIC0tLS0tLS0tLS0tLQoKICAgIEFzIHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yIGlzIG9ubHkgN2J5dGUgaW4gbGVuZ3RoLCB0aGUgc3RhcnQgb2YgYWxsCiAgICBvZGQgZXBfZGVzY1tdIHN0cnVjdHVyZXMgaXMgbm90IHdvcmQgYWxpZ25lZC4gVGhpcyBtYWtlcyB3TWF4UGFja2V0U2l6ZQogICAgb2YgdGhlc2Ugc3RydWN0dXJlcyBhbHNvIG5vdCB3b3JkIGFsaWduZWQuCgogICAgQVJNdjUgQXJjaGl0ZWN0dXJlIGhvd2V2ZXIgZG9lcyBub3Qgc3VwcG9ydCBub24tYWxpZ25lZCBtdWx0aWJ5dGUKICAgIGRhdGEgdHlwZSAoc2VlIEEyLjggb2YgQVJNIEFyY2hpdGVjdHVyZSBSZWZlcmVuY2UgTWFudWFsKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gQWx0aG9lZmVyIDxzdGVmYW4uYWx0aG9lZmVyQHdlYi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA0YzI1M2ZkYjJhMTc1ZWEzNDcyYzM4YTE0NTVhMTZmYWE1OGU4MWYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyA5IDEwOjI3OjMzIDIwMDggLTA2MDAKCiAgICBkcml2ZXJzL2ZzbF9wY2lfaW5pdDogRml4IGNvbXBpbGUgd2FybmluZwoKICAgIGZzbF9wY2lfaW5pdC5jOiBJbiBmdW5jdGlvbiAnZnNsX3BjaV9zZXR1cF9pbmJvdW5kX3dpbmRvd3MnOgogICAgZnNsX3BjaV9pbml0LmM6MTIyOiB3YXJuaW5nOiBjb21wYXJpc29uIGlzIGFsd2F5cyB0cnVlIGR1ZSB0byBsaW1pdGVkIHJhbmdlIG9mIGRhdGEgdHlwZQoKICAgIFRoZSBjaGVjayBvbmx5IG1ha2VzIHNlbnNlIGlmIHdlIGFyZSBDT05GSUdfUEhZU182NEJJVAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZGVkYWNjMThhOGMyYjM5NTE1ODFlYjcyMWZhMDU1YTRlMGFjNDg0NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBEZWMgNyAwOTo0NTozNSAyMDA4ICswMTAwCgogICAgdXNidHR5L29tYXA6IHVwZGF0ZSB0byBjdXJyZW50IEFQSQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IELDtmhtZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgZWUyZTliYTkxN2E2MmNjMmUzYTQ4NGJiNzljOGRhMGUwMWNiOTNlZApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA5IDE3OjUyOjA1IDIwMDggKzAxMDAKCiAgICB2aWRlbzogZml4IEZBRFM4MjMgYW5kIFJSdmlzaW9uIGNvbXBpbGluZyBpc3N1ZXMKCiAgICBTaW5jZSBjb21taXQgNTYxODU4ZWUgYnVpbGRpbmcgZm9yIEZBRFM4MjMgYW5kIFJSdmlzaW9uCiAgICBkb2Vzbid0IHdvcmsuIExldCdzIGluY2x1ZGUgdmVyc2lvbi5oIGFuZCB0aW1lc3RhbXAuaAogICAgdW5jb25kaXRpb25hbGx5IHRvIGZpeCB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgMmQyZTA1NzI3ZmU0MDEzZjgwN2ZmYTgxNGRmZjBlNzUyNTlhMWRiNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAyIDEwOjUzOjQ3IDIwMDggKzAxMDAKCiAgICBVQkk6IEZpeCBzaXplIHBhcnNpbmcgaW4gInViaSBjcmVhdGUiCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJlZTk1MWJhMmFjOTg3NGQyYTkzZDUyZTdhMTg3ZDMxODRiZTkzN2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjcgMTQ6MDc6MDkgMjAwOCArMDEwMAoKICAgIFVCSTogRW5hYmxlIHJlLWluaXRpYWxpemluZyBvZiB0aGUgInViaSBwYXJ0IiBjb21tYW5kCgogICAgV2l0aCB0aGlzIHBhdGNoIG5vdywgdGhlIHVzZXIgY2FuIGNhbGwgInViaSBwYXJ0IiBtdWx0aXBsZSB0aW1lcyB0bwogICAgcmUtY29ubmVjdCB0aGUgVUJJIGRldmljZSB0byBhbm90aGVyIE1URCBwYXJ0aXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlkZWYxMmNhZTMzZDJkM2VhMmRkNTZiMTk3ZmQzZGZiM2FkNjBiZjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjcgMTQ6MDU6MTUgMjAwOCArMDEwMAoKICAgIE1URDogRml4IHByb2JsZW0gYmFzZWQgb24gbm9uLXdvcmtpbmcgcmVsb2NhdGlvbiAobGlzdCBoZWFkIG10ZF9wYXJ0aXRpb25zKQoKICAgIERvbid0IHVzZSBMSVNUX0hFQUQoKSBidXQgaW5pdGlhbGl6ZSB0aGUgc3RydWN0IHZpYSBJTklUX0xJU1RfSEVBRCgpIHVwb24KICAgIGZpcnN0IGNhbGwgb2YgYWRkX210ZF9wYXJ0aXRpb25zKCkuIE90aGVyd2lzZSB0aGlzIHdvbid0IHdvcmsgb24gcGxhdGZvcm1zCiAgICB3aGVyZSB0aGUgcmVsb2NhdGlvbiBpcyBicm9rZW4gKGxpa2UgTUlQUyBvciBQUEMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZTNhYjY4ZTlhY2Y5ZWRmMzA0YjhhYTMyYWQ3ZTAwNTQ4M2EyYzQ3CkF1dGhvcjogVHJlbnQgUGllcGhvIDx0cGllcGhvQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMTIgMTc6Mjk6NDggMjAwOCAtMDgwMAoKICAgIFNlY3Rpb24gbmFtZSBzaG91bGQgYmUgIi5kYXRhIiwgbm90ICJkYXRhIgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3ZmE2YTJmM2I2NjU3OWRlYThiYzFhOTE3NzY0NmUxMTQxNzMxYjE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA5IDAwOjM5OjA4IDIwMDggKzAxMDAKCiAgICBNQUtFQUxMOiBBdXRvbWF0aWNhbGx5IHVzZSBwYXJhbGxlbCBidWlsZHMKCiAgICBBZGQgbG9naWMgdG8gdGhlIE1BS0VBTEwgc2NyaXB0IHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIENQVSBjb3JlcwogICAgb24gdGhlIHN5c3RlbSwgYW5kIHJ1biBhIHBhcmFsbGVsIGJ1aWxkIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUuCiAgICBVc3VhbGx5IHRoaXMgc2lnbmlmaWNhbnRybHkgYWNjZWxlcmF0ZXMgYnVpbGRzLgoKICAgIEFsbG93IHRvIG1hbnVhbGx5IGFkanVzdCB0aGUgbnVtYmVyIG9mIHBhcmFsbGVsIG1ha2Ugam9icyBieSB1c2luZwogICAgdGhlICJCVUlMRF9OQ1BVUyIgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyNjg0MDVmYTdjNDQxNTZjNTE5MmE3MDc3OTkyMGM3MDkwNmFmOGQ2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA5IDAwOjI0OjMwIDIwMDggKzAxMDAKCiAgICB2eHdvcmtzLmg6IEZpeCBidWlsZCBwcm9ibGVtIGludHJvZHVjZWQgYnkgY29tbWl0cyAyOWE0YzI0ZC9lOTA4NGIyMwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTUzMTc2YTk0MTQxMjBjYTE3MzZmM2NjNDk1MTYyM2Q2ZTE0ZTZhZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMTEgMDY6MDg6NTkgMjAwOCArMDEwMAoKICAgIGF2cjMyL2Jvb3RtOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlICdyZXQnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNDM0YzUxYTVlNjJmNjA4YTJhNzhlZDUzOThhYzQzYTFjNzdjYzE4MwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBOb3YgMTIgMTM6MDY6NDggMjAwOCAtMDYwMAoKICAgIFJlbW92ZSB1bm5lZWRlZCBDT05GSUdfU0hFTEwgcmVmZXJlbmNlcwoKICAgIE1ha2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBiYXNoIHNoZWxsIGJ5IGRlZmF1bHQgd2hpY2ggbWFrZXMKICAgIENPTkZJR19TSEVMTCB1bm5lY2Vzc2FyeQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgY2Y3YTdiOTk3OTRiYWM5MzY4OTk4MTliOTU1MzliZTFkYmQ3MTcwOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBOb3YgMTIgMTI6MzM6MjAgMjAwOCAtMDYwMAoKICAgIFVzZSBiYXNoIGZvciBkZWZhdWx0IEdOVSBNYWtlIHNoZWxsIGFwcGxpY2F0aW9uCgogICAgU29tZSBNYWtlIHNjcmlwdCBjb21tYW5kcyByZWx5IG9uIGJhc2gtc3BlY2lmaWMgZmVhdHVyZXMgbGlrZSBicmFjZQogICAgZXhwYW5zaW9uLCBzbyBkZWZhdWx0IHRvIGJhc2ggZm9yIHRoZSBTSEVMTCB2YXJpYWJsZSB3aXRoIGEgZmFsbGJhY2sKICAgIHRvIHRoZSBzdGFuZGFyZCBzaCBzaGVsbAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNGI1MzAwMTg3NjQ5MzRhZDU2ODkxOTZlOWFhNTcxNGE2ZjRkMWE2YwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgTm92IDEyIDA5OjUwOjQ1IDIwMDggKzAxMDAKCiAgICBqZmZzMjogcmVuYW1lIGRldmljZXNfaW5pdCAoKSBpbiBjb21tb24vamZmczIuYwoKICAgIHJlbmFtZSBkZXZpY2VzX2luaXQgKCkgaW4gY29tbW9uL2pmZnMyLmMgdG8KICAgIGpmZnMyX2RldmljZXNfaW5pdCAoKSwgYmVjYXVzZSB0aGVyZSBpcyBhbHNvIGEKICAgIGRldmljZXNfaW5pdCAoKSBpbiBjb21tb24vZGV2aWNlcy5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGFmNWViODQ3YTEwZjEwMzc1OTAwMDEzNTVkODhiYWIzZmU3YmU0OGIKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CU1vbiBOb3YgMTAgMTI6NDY6MjAgMjAwOCArMDAwMAoKICAgIFNQQVJDOiBGaXhlZCBjb21waWxlciBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBjMTYwYTk1NDQ3NDMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVpbGQgZXJyb3IgZm9yIHRoZSBTUEFSQyBwbGF0Zm9ybS4gSXQgd2FzCiAgICBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBjMTYwYTk1NDQ3NDNlODBlODg4OWVkYjIyNzU1MzhlNzc2NGNlMzM0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA0YzYwMjU5ODk5YWEwMGY1OWRiMGQ5MzZiODgwN2Y5YTI2NDExYzBmCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgOSAxMjo1MDo1OSAyMDA4ICswMTAwCgogICAgbWdzdXZkIGFkZCB0aGUgYm9hcmQtc3BlY2lmaWMgcGFydCBvZiB0aGUgSERMQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KCmNvbW1pdCA1MzRhNDM1OTY2NmFmNDhiZDY5YTM3NDNkOGE4YzJiZGIxZDNlYzcwCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgOSAxMjo0NTowMyAyMDA4ICswMTAwCgogICAgbWdjb2dlIGFkZCB0aGUgYm9hcmQtc3BlY2lmaWMgcGFydCBvZiB0aGUgSERMQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KCmNvbW1pdCAxMzVmNTUzNDUzOGJiOGVhNGYzOGE3MDMwZGExMjE4N2QyMmVmN2UwCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgOSAxMjozNjoxNSAyMDA4ICswMTAwCgogICAga2V5bWlsZSBhZGQgdGhlIGNvbW1vbiBwYXJ0cyBvZiB0aGUgSERMQyBkcml2ZXIKCiAgICBUaGlzIGltcGxlbWVudHMgdGhlIElDTiBwcm90b2NvbCB1c2VkIGFjcm9zcyB0aGUgYmFja3BsYW5lIGFuZCBpcwogICAgbmVlZGVkIGJ5IGFsbCB0aGUga2V5bWlsZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgMWNiODJhOTIwN2E1NTA1NTczOTllYWJjN2ZlNDdmMjFiYmQ5ZGRmOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBOb3YgNyAyMjo0NjoyMiAyMDA4ICswMTAwCgogICAgZHJpdmVycy9iaW9zX2VtdWxhdG9yOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiY2RmMWQyY2Y2YjI0ZmI5MDVmZDdkYTgwZGE0YjNjNjVhNzk5NWI1CkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJVGh1IE5vdiA2IDE0OjAxOjUxIDIwMDggLTA1MDAKCiAgICBjb21tb24vY21kX2lkZS5jOiBDb3JyZWN0ZWQgZW5kaWFuIG9yZGVyIHByaW50aW5nIGZvciBjb21wYWN0IGZsYXNoIHNlcmlhbCBudW1iZXIuCgogICAgQ29ycmVjdGVkIGVuZGlhbiBvcmRlciBwcmludGluZyBmb3IgY29tcGFjdCBmbGFzaCBzZXJpYWwgbnVtYmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgMTZhMjhlZjIxOWMyNzQyM2ExZWY1MDJmMTkwNzBjNGQzNzUwNzliOApBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgpEYXRlOglUaHUgTm92IDYgMTU6MDQ6MjMgMjAwOCArMDEwMAoKICAgIElPTVVYOiBBZGQgY29uc29sZSBtdWx0aXBsZXhpbmcgc3VwcG9ydC4KCiAgICBNb2RpZmljYXRpb25zIHRvIHN1cHBvcnQgY29uc29sZSBtdWx0aXBsZXhpbmcuICBUaGlzIGlzIGNvbnRyb2xsZWQgdXNpbmcKICAgIENPTkZJR19TWVNfQ09OU09MRV9NVVggaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiAgICBUaGlzIGFsbG93cyBhIHVzZXIgdG8gc3BlY2lmeSBtdWx0aXBsZSBjb25zb2xlIGRldmljZXMgaW4gdGhlIGVudmlyb25tZW50CiAgICB3aXRoIGEgY29tbWFuZCBsaWtlIHRoaXM6IHNldGVudiBzdGRpbiBzZXJpYWwsbmMuICBBcyBhIHJlc3VsdCwgdGhlIHVzZXIgY2FuCiAgICBlbnRlciB0ZXh0IG9uIGJvdGggdGhlIHNlcmlhbCBhbmQgbmV0Y29uc29sZSBpbnRlcmZhY2VzLgoKICAgIEFsbCBkZXZpY2VzIC0gc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIC0gY2FuIGJlIHNldCBpbiB0aGlzIG1hbm5lci4KCiAgICAxKSBjb21tb24vaW9tdXguYyBhbmQgaW5jbHVkZS9pb211eC5oIGNvbnRhaW4gdGhlIGVudmlyb25tZW50IHNldHRpbmcKICAgIGltcGxlbWVudGF0aW9uLgogICAgMikgZG9jL1JFQURNRS5pb211eCBjb250YWlucyBhIHNvbWV3aGF0IG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24uCiAgICAzKSBUaGUgaW1wbGVtZW50YXRpb24gaW4gKDEpIGlzIGNhbGxlZCBmcm9tIGNvbW1vbi9jbWRfbnZlZGl0LmMgdG8KICAgIGhhbmRsZSBzZXRlbnYgYW5kIGZyb20gY29tbW9uL2NvbnNvbGUuYyB0byBoYW5kbGUgaW5pdGlhbGl6YXRpb24gb2YKICAgIGlucHV0L291dHB1dCBkZXZpY2VzIGF0IGJvb3QgdGltZS4KICAgIDQpIGNvbW1vbi9jb25zb2xlLmMgYWxzbyBjb250YWlucyB0aGUgY29kZSBuZWVkZWQgdG8gcG9sbCBtdWx0aXBsZSBjb25zb2xlCiAgICBkZXZpY2VzIGZvciBpbnB1dCBhbmQgc2VuZCBvdXRwdXQgdG8gYWxsIGRldmljZXMgcmVnaXN0ZXJlZCBmb3Igb3V0cHV0LgogICAgNSkgaW5jbHVkZS9jb21tb24uaCBpbmNsdWRlcyBpb211eC5oIGFuZCBjb21tb24vTWFrZWZpbGUgZ2VuZXJhdGVzIGlvbXV4Lm8KICAgIHdoZW4gQ09ORklHX1NZU19DT05TT0xFX01VWCBpcyBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgNzc0Y2U3MjAyNmY3NGFjOTY0MWJjYmJjNTg4YjIwZjJlMTNmN2FiOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIE5vdiA0IDE2OjAzOjQ2IDIwMDggLTA1MDAKCiAgICBzdHJpbmdzOiB1c2UgcHV0cygpIHJhdGhlciB0aGFuIHByaW50ZigpCgogICAgV2hlbiBydW5uaW5nIGBzdHJpbmdzYCBvbiByZWFsbHkgbG9uZyBzdHJpbmdzLCB0aGUgc3RhY2sgdGVuZHMgdG8gZ2V0CiAgICBzbWFzaGVkIGR1ZSB0byBwcmludGYoKS4gIFN3aXRjaCB0byBwdXRzKCkgaW5zdGVhZCBzaW5jZSB3ZSdyZSBvbmx5IHBhc3NpbmcKICAgIHRoZSBkYXRhIHRocm91Z2guCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGIwMzE1MGI1MmUzYzQ5MWE4NmEzY2MwOTQ1Mjc0ZjBlOGY5ODcyZTcKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG1lbWJlci5mc2Yub3JnPgpEYXRlOglNb24gTm92IDMgMjI6MTY6MTggMjAwOCArMDEwMAoKICAgIFVzZSBuZXcgQ09ORklHX1NZU19WWFdPUktTIHBhcmFtZXRlcnMgZm9yIE5ldHN0YWwgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KCmNvbW1pdCAyOWE0YzI0ZGU5OWQ4Y2I0YWMzMjk5MWMwNGNhYjg3ZWQ5NGNhMWY5CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KRGF0ZToJTW9uIE5vdiAzIDIyOjE1OjM0IDIwMDggKzAxMDAKCiAgICBjbWRfZWxmLmM6IENsZWFudXAgYm9vdHZ4IGFuZCBoYW5kbGUgbmV3IENPTkZJR19TWVNfVlhXT1JLUyBwYXJhbWV0ZXJzCgogICAgLSBmaXggc2l6ZSB0b28gc21hbGwgYnkgb25lIGluIHNwcmludGYKICAgIC0gY2hhbmdlZCBvbGQgKHByZSAyMDA0KSBkZXZpY2UgbmFtZSBpYm1FbWFjIHRvIGVtYWMKICAgIC0gYm9vdCBkZXZpY2UgbWF5IGJlIG92ZXJyaWRlbiBpbiBib2FyZCBjb25maWcKICAgIC0gc2VydmVybmFtZSBtYXkgYmUgZGVmaW5lZCBpbiBib2FyZCBjb25maWcKICAgIC0gYWRkaXRpb25hbCBwYXJhbWV0ZXJzIG1heSBiZSBkZWZpbmVkIGluIGJvYXJkIGNvbmZpZwogICAgLSBmaXhlZCBzb21lIGxpbmUgd3JhcHBpbmdzCiAgICAtIHJlcGxhY2VkCXJlZHVuZGFudCBNQVggZGVmaW5lIGJ5IG1heAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbWVtYmVyLmZzZi5vcmc+Cgpjb21taXQgZTkwODRiMjNkMTYxMDJmNDRhY2UyNDM3OWExYzBjMzUyNDk3ZWY4MApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbWVtYmVyLmZzZi5vcmc+CkRhdGU6CU1vbiBOb3YgMyAyMjoxNDozNiAyMDA4ICswMTAwCgogICAgQWRkIHZ4d29ya3MuaCB0byBoYW5kbGUgQ09ORklHX1NZU19WWFdPUktTIHBhcmFtZXRlcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG1lbWJlci5mc2Yub3JnPgoKY29tbWl0IDBiMmY0ZWNhZDQ3M2Q3ODU5NTljNzk3NmYyMGQyYTAwYmQwZWUwMWYKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG1lbWJlci5mc2Yub3JnPgpEYXRlOglNb24gTm92IDMgMjI6MTM6NDcgMjAwOCArMDEwMAoKICAgIFJFQURNRTogRG9jdW1lbnQgQ09ORklHX1NZUyBwYXJhbWV0ZXJzIGZvciB2eHdvcmtzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KCmNvbW1pdCBhY2U1MTQ4MzdjYWM2NTZlMjljMzdhMTk1NjljYjhlYTgzMDcxMTI2CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMToxMjozOCAyMDA4IC0wNTAwCgogICAgbGNkOiBMZXQgdGhlIGJvYXJkIGNvZGUgc2hvdyBib2FyZC1zcGVjaWZpYyBpbmZvIGNsZWFudXAKCiAgICByZW1vdmUgdW5uZWVkZWQgdmVyc2lvbi5oIGZyb20gbGNkLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NjE4NThlZTdkMDI3NGMzZTg5ZGM5OGQ0ZDA2OThjYjZmY2Y2ZmQ5CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIE5vdiAzIDA5OjMwOjU5IDIwMDggLTA2MDAKCiAgICBVcGRhdGUgVS1Cb290J3MgYnVpbGQgdGltZXN0YW1wIG9uIGV2ZXJ5IGNvbXBpbGUKCiAgICBVc2UgdGhlIEdOVSAnZGF0ZScgY29tbWFuZCB0byBhdXRvLWdlbmVyYXRlIGEgbmV3IFUtQm9vdAogICAgdGltZXN0YW1wIG9uIGV2ZXJ5IGNvbXBpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA4M2FkMTc5ZTJmMGY2MjViODhhZGI4ZWY1Njk2NzA5ZTQ2ZmI5MDc3CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVRodSBEZWMgNCAyMjoyNTo1NyAyMDA4ICswMTAwCgogICAgUmVtb3ZlIHJlZHVuZGFudCBhcm12NCBmbGFnIGZyb20gYXJtOTI2ZWpzIGNvbXBpbGUgZmxhZ3MKCiAgICBDdXJyZW50bHkgdGhlIGFybTkyNmVqcyB0cmVlIGhhcyB0aGUgYXJtdjQgb3B0aW9uIHNldCBkdXJpbmcgY29tcGlsYXRpb24uCiAgICBUaGlzIGZsYWcgZG9lcyBub3QgYmVsb25nIGhlcmUgYmVjYXVzZSBhIGFybTkyNiBDUFUgaXMgYWx3YXlzIGEgYXJtdjUgQ1BVLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDg5YTdhODdmMDg0YzY1N2Y4ZTMyYjUxM2E3N2I1MGVjYTA3ZTE3ZWMKQXV0aG9yOiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KRGF0ZToJU2F0IERlYyA2IDEzOjExOjE0IDIwMDggKzAxMDAKCiAgICBhdDkxOiBDaG9vc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIGxvY2F0aW9uIHdpdGhpbiBtYWtlIGNvbmZpZyB0YXJnZXQKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHBvc3NpYmxpdHkgdG8gY2hvb3NlIHRoZSBtZWRpYSB3aGVyZSB0aGUgZW52aXJvbm1lbnQgd2lsbAogICAgYmUgbG9jYXRlZC4gVGhpcyBhbGxvdyB0byBjaG9vc2UgdGhpcyBmdW5kYW1lbnRhbCBjb25maWd1cmF0aW9uIHdpdGhvdXQgZWRpdGluZwogICAgY29uZmlnIGZpbGVzLgoKICAgIERvY3VtZW50YXRpb24gZmlsZSBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTQ1MGM0YTY2ODIzNzg1NjcwMzA0MTRhOWYxMTk4YzM5Yjc3MzBjNwpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAzIDE1OjMwOjM0IDIwMDggKzAxMDAKCiAgICBsd21vbiwgdHFtOHh4OiBGaXggYnVpbGQgZXJyb3JzCgogICAgQ29tbWl0IDZiNTllMDNlMDIzN2E0MGEyMzA1ZWEzODVkZWZkZmQ5MjAwMDk3OGIKICAgIGxjZDogTGV0IHRoZSBib2FyZCBjb2RlIHNob3cgYm9hcmQtc3BlY2lmaWMgaW5mbwoKICAgIGludHJvZHVjZWQgc29tZSBidWdzIHdoaWNoIHByZXZlbnQgVS1Cb290IGJ1aWxkaW5nCiAgICBmb3IgbHdtb24gYm9hcmQgaWYgQ09ORklHX0xDRF9JTkZPX0JFTE9XX0xPR08gd2lsbAogICAgYmUgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICBBbHNvICJMQ0QgZW5hYmxlZCIgYnVpbGRpbmcgZm9yIFRRTTgyM0wgZG9lc24ndCB3b3JrCiAgICBzaW5jZSB0aGlzIGNvbW1pdC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIGFib3ZlLW1lbnRpb25lZCBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGJmYTBhZjZiMjJmZjI1YjA3MTlhODkxMGY5YjZkMWY5NzVhYTZmYjAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBOb3YgMiAwMToxODoxOCAyMDA4IC0wNDAwCgogICAgaWdub3JlIC5nZGJfaGlzdG9yeSBmaWxlcwoKICAgIFdoZW4gdXNpbmcgZ2RiLCBoaXN0b3J5IGZpbGVzIHdpbGwgb2Z0ZW4gZ2V0IGdlbmVyYXRlZC4gIFNvIGlnbm9yZSB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjOGFhN2RmYzE4ZjdjYzkwZDBhZWE2YzdiZWNiYjY3ZGZjNWJiYTRiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMjoyNjo1NSAyMDA4ICswMTAwCgogICAgRlBHQTogbW92ZSBmcGdhIGRyaXZlcnMgdG8gZHJpdmVycy9mcGdhCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2YTg2YmI2YzI1Mzc2ZjAzNTg0NzgyMTlmYTI4ZDdjODRkZDAxZWQwCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDE2OjI5OjM4IDIwMDggLTA2MDAKCiAgICBuZXQ6IEZpeCBUZnRwU3RhcnQoKSBpcDpmaWxlbmFtZSBidWcKCiAgICBUaGUgVGZ0cFN0YXJ0KCkgZnVuY3Rpb24gbW9kaWZpZXMgdGhlICdCb290RmlsZScKICAgIHN0cmluZyB3aGVuICdCb290RmlsZScgY29udGFpbnMgYm90aCBhbiBJUCBhZGRyZXNzCiAgICBhbmQgZmlsZW5hbWUgKGVnIDEuMi4zLjQ6L3BhdGgvZmlsZSkuIFRoaXMgY2F1c2VzCiAgICBzdWJzZXF1ZW50IGNhbGxzIHRvIFRmdHBTdGFydCB0byBpbmNvcnJlY3RseSBwYXJzZQogICAgdGhlIFRGVFAgZmlsZW5hbWUgYW5kIHNlcnZlciBJUCBhZGRyZXNzIHRvIHVzZS4KICAgIEZvciBleGFtcGxlOgoKICAgID0+IHRmdHAgMHgxMDAwMDAgMTAuNTIuMC42MjovaG9tZS9wdHlzZXIvbm9uX2V4aXN0YW50CiAgICBTcGVlZDogMTAwLCBoYWxmIGR1cGxleAogICAgVXNpbmcgZVRTRUMxIGRldmljZQogICAgVEZUUCBmcm9tIHNlcnZlciAxMC41Mi4wLjYyOyBvdXIgSVAgYWRkcmVzcyBpcyAxMC41Mi4yNTMuNzkKCQkgICAgIF5eXl5eXl5eXl4gQ09SUkVDVAogICAgRmlsZW5hbWUgJy9ob21lL3B0eXNlci9ub25fZXhpc3RhbnQnLgoJICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXiBDT1JSRUNUCiAgICBMb2FkIGFkZHJlc3M6IDB4MTAwMDAwCiAgICBMb2FkaW5nOiAqCiAgICBURlRQIGVycm9yOiAnRmlsZSBub3QgZm91bmQnICgxKQogICAgU3RhcnRpbmcgYWdhaW4KCiAgICBlVFNFQzI6IE5vIGxpbmsuCiAgICBTcGVlZDogMTAwLCBoYWxmIGR1cGxleAogICAgVXNpbmcgZVRTRUMxIGRldmljZQogICAgVEZUUCBmcm9tIHNlcnZlciAxMC41Mi4wLjMzOyBvdXIgSVAgYWRkcmVzcyBpcyAxMC41Mi4yNTMuNzkKCQkgICAgIF5eXl5eXl5eXl4gV1JPTkcKICAgIEZpbGVuYW1lICcxMC41Mi4wLjYyJy4KCSAgICAgIF5eXl5eXl5eXl4gV1JPTkcKICAgIExvYWQgYWRkcmVzczogMHgxMDAwMDAKICAgIExvYWRpbmc6ICoKICAgIFRGVFAgZXJyb3I6ICdGaWxlIG5vdCBmb3VuZCcgKDEpCiAgICBTdGFydGluZyBhZ2FpbgoKICAgIFRmdHBTdGFydCgpIHdhcyBtb2RpZmllZCB0byBub3QgbW9kaWZ5IHRoZSAnQm9vdEZpbGUnIHN0cmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkMzJjNWJlNTBiZjA2MDBiZmRjNTQyMjNlZjM0MWVlOWM2M2RiNDQ1CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDE2OjI2OjIxIDIwMDggLTA2MDAKCiAgICBuZXQ6IEFkZCBhZGRpdGlvbmFsIElQIGZyYWdtZW50YXRpb24gY2hlY2sKCiAgICBJZ25vcmUgSVAgcGFja2V0cyB3aGljaCBoYXZlIHRoZSAibW9yZSBmcmFnbWVudHMiIGZsYWcgYml0CiAgICBzZXQuICBUaGlzIGZsYWcgaW5kaWNhdGVzIHRoZSBJUCBwYWNrZXQgaXMgZnJhZ21lbnRlZCBhbmQKICAgIG11c3QgYmUgaWdub3JlZCBieSBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZTBjMDdiODY4Y2FiNDA1YWI0YjUzMzVhMDI0Nzg5OWJmYzVlYTBiNgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBEZWMgMSAxNjoyNjoyMCAyMDA4IC0wNjAwCgogICAgbmV0OiBEZWZpbmUgSVAgZmxhZyBmaWVsZCB2YWx1ZXMKCiAgICBUaGVzZSBkZWZpbmVzIHdlcmUgcHVsbGVkIGZyb20gdGhlICJBZGQgc2ltcGxlCiAgICBJUC9VRFAgZnJhZ21lbnRhdGlvbiBzdXBwb3J0IiBwYXRjaCBmcm9tIEZyYW5rCiAgICBIYXZlcmthbXAgPGhhdmVyQHZuZXQuaWJtLmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMjNhZmFiYTY1ZWM1MjA2NzU3ZTU4OWVmMzM0YThiMzgxNjhjMDQ1ZgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAyIDEwOjMxOjA0IDIwMDggKzAxMDAKCiAgICBuZXQ6IHRzZWM6IEZpeCBNYXJ2ZWxsIDg4RTExMjFSIHBoeSBpbml0CgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBlbnN1cmUgdGhhdCBwaHkgaW50ZXJydXB0IHBpbgogICAgd29uJ3QgYmUgYXNzZXJ0ZWQgYWZ0ZXIgYm9vdGluZy4gV2UgZXhwZXJpZW5jZWQKICAgIGZvbGxvd2luZyBpc3N1ZXMgd2l0aCBjdXJyZW50IDg4RTExMjFSIHBoeSBpbml0OgoKICAgIE1hcnZlbGwgODhFMTEyMVIgcGh5IGNhbiBiZSBoYXJkd2FyZS1jb25maWd1cmVkCiAgICB0byBzaGFyZSBNREMvTURJTyBhbmQgaW50ZXJydXB0IHBpbnMgZm9yIGJvdGggcG9ydHMKICAgIFAwIGFuZCBQMSAoZS5nLiBhcyBjb25maWd1cmVkIG9uIHNvY3JhdGVzIGJvYXJkKS4KICAgIFBvcnQgMCBpbnRlcnJ1cHQgcGluIHdpbGwgYmUgc2hhcmVkIGJ5IGJvdGggcG9ydHMKICAgIGluIHN1Y2ggY29uZmlndXJhdGlvbi4gQWZ0ZXIgYm9vdGluZyBMaW51eCBhbmQKICAgIGNvbmZpZ3VyaW5nIGV0aDAgaW50ZXJmYWNlLCBwb3J0IDAgcGh5IGludGVycnVwdHMKICAgIGFyZSBlbmFibGVkLiBBZnRlciByZWJvb3Rpbmcgd2l0aG91dCBwcm9wZXIgZXRoMAogICAgaW50ZXJmYWNlIHNodXRkb3duIHBvcnQgMCBwaHkgaW50ZXJydXB0cyByZW1haW4KICAgIGVuYWJsZWQgc28gYW55IGNoYW5nZSBvbiBwb3J0IDAgKGxpbmsgc3RhdHVzLCBldGMuKQogICAgY2F1c2UgYXNzZXJ0aW9uIG9mIHRoZSBpbnRlcnJ1cHQuIE5vdyBib290aW5nIExpbnV4CiAgICBhbmQgY29uZmlndXJpbmcgZXRoMSBpbnRlcmZhY2Ugd2lsbCBjYXVzZSBwZXJtYW5lbnQKICAgIHBoeSBpbnRlcnJ1cHQgc3Rvcm0gYXMgdGhlIHJlZ2lzdGVyZWQgcGh5IDEgaW50ZXJydXB0CiAgICBoYW5kbGVyIGRvZXNuJ3QgYWNrbm93bGVkZ2UgcGh5IDAgaW50ZXJydXB0cy4gVGhpcwogICAgb2YgY291cnNlIHNob3VsZCBiZSBmaXhlZCBpbiBMaW51eCBkcml2ZXIgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDJlNDk3MGQ4MTA5ZDY5MGFkY2Y2MTVkOWUzY2FjN2I1YjJlOGVhZWQKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgRGVjIDIgMTI6NTk6NTEgMjAwOCAtMDYwMAoKICAgIG5ldDogRml4IGRvd25sb2FkIGNvbW1hbmQgcGFyc2luZwoKICAgIFdoZW4gQ09ORklHX1NZU19IVVNIX1BBUlNFUiBpcyBkZWZpbmVkIG5ldHdvcmsgZG93bmxvYWQKICAgIGNvbW1hbmRzIHdpdGggMSBhcmd1bWVudCBpbiB0aGUgZm9ybWF0ICd0ZnRwICIvcGF0aC9maWxlIicKICAgIGRvIG5vdCB3b3JrIGFzIGV4cGVjdGVkLiBUaGUgaHVzaCBjb21tYW5kIHBhcnNlciBzdHJpcHMKICAgIHRoZSBxdW90ZXMgZnJvbSAiL3BhdGgvZmlsZSIgd2hpY2ggY2F1c2VzIHRoZSBuZXR3b3JrCiAgICBjb21tYW5kcyB0byBpbnRlcnByZXQgIi9wYXRoL2ZpbGUiIGFzIGFuIGFkZHJlc3MKICAgIGluc3RlYWQgb2YgdGhlIGludGVuZGVkIGZpbGVuYW1lLgoKICAgIFRoZSBwcmV2aW91cyBjaGVjayBmb3IgYSBsZWFkaW5nIHF1b3RlIGluIG5ldGJvb3RfY29tbW9uKCkKICAgIHdhcyByZXBsYWNlZCB3aXRoIGEgY2hlY2sgd2hpY2ggZW5zdXJlcyBvbmx5IHZhbGlkCiAgICBudW1iZXJzIGFyZSB0cmVhdGVkIGFzIGFkZHJlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAzYzJjMmY0Mjc5MDUwNDBjMTUxM2QwYzUxZDYzNzY4OWNiYTQ4MzQ2CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVRodSBOb3YgMjcgMjI6MzA6MjcgMjAwOCArMDEwMAoKICAgIFJlbW92ZSBub24tYXNjaWkgY2hhcmFjdGVycyBmcm9tIGZhdCBjb2RlCgogICAgVGhpcyBjb2RlIGNvbnRhaW5zIHNvbWUgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gY29tbWVudCBsaW5lcyBhbmQgY29kZS4KICAgIE1vc3QgZWRpdG9ycyBkbyBub3QgZGlzcGxheSB0aG9zZSBjaGFyYWN0ZXJzIHByb3Blcmx5IGFuZCBlZGl0aW5nIHRob3NlCiAgICBmaWxlcyByZXN1bHRzIGFsd2F5cyBpbiBkaWZmcyBhdCB0aGVzZSBwbGFjZXMgd2hpY2ggYXJlIHVzdWFsbHkgbm90IHJlcXVpcmVkCiAgICB0byBiZSBjaGFuZ2VkIGF0IGFsbC4gVGhpcyBpcyBlcnJvciBwcm9uZS4KCiAgICBTbywgcmVtb3ZlIHRob3NlIHdlaXJkIGNoYXJhY3RlcnMgYW5kIHJlcGxhY2UgdGhlbSBieSBub3JtYWwgQy1zdHlsZQogICAgZXF1aXZhbGVudHMgZm9yIHdoaWNoIHRoZSBwcm9wZXIgZGVmaW5lcyB3ZXJlIGFscmVhZHkgaW4gdGhlIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBkYzg4OWU4NjUzNTY0OTdkM2U0OTU1NzAxMThjMjI0NWViY2UyNjMxCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyOCAyMDoxNjo1OCAyMDA4ICswODAwCgogICAgODV4eDogZml4IHRoZSB3cm9uZyBERFIgc2V0dGluZ3MgZm9yIE1QQzg1NzJEUwoKICAgIFRoZSBkZWZhdWx0IEREUiBmcmVxIGlzIDQwME1IeiBvciA4MDBNIGRhdGEgcmF0ZSwKICAgIHRoZSBvbGQgc2V0dGluZ3MgaXMgcHVyZSB3cm9uZyBmb3IgdGhlIGRlZmF1bHQgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZGY1OTUzM2Y3N2RlMjgyOWI0YjY2ZTViNzYyMGUwNGVkYWEzOTFjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNCAxMDoyOToyNiAyMDA4IC0wNjAwCgogICAgODV4eDogaW5pdCBnZCBhcyBlYXJseSBhcyBwb3NzaWJsZQoKICAgIE1vdmVkIHVwIHRoZSBpbml0aWFsaXphdGlvbiBvZiBHRCBzbyBDIGNvZGUgbGlrZSBzZXRfdGxiKCkgY2FuIHVzZQogICAgZ2QtPmZsYWdzIHRvIGRldGVybWluZSBpZiB3ZSd2ZSByZWxvY2F0ZWQgb3Igbm90IGluIHRoZSBmdXR1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWVkNDYxYWY4MTAxMmEzOThhMjA1ZTliZTY3YWIzNzY2NzQ5MTgzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjQgMTA6Mjk6MjUgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEZpeCByZWxvY2F0aW9uIG9mIENDU1JCQVIKCiAgICBJZiB0aGUgdmlydHVhbCBhZGRyZXNzIGZvciBDQ1NSQkFSIGlzIHRoZSBzYW1lIGFmdGVyIHJlbG9jYXRpb24gYnV0CiAgICB0aGUgcGh5c2ljYWwgYWRkcmVzcyBpcyBjaGFuZ2luZyB3ZSdkIGVuZCB1cCBoYXZpbmcgdHdvIFRMQiBlbnRyaWVzIHdpdGgKICAgIHRoZSBzYW1lIFZBLiAgSW5zdGVhZCB3ZSBuZXcgdXMgdGhlIG5ldyBDQ1NSQkFSIHZpcnQgYWRkcmVzcyArIDRrIGFzIGEKICAgIHRlbXAgdmlydCBhZGRyZXNzIHRvIGFjY2VzcyB0aGUgb2xkIENDU1JCQVIgdG8gcmVsb2NhdGUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWExNTRhMTc4MTEzNWQ4MjJlZWRlZTc1NjdjYzE1NjA4OWVhZTkzYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjQgMTA6MjU6MTQgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZWQgQlJfUEhZU19BRERSIGZvciBsb2NhbGJ1cyB0byBjb21tb24gaGVhZGVyCgogICAgVGhlIEJSX1BIWVNfQUREUiBtYWNybyBpcyB1c2VmdWwgb24gYWxsIG1hY2hpbmVzIHRoYXQgaGF2ZSBsb2NhbCBidXMKICAgIHdoaWNoIGlzIHByZXR0eSBtdWNoIGFsbCA4M3h4Lzg1eHgvODZ4eCBjaGlwcy4KCiAgICBBZGRpdGlvbmFsbHkgbW9zdCA4NXh4ICYgODZ4eCB3aWxsIG5lZWQgaXQgaWYgdGhleSB3YW50IHRvIHN1cHBvcnQKICAgIDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTQyN2NjZGUwMzU1YTJlYmY0NzQ1NGU4ZTFiZTU5ZjViOTg2NGUwOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBEZWMgMSAxMzo0NzoxMiAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIFBPUkRFVlNSX1BDSTEgZGVmaW5lCgogICAgQWRkIGRlZmluZSB1c2VkIHRvIGRldGVybWluZSBpZiBQQ0kxIGludGVyZmFjZSBpcyBpbiBQQ0kgb3IgUENJWCBtb2RlLgoKICAgIENvbnZlcnQgdXNlcnMgb2YgdGhlIG9sZCBQT1JERVZTUl9QQ0kgY29uc3RhbnQgdG8gdXNlIE1QQzg1eHhfUE9SREVWU1JfUENJMQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzVkYjFjNmQzNGI1N2FlMTVlOTljZjAzYzhlOGY4YTYxNDhkNzRmMwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDIxIDE5OjI0OjIyIDIwMDggLTA2MDAKCiAgICBkcml2ZXJzL2ZzbF9wY2lfaW5pdDogRml4IGluYm91bmQgd2luZG93IG1hcHBpbmcgYnVnCgogICAgVGhlIGN1cnJlbnQgY29kZSB3aWxsIGNhdXNlIHRoZSBjcmVhdGlvbiBvZiBhIDRHQiB3aW5kb3cKICAgIHN0YXJ0aW5nIGF0IDAgaWYgd2UgaGF2ZSBtb3JlIHRoYW4gNEdCIG9mIFJBTSBpbnN0YWxsZWQsCiAgICB3aGljaCBvdmVybGFwcyB3aXRoIFBDSV9NRU0gc3BhY2UgYW5kIGNhdXNlcyBwY2lfYnVzX3RvX3BoeXMoKQogICAgdG8gcmV0dXJuIGVycm9uZW91cyBpbmZvcm1hdGlvbi4gTGltaXQgdGhlIHNpemUgdG8gNEdCIC0gMTsKICAgIHdoaWNoIGNhdXNlcyB0aGUgY29kZSB0byBjcmVhdGUgb25lIDJHQiBhbmQgb25lIDFHQiB3aW5kb3cKICAgIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWExMDVhMzMzZGFiNmEyM2U5MmQ3NjNjZTc2ZDZmMzFkNTdmNDVkZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMjAgMTU6MzY6NDggMjAwOCAtMDYwMAoKICAgIFJlbW92ZWQgdW51c2VkIENPTkZJR19MMV9JTklUX1JBTSBzeW1ib2wuCgogICAgUHJldmVudCBmdXJ0aGVyIHZpcmFsIHByb3BvZ2F0aW9uIG9mIHRoZSB1bnVzZWQKICAgIHN5bWJvbCBDT05GSUdfTDFfSU5JVF9SQU0gYnkganVzdCByZW1vdmluZyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDA4ZDI2YTQwYTc2ZjkwY2FlNTgyNGM4MTJjZmVkNDQ5ZmI5N2I4CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyOSAwOToyMTo0NCAyMDA4IC0wNTAwCgogICAgZnNsIGRkciBza2lwIGludGVybGVhdmluZyBpZiBub3Qgc3VwcG9ydGVkLgoKICAgIFJlbW92ZWQgd2hpbGUoMSkgaGFuZyBpZiBtZW1jdGxfaW50bHZfY3RsIGlzIHNldCB3cm9uZy4KICAgIFJlbW92ZSBlbWJlZGRlZCB0YWJzIGZyb20gc3RyaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkMzMyZTE4ZDA4MmRlNzVlY2EzZmMyYzdjNzc4ZjVkNDU3MWEwOTYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMTMgMTg6MDg6NTcgMjAwOCArMDEwMAoKICAgIDg1eHg6IHNvY3JhdGVzOiBmaXggRERSIFNEUkFNIHRsYiBlbnRyeSBjb25maWd1cmF0aW9uCgogICAgc2luY2UgY29tbWl0IGJlMGJkODIzNGI5Nzc3ZWNkNjNjNGM2ODZmNzJhZjA3MGQ4ODY1MTcKICAgIHRsYiBlbnRyeSBmb3Igc29jcmF0ZXMgRERSIFNEUkFNIHdpbGwgYmUgcmVjb25maWd1cmVkCiAgICBieSBzZXR1cF9kZHJfdGxicygpIGZyb20gaW5pdGRyYW0oKSBjYXVzaW5nIGFuCiAgICBpbmNvbnNpc3RlbmN5IHdpdGggcHJldmlvdXNseSBjb25maWd1cmVkIEREUiBTRFJBTSB0bGIKICAgIGVudHJ5IGZyb20gdGxiX3RhYmxlOgoKICAgIHNvY3JhdGVzPmwyY2FtIDcgOQogICAgSURYICBQSUQJICBFUE4gIFNJWkUgViBUUwkgICBSUE4gVTAtVTMgV0lNR0UgVVVVU1NTCiAgICAgIDcgOiAwMCAwMDAwMDAwMCAyNTZNQiBWICAwIC0+IDBfMDAwMDAwMDAJMDAwMCAtSS1HLSAtLS1SV1gKICAgICAgOCA6IDAwIDAwMDAwMDAwIDI1Nk1CIFYgIDAgLT4gMF8wMDAwMDAwMAkwMDAwIC0tLS0tIC0tLVJXWAogICAgICA5IDogMDAgMTAwMDAwMDAgMjU2TUIgViAgMCAtPiAwXzEwMDAwMDAwCTAwMDAgLS0tLS0gLS0tUldYCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIEREUiBTRFJBTSB0bGIgZW50cnkgaW4KICAgIHRoZSB0bGJfdGFibGUgZGVwZW5kZW50IG9uIENPTkZJR19TUERfRUVQUk9NIHRvIGF2b2lkIHRoaXMKICAgIGluY29uc2lzdGVuY3kuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMmNkNTBlZDZlZjBhYzZiMTI3YjNkNmRiNzU2OTc5YTgzMzY3MThkCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVHVlIE5vdiAxMSAxMDoxNzoxMCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIENQVSAyIGVycmF0YSB3b3JrYXJvdW5kIHRvIGFsbCA4NTQ4IGJvYXJkcwoKICAgIEFsbCBtcGM4NTQ4LWJhc2VkIGJvYXJkcyBzaG91bGQgaW1wbGVtZW50IHRoZSBzdWdnZXN0ZWQgd29ya2Fyb3VuZAogICAgdG8gQ1BVIDIgZXJyYXRhLiBXaXRob3V0IHRoZSB3b3JrYXJvdW5kLCBpdHMgcG9zc2libGUgZm9yIHRoZQogICAgODU0OCdzIGNvcmUgdG8gaGFuZyB3aGlsZSBleGVjdXRpbmcgYSBtc3luYyBvciBtYmFyIDAgaW5zdHJ1Y3Rpb24KICAgIGFuZCBhIHNub29wYWJsZSB0cmFuc2FjdGlvbiBmcm9tIGFuIEkvTyBtYXN0ZXIgdGFnZ2VkIHRvIG1ha2UKICAgIHF1aWNrIGZvcndhcmQgcHJvZ3Jlc3MgaXMgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNTdmMGZhMTMzM2NkZjNjYTM2MTEwYWFjMjkwMDcxMmE1ZjgyOTc2CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo1Mzo0NSAyMDA4ICswODAwCgogICAgODV4eDogdGhlIEREUiB0bGIgaXMgbWlzc2VkIGZvciB0aGUgIUNPTkZJR19TUERfRUVQUk9NIGNhc2UKCiAgICB3ZSBuZWVkIFRMQiBlbnRyeSBmb3IgRERSIGF0ICFTUEQgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YjBhZDFiMWM3YTE1ZmY2NzQ5Nzg3MDVjN2M1MjI2NDk3OGRjNWQ4CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo1MzozOCAyMDA4ICswODAwCgogICAgODV4eDogcmVtb3ZlIHRoZSB1bnVzZWQgZGRyX2VuYWJsZV9lY2MgaW4gdGhlIGJvYXJkIGZpbGUKCiAgICBUaGUgRERSIGNvbnRyb2xsZXIgb2YgODU0OC84NTQ0Lzg1NjgvODU3Mi84NTM2IHByb2Nlc3NvcnMKICAgIGhhdmUgdGhlIEVDQyBkYXRhIGluaXQgZmVhdHVyZSwgYW5kIHRoZSBuZXcgRERSIGNvZGUgaXMKICAgIHVzaW5nIHRoZSBmZWF0dXJlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGUgd2F5IHdpdGggRE1BIHRvCiAgICBpbml0IG1lbW9yeSBhbnkgbW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YTEyOWE1N2Q5MjNmN2MxNWFhMWY1NjcwMjhhODBhMzJkNjZhMTAwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAzMCAxOTozNjo1MyAyMDA4ICswMTAwCgogICAgYXQ5MXJtOTIwMGRrOiBGaXggdHlwbwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWQzYjE4ZTA1YzlhOGZmYTVmYjY0M2RhOWJjZWM3NDUyZTVkNWUwMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMzAgMTk6MzY6NTAgMjAwOCArMDEwMAoKICAgIEFUOTE6IHJlbW92ZSBub24gc3VwcG9ydGVkIGJvYXJkIEFUOTFSTTkyMDBERiBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmQ4NzY3NzJlZTA0MDk1ZTVkZDk0M2Q5NzUxNWExZjE0YmFkNGIxYwpBdXRob3I6IElsa28gSWxpZXYgPGlsaWV2QHJvbmV0aXguYXQ+CkRhdGU6CVR1ZSBEZWMgMiAxNzoyNzo1NCAyMDA4ICswMTAwCgogICAgbXRkL2RhdGFmbGFzaC5jOiBmaXggYSBwcm9ibGVtIHdpdGggdGhlIGxhc3QgcGFydGl0aW9uCgogICAgVGhpcyBwYXRjaCBmaXggdGhlIHByb2JsZW0gdGhhdCBvbmx5IHRoZSBbTkJfREFUQUZMQVNIX0FSRUEgLSAxXSBkYXRhZmxhc2gKICAgIHBhcnRpdGlvbiBjYW4gYmUgZGVmaW5lZCB0byB1c2UgdGhlIGFyZWEgdG8gdGhlIGVuZCBvZiBkYXRhZmxhc2ggc2l6ZS4KICAgIE5vdyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG9ubHkgb25lIGRhdGFmbGFzaCBwYXJ0aXRpb24gZnJvbSAwIHRvIHRoZSBlbmQKICAgIG9mIG9mIGRhdGFmbGFzaCBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IElsa28gSWxpZXYgPGlsaWV2QHJvbmV0aXguYXQ+Cgpjb21taXQgMDNmNzk3NzkzYjEyNGRjY2FhZTE0NWI5NzdkMTVkNmNiOWU3NDUwNApBdXRob3I6IElsa28gSWxpZXYgPGlsaWV2QHJvbmV0aXguYXQ+CkRhdGU6CVR1ZSBEZWMgMiAxNzoyMDoxNyAyMDA4ICswMTAwCgogICAgZml4IHNvbWUgY29kaW5nIHN0eWxlIHZpb2xhdGlvbnMuCgogICAgVGhpcyBwYXRjaCBmaXggc29tZSBjb2Rpbmcgc3R5bGUgdmlvbGF0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbGtvIElsaWV2IDxpbGlldkByb25ldGl4LmF0PgoKY29tbWl0IDVlNDZiMWU1NDExMmY0YjdmZDUxODU2NjVlNTcxNTEwMTMyYzEyYTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjcgMTQ6MTE6MzcgMjAwOCArMDEwMAoKICAgIE9uZU5BTkQ6IEFkZCBtaXNzaW5nIG10ZCBpbmZvIHN0cnVjdCBiZWZvcmUgY2FsbGluZyBvbmVuYW5kX2VyYXNlKCkKCiAgICBXaXRob3V0IHRoaXMgcGF0Y2ggInNhdmVlbnYiIGNyYXNoZXMgd2hlbiBNVEQgcGFydGl0aW9ucyBhcmUgZW5hYmxlZCAoZS5nLgogICAgZm9yIHVzZSBpbiBVQkkpIHZpYSBDT05GSUdfTVREX1BBUlRJVElPTlMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjkzODJkNDA2NGZiYWZmNWRhYWNmZjRjMzIwOTM3MGZhNTcxMzk2NgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIwIDE2OjQzOjUyIDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBGaXggZXJyb3IgaW4gUkVBRE1FCgogICAgSSBtYWRlIHNvbWUgdXBkYXRlcyB0byB0aGUgY29kZSB0aGF0IGRpZG4ndCBtYWtlIGl0IGludG8gdGhlCiAgICBSRUFETUUgLSBmaXggdGhpcwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwMWExOTQ2MTZkOTVlNmZjNDI2YTE3NmQ5NjE1Y2NiZjk4NzZjN2YKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIwIDEyOjAxOjAyIDIwMDggLTA2MDAKCiAgICBSZW1vdmVkIHVudXNlZCBDT05GSUdfTDFfSU5JVF9SQU0gc3ltYm9sLgoKICAgIFByZXZlbnQgZnVydGhlciB2aXJhbCBwcm9wb2dhdGlvbiBvZiB0aGUgdW51c2VkCiAgICBzeW1ib2wgQ09ORklHX0wxX0lOSVRfUkFNIGJ5IGp1c3QgcmVtb3ZpbmcgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjk4NzM4ZTQ2Y2I0NjFlMjhjMmQ1ODIyOGJiMzRhMmZjZjVhNDc1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyMCAxNDowMjo1NiAyMDA4IC0wNjAwCgogICAgODZ4eDogRml4IG5vbi02NC1iaXQgY29tcGlsYXRpb24gcHJvYmxlbXMuCgogICAgSW50cm9kdWNpbmcgNjQtYml0ICgzNi1iaXQpIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjQxSFBDTgogICAgZmFpbGVkIHRvIGFjY29tb2RhdGUgdGhlIG90aGVyIHR3byA4Nnh4IGJvYXJkcy4KICAgIEludHJvZHVjZSBkZWZpbml0aW9ucyBmb3IgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVNfe0xPVyxISUdIfQogICAgQ09ORklHX1NZU19DQ1NSX0RFRkFVTFRfREJBVHtVLEx9IGFuZCBDT05GSUdfU1lTX0NDU1JfREVGQVVMVF9JQkFUe1UsTH0KICAgIHdpdGggbm9taW5hbCAzMi1iaXQgdmFsdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmViZmM2ZWYzZWM5OTRjOGUxODc4MzI2OWIxZDhkNDFmOGUzOGFmZApBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJV2VkIE5vdiAyNiAxNzo0MDozNyAyMDA4ICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlIGNvbW1hbmQgKGFwcGx5IGFmdGUgVVNCIHN0eWxlIHBhdGNoLCA4MCBjaGFycyBzdHJpY3QpCgogICAgUmVtb3ZlIFVTQiBvYnNvbGV0ZSBjb21tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBkZTM5ZjhjMTlkN2MxMjAxNzI0OGM0OWQ0MzJkY2I4MWRiNjhmNzI0CkF1dGhvcjogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgpEYXRlOglXZWQgTm92IDI2IDE3OjQxOjM0IDIwMDggKzAxMDAKCiAgICBVU0Igc3R5bGUgcGF0Y2gsIDgwIGNoYXJzIHN0cmljdAoKICAgIFVTQiBDb2RlIHN0eWxlIHBhdGNoCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGQxMGM1YTg3Y2I4YWZmYmI0ZDM1YTMxMTM3MDMxNmQ0MzgzZDU5OGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgTm92IDcgMjI6NDY6MjEgMjAwOCArMDEwMAoKICAgIGRyaXZlcnMvdXNiOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCAyMDc3ZTM0OGMyYTg0OTAxMDIyYWQ5NTMxMWI0N2I3MDM2MWU2ZGFhCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjUgMTA6NDc6MDIgMjAwOCAtMDYwMAoKICAgIE5BTkQ6IEZpeCBtaXNwbGFjZWQgcmV0dXJuIHN0YXRlbWVudCBpbiBuYW5kX3tyZWFkLHdyaXRlfV9za2lwX2JhZCgpLgoKICAgIFRoaXMgY2F1c2VkIHRoZSBvcGVyYXRpb24gdG8gYmUgbmVlZGxlc3NseSByZXBlYXRlZCBpZiB0aGVyZSB3ZXJlCiAgICBubyBiYWQgYmxvY2tzIGFuZCBubyBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5Mjk1MDI4ZTdkOGY3YTUyNGY0ODUzMjgyNzlkNzJmZGIxMDIzODUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBOb3YgMjQgMTI6MDk6NTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogbWwzMDAgcmVtb3ZlIFhpbGlueCBCU1AgZnJvbSBtbDMwMCBmb2xkZXIKCiAgICBUaGlzIEJTUCBzaG91bGQgYmUgb3V0c2lkZSB1LWJvb3Qgc291cmNlIHRyZWUuCiAgICBUaGUgc2Vjb25kIHJlYXNvbiBpcyB0aGF0IHhpbGlueCBwcGM0MDUgd2FzIG1vdmVkIHRvIGdlbmVyaWMgcGxhdGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI0ZWVhNjIzZDQ5NzRhMTY5MDI2YTk3NWJhMTJmYjIzZDQ4MTU0YjEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxNToxMToxMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIGZlYXR1cmVzCgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBzb21lIHVudXNlZCBmZWF0dXJlcyBmcm9tIHRoZSBQQ0k0MDUgY29uZmlndXJhdGlvbgogICAgdG8ga2VlcCBVLUJvb3QgaW1hZ2Ugc2l6ZSBiZWxvdyAxOTJrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjMjM4NWMzYmI1MWY1ZDM5MTFmY2UxZWM0NzIwZGI4NmI1MzRjMmIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxNToxMTowOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVc2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgZm9yIFBDSTQwNQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0OGM4NDlkODZhNmYwNzg1NzUyYjliYzQ5N2EzNDY1ODcxM2QxZDEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxNToxMTowOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIGNvZGUgZnJvbSBQQ0k0MDUgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzMzYzOTU4N2UzNTk2ZjBkYmY1ZTYyNDdkZDNmYWY4MGIxZDkwNjMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMCAwOTo1OTowOSAyMDA4ICswMTAwCgogICAgcG93ZXJwYywga2V5bWlsZSBib2FyZHM6IGV4dHJhY3QgaWRlbnRpY2FsIGNvbmZpZyBvcHRpb25zCgogICAgVGhpcyBwYXRjaCBleHRyYWN0cyB0aGUgaWRlbnRpY2FsIGNvbmZpZyBvcHRpb25zIGZvciB0aGUKICAgIGtleW1pbGUgYm9hcmRzIG1nY29nZSwgbWdzdXZkIGFuZCBrbWV0ZXIxIGluIGEgbmV3CiAgICBjb21tb24gY29uZmlnIGZpbGUga2V5bWlsZS1jb21tb24uaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTQ4MmE4ZTNkNmFjNzY2ZDkwZTUwNTlkY2U3NzdiMWU0Yzg2OGEzMApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgTm92IDIxIDA4OjI5OjQwIDIwMDggKzAxMDAKCiAgICBwb3dlcnBjOiBrZXltaWxlOiBBZGQgYSBjaGVjayBmb3IgdGhlIFBJR0dZIGRlYnVnIGJvYXJkCgogICAgQ2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBQSUdHWSBvbiB0aGUga2V5bWlsZSBib2FyZHMgbWdjb2dlLAogICAgbWdzdXZkIGFuZCBrbWV0ZXIxLiBJZiB0aGUgUElHR1kgaXMgbm90IHByZXNlbnQsIGRvbnQgcmVnaXN0ZXIKICAgIHRoaXMgRXRoZXJuZXQgZGV2aWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1OGM2OTZlZWQ4MzlhZjg5NGUwMjY1MDY0NjY5YzQwMmRjMjhiMzcxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAeHBlcnQuZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNCAyMTo1MDo1OSAyMDA4ICswMTAwCgogICAgQVQ5MVJNOTIwMERLOiBmaXggYnJva2VuIGJvb3QgZnJvbSBOT1IgZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgwNTIzNTJmMjBiMzNiZWY4Zjk4NzJmYzk4M2VhYzczZDQ2OTNjMzgKQXV0aG9yOiBKZW5zIFNjaGFyc2lnIDxlc3dAYnVzLWVsZWt0cm9uaWsuZGU+CkRhdGU6CVR1ZSBOb3YgMTggMTA6NDg6NDYgMjAwOCArMDEwMAoKICAgIGF0OTFybTkyMDA6IGZpeCBicm9rZW4gYm9vdCBmcm9tIG5vciBmbGFzaAoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBicm9rZW4gYm9vdCBmcm9tIE5PUiBGbGFzaCBvbiBBVDkxUk05MjAwIGJvYXJkcywgaWYKICAgIENPTkZJR19BVDkxUk05MjAwIGlzIGRlZmluZWQgYW5kIG5vciBwcmVsb2FkZXIgaXMgdXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIFNjaGFyc2lnIDxlc3dAYnVzLWVsZWt0cm9uaWsuZGU+Cgpjb21taXQgMjVlYTY1MmU5MDc1MTZhMjgzYjM4MjM3ZTgzNzEyYTkxOGYxMjVkNwpBdXRob3I6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgpEYXRlOglNb24gTm92IDE3IDE1OjU4OjAwIDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBwcm9vZi1vZi1jb25jZXB0IENGSSBmbGFzaCBzdXBwb3J0CgogICAgV2l0aCB0aGlzIHBhdGNoIFVCSSBjYW4gYmUgdXNlZCBvbiBDRkkgZmxhc2ggY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgWmllY2lrIDxrb3Ntb0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTZhN2VkYmMxNzc4ZDI3NDMxYWM2NjNiNDBhNzFkYWZhNWQyMDU3OApBdXRob3I6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgpEYXRlOglNb24gTm92IDE3IDE1OjU3OjU5IDIwMDggKzAxMDAKCiAgICBtdGQ6IFJlbW92ZSBhIHByaW50ZigpIGZyb20gYWRkX210ZF9kZXZpY2UoKS4KCiAgICBSZW1vdmUgYSBwcmludGYoKSBmcm9tIGFkZF9tdGRfZGV2aWNlKCksIHdoaWNoIHByb2R1Y2VzIHNwdXJpb3VzIG91dHB1dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBaaWVjaWsgPGtvc21vQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MTgwOWVkNTFkODMyN2E4ZGJiZjI5YWE5OGEwOTExNTRjMjgyMTcxCkF1dGhvcjogUGlvdHIgWmllY2lrIDxrb3Ntb0BzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBOb3YgMTcgMTU6NTc6NTggMjAwOCArMDEwMAoKICAgIGNmaS1tdGQ6IEFkZCBjZmktbXRkIGRyaXZlci4KCiAgICBBZGQgY2ZpLW10ZCBkcml2ZXIsIHdoaWNoIGV4cG9ydHMgQ0ZJIGZsYXNoIHRvIE1URCBsYXllci4KICAgIFRoaXMgYWxsb3dzIENGSSBmbGFzaCBkZXZpY2VzIHRvIGJlIHVzZWQgZnJvbSBNVEQgbGF5ZXIuCgogICAgQnVpbGRpbmcgb2YgdGhlIG5ldyBkcml2ZXIgaXMgY29udHJvbGxlZCBieSBDT05GSUdfRkxBU0hfQ0ZJX01URAogICAgb3B0aW9uLiBJbml0aWFsaXphdGlvbiBpcyBkb25lIGJ5IGNhbGxpbmcgY2ZpX210ZF9pbml0KCkgZnJvbQogICAgZmxhc2hfaW5pdCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlYTgwOGVmZGY5YWE1ZDkwNjdmYmZhYzMyYWNkZTg1MzkxMjllZDIKQXV0aG9yOiBQaW90ciBaaWVjaWsgPGtvc21vQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE5vdiAxNyAxNTo0OTozMiAyMDA4ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgaW50ZXJmYWNlIGZvciBmbGFzaCB2ZXJib3NpdHkgY29udHJvbAoKICAgIEFkZCBpbnRlcmZhY2UgZm9yIGZsYXNoIHZlcmJvc2l0eSBjb250cm9sLiBJdCBhbGxvd3MKICAgIHRvIGRpc2FibGUgb3V0cHV0IGZyb20gbG93LWxldmVsIGZsYXNoIEFQSS4gSXQgaXMgdXNlZnVsCiAgICB3aGVuIGNhbGxpbmcgdGhlc2UgbG93LWxldmVsIGZ1bmN0aW9ucyBmcm9tIGNvbnRleHQgb3RoZXIKICAgIHRoYW4gZmxhc2ggY29tbWFuZHMgKGZvciBleGFtcGxlIHRoZSBNVEQvQ0ZJIGludGVyZmFjZQogICAgaW1wbG1lbnRhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgWmllY2lrIDxrb3Ntb0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWJjOTc4NGNlNjUyODM4NWJiOGQyNTU4ZTc4MzYyMmQ0YmJmMjBmOApBdXRob3I6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTm92IDIwIDE1OjE3OjM4IDIwMDggKzAxMDAKCiAgICBjZmlfZmxhc2g6IEV4cG9ydCBmbGFzaF9zZWN0b3Jfc2l6ZSgpIGZ1bmN0aW9uLgoKICAgIEV4cG9ydCBmbGFzaF9zZWN0b3Jfc2l6ZSgpIGZ1bmN0aW9uIGZyb20gZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMsCiAgICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSB1cGNvbWluZyBjZmktbXRkIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBaaWVjaWsgPGtvc21vQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NWFhNWE3ZjRkNWJjYjc5OTI3ZGRmYzg5NmMxZDdjNDMyNmUyMzVkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDE3IDE0OjQ1OjIyIDIwMDggKzAxMDAKCiAgICBjZmlfZmxhc2g6IE1ha2UgYWxsIGZsYXNoIGFjY2VzcyBmdW5jdGlvbnMgd2VhawoKICAgIFRoaXMgcGF0Y2ggZGVmaW5lcyBhbGwgZmxhc2ggYWNjZXNzIGZ1bmN0aW9ucyBhcyB3ZWFrIHNvIHRoYXQKICAgIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYm9hcmQgc3BlY2lmaWMgdmVyc2lvbnMuCgogICAgVGhpcyB3aWxsIGJlIHVzZWQgYnkgdGhlIHVwY29taW5nIFZDVEggYm9hcmQgc3VwcG9ydCB3aGVyZSB0aGUgTk9SCiAgICBGTEFTSCB1bmZvcnR1bmF0ZWx5IGNhbid0IGJlIGFjY2Vzc2VkIG1lbW9yeS1tYXBwZWQuIFNwZWNpYWwKICAgIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGhlcmUuCgogICAgVG8gZW5hYmxlIHRoaXMgd2VhayBmdW5jdGlvbnMgeW91IG5lZWQgdG8gZGVmaW5lCiAgICBDT05GSUdfQ0ZJX0ZMQVNIX1VTRV9XRUFLX0FDQ0VTU09SUyBpbiB5b3VyIGJvYXJkIGNvbmZpZyBoZWFkZXIuCiAgICBPdGhlcndpc2UgdGhlICJvbGQiIGRlZmF1bHQgZnVuY3Rpb25zIHdpbGwgYmUgdXNlZCByZXN1bHRpbmcKICAgIGluIHNtYWxsZXIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGE1YzQwNjcwMTc2MzFkOTAzZTFhZmE2YWQ2MTVmMGNlMTlmZWE1MTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjQgMDg6MzE6MTYgMjAwOCArMDEwMAoKICAgIFVCSTogQ2hhbmdlIHBhcnNpbmcgb2Ygc2l6ZSBpbiBjb21tYW5kcyB0byBkZWZhdWx0IHRvIGhleAoKICAgIEN1cnJlbnRseSB0aGUgc2l6ZSBwYXJhbWV0ZXJzIG9mIHRoZSBVQkkgY29tbWFuZHMgKGUuZy4gInViaSB3cml0ZSIpIGFyZQogICAgZGVjb2RlZCBhcyBkZWNpbWFsIGluc3RlYWQgb2YgaGV4IGFzIGRlZmF1bHQuIFRoaXMgcGF0Y2ggbm93IGludGVycHJldHMKICAgIGFsbCB0aGVzZSB2YWx1ZXMgY29uc2lzdGFudGx5IGFzIGhleCwgYXMgYWxsIG90aGVyIHN0YW5kYXJkIFUtQm9vdCBjb21tYW5kcwogICAgZG8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRlMDFjNzZjM2NjYzRlNmM1OTg5MjI4ZWVkNThlOTU1YTNhMWE5NjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMjEgMTM6MDY6MDYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTUwyIHNob3VsZG4ndCBpbmNsdWRlIHRoZSA0eHggRU1BQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWE2YTAwZGNjNWJkZmM2ZTliNGIwMGYzOWMxZjU4M2E3Zjk2ZmM3ZgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIE5vdiAxNCAxNjoxOToxOSAyMDA4ICswMzAwCgogICAgcHBjNHh4OiBrYXRtYWk6IENoYW5nZSBkZWZhdWx0IGNvbmZpZwoKICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgc3VwcG9ydCBmb3IgRVhUMiwgYW5kIGluY3JlYXNlcyB0aGUKICAgIENPTkZJR19TWVNfQk9PVE1BUFNaIHNpemUgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24KICAgIG9mIHRoZSBrYXRtYWkgYm9hcmRzIHRvIHVzZSB0aGVtIGFzIHRoZSBSQUlELXJlZmVyZW5jZQogICAgQU1DQyBzZXR1cHMuCgogICAgIEVYVDIgZW5hYmxpbmcgYWxsb3dzIG9uZSB0byBib290IGtlcm5lbHMgZnJvbSB0aGUgRVhUMgogICAgZm9ybWF0dGVkIENvbXBhY3QgRmxhc2ggY2FyZHMuCgogICAgIENPTkZJR19TWVNfQk9PVE1BUFNaIGluY3JlYXNpbmcgYWxsb3dzIG9uZSB0byBib290IHRoZQogICAgTGludXgga2VybmVscywgd2hpY2ggdXNlIFBBR0VfU0laRSBvZiAyNTZLQi4gT3RoZXJ3aXNlLAogICAgdGhlIG1lbW9yeSBhcmVhIHdpdGggRFRCIGZpbGUgKHdoaWNoIGlzIHBsYWNlZCBhdCB0aGUKICAgIGVuZCBvZiB0aGUgYm9vdG1hcCBhcmVhKSB3aWxsIHR1cm4gb3V0IHRvIGJlIG92ZXJsYXBwZWQKICAgIHdpdGggdGhlIEJTUyBzZWdtZW50IG9mIHRoZSAyNTZLQiBrZXJuZWwsIGFuZCB6ZXJvZWQKICAgIGluIGVhcmx5X2luaXQoKSBvZiBMaW51eC4KCiAgICAgQWN0dWFsbHksIGluY3JlYXNpbmcgb2YgdGhlIGJvb3RtYXAgc2l6ZSBjb3VsZCBiZSBkb25lCiAgICB2aWEgc2V0dGluZyBvZiB0aGUgYm9vdG1fc2l6ZSBVLUJvb3QgdmFyaWFibGUsIGJ1dCBpdCBsb29rcwogICAgbGlrZSB0aGUgY3VycmVudCBVLUJvb3QgaW1wbGVtZW50YXRpb24gaGF2ZSBzb21lIGJvb3RtX3NpemUtCiAgICByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgbG9zdC4gSW4gbWFueSBwbGFjZXMgdGhyb3VnaCB0aGUgVS1Cb290CiAgICBjb2RlIHRoZSBDT05GSUdfU1lTX0JPT1RNQVBTWiBkZWZpbml0aW9uIGlzIHVzZWQgZGlyZWN0bHkKICAgIChpbnN0ZWFkIG9mIHRyeWluZyB0byByZWFkIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZyb20gdGhlCiAgICBlbnZpcm9ubWVudCkuIFRoZSBzYW1lIGlzIHRydXRoIGZvciB0aGUgYm9vdF9qdW1wX2xpbnV4KCkKICAgIGZ1bmN0aW9uIGluIGxpYl9wcGMvYm9vdG0uYywgd2hlcmUgVS1Cb290IHRyYW5zZmVycyBjb250cm9sCiAgICB0byBMaW51eCBwYXNzaW5nIHRoZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAobm90IGJvb3RtX3NpemUpCiAgICB2YWx1ZSB0byB0aGUgYm9vdGluZyBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGRmNDVjYzc1OGQzOTQ1OTFmYjliY2RjYmU5NjUzMGY3MzNmMmJjZQpBdXRob3I6IERhdmUgTWl0Y2hlbGwgPGRtaXRjaDcxQGdtYWlsLmNvbT4KRGF0ZToJVGh1IE5vdiAyMCAxNDowOTo1MCAyMDA4IC0wNjAwCgogICAgcHBjNHh4OiBDaGFuZ2VkIDQ2MEVYL0dUIE9DTSBUTEIgYW5kIGludGVybmFsIFNSQU0gaW5pdGlhbGl6YXRpb24KCiAgICBFeHBhbmRlZCBPQ00gVExCIHRvIGFsbG93IGFjY2VzcyB0byA2NEsgT0NNIGFzIHdlbGwgYXMgMjU2SyBvZgogICAgaW50ZXJuYWwgU1JBTS4KCiAgICBBZGp1c3RlZCBpbnRlcm5hbCBTUkFNIGluaXRpYWxpemF0aW9uIHRvIG1hdGNoIHVwZGF0ZWQgdXNlcgogICAgbWFudWFsIHJlY29tbWVuZGF0aW9uLgoKICAgIE9DTSAmIElTUkFNIGFyZSBub3cgbWFwcGVkIGFzIGZvbGxvd3M6CgkgICAgcGh5c2ljYWwJICAgIHZpcnR1YWwJICAgIHNpemUKICAgIElTUkFNICAgMHg0XzAwMDBfMDAwMCAgIDB4RTMwMF8wMDAwICAgICAyNTZrCiAgICBPQ00gICAgIDB4NF8wMDA0XzAwMDAgICAweEUzMDRfMDAwMCAgICAgNjRrCgogICAgQSBzaW5nbGUgVExCIHdhcyB1c2VkIGZvciB0aGlzIG1hcHBpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBNaXRjaGVsbCA8ZG1pdGNoNzFAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGIxNGNhNGI2MWE2ODFmNzVmMzEyNTY3NmUwOWQ3Y2U2YWY2NmU5MjcKQXV0aG9yOiBEYXZlIE1pdGNoZWxsIDxkbWl0Y2g3MUBnbWFpbC5jb20+CkRhdGU6CVRodSBOb3YgMjAgMTQ6MDA6NDkgMjAwOCAtMDYwMAoKICAgIHBwYzR4eDogQWRkZWQgcHBjNHh4LWlzcmFtLmggZm9yIGludGVybmFsIFNSQU0gYW5kIEwyIGNhY2hlIERDUnMKCiAgICBBZGRlZCBpbmNsdWRlL2FzbS1wcGMvcHBjNHh4LWlzcmFtLmggYW5kIG1vdmVkIGludGVybmFsIFNSQU0gYW5kCiAgICBMMiBjYWNoZSBEQ1JzIGZyb20gcHBjNDQwLmggdG8gdGhpcyBuZXcgaGVhZGVyLgoKICAgIEFsc28gY29udmVydGVkIHRoZXNlIERDUiBkZWZpbmVzIGZyb20gbG93ZXJjYXNlIHRvIHVwcGVyY2FzZSBhbmQKICAgIG1vZGlmaWVkIHJlZmVyZW5jaW5nIG1vZHVsZXMgdG8gdXNlIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBNaXRjaGVsbCA8ZG1pdGNoNzFAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcxMWUyYjJhZjgyMGQyMWQ5OTMxZDRjZjgwNTdkMzg5NDYwMGZkNTQKQXV0aG9yOiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgpEYXRlOglUaHUgTm92IDIwIDE0OjM3OjU3IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IERlbGV0ZSB1bnVzZWQgZGVmaW5pdGlvbnMgZm9yIFNEUjBfRERSQ0ZHIGZyb20gcHBjNHh4LmgKCiAgICBUaGUgZGVmaW5pdGlvbnMgb2YgYml0cyBpbiBTRFJfQ0ZHIGFyZSBpbmNvcnJlY3QsIGFuZCBub3QgdXNlZCB3aXRoaW4KICAgIFUtQm9vdC4gIFRoZXJlZm9yZSwgdGhleSBjYW4gYmUgcmVtb3ZlZC4KCiAgICBUaGUgbmFtaW5nIG9mIHRoZSBzZHJfZGRyZGwvc2RyX2NmZyByZWdpc3RlcnMgZG8gbm90IGZvbGxvdyBjb252ZW50aW9ucywKICAgIGFuZCBhcmUgdW51c2VkLCBzbyB0aGV5IGNhbiBiZSByZW1vdmVkIHRvby4KCiAgICBBIGRlZmluaXRpb24gZm9yIFNEUjBfRERSQ0ZHIGlzIGFkZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlbiBBLiBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTIzYzdjOTVhOTZlYjBmMDY4ZWZlNWM1MzIyMTVhMTBhMTUxMmE5NQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgpEYXRlOglNb24gTm92IDEwIDIwOjE1OjI1IDIwMDggKzAxMDAKCiAgICBBUk06IE9NQVA6IENvbnZlcnQgSU8gbWFjcm9zCgogICAgQ29udmVydCBJTyBtYWNyb3MgdG8gcmVhZHgvd3JpdGV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDI2M2I3NDllMmUyNTQ3M2E0ODc3NmQzMTdiZDJhN2UyZGRjZGQyMTIKQXV0aG9yOiBJbGtvIElsaWV2IDxpbGlldkByb25ldGl4LmF0PgpEYXRlOglTdW4gTm92IDkgMTU6NTM6MTQgMjAwOCArMDEwMAoKICAgIGxpYl9hcm06IGRvX2Jvb3RtX2xpbnV4KCkgLSBjb3JyZWN0IGEgc21hbGwgbWlzdGFrZQoKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSBzbWFsbCBidWcgaW4gdGhlICJpZiIgY29uZGl0aW9uOgogICAgdGhlIHBhcmFtZXRlciAiZmxhZyIgaXMgMCBhbmQgdGhlICJpZiIgY29uZGl0aW9uIGlzIGFsd2F5cyB0cnVlLgogICAgVGhlIHJlc3VsdCBpcyAtIHRoZSBib29tIGNvbW1hbmQgZG9lc24ndCBzdGFydCB0aGUga2VybmVsLgogICAgQWZmZWN0ZWQgdGFyZ2V0czogYWxsIGFybSBiYXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbGtvIElsaWV2IDxpbGlldkByb25ldGl4LmF0PgoKY29tbWl0IDNlMGNkYTA3MWE2N2NiNTcwOWUzZmE0ZmFmNmIzMWE3MzE4NTlhY2MKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTdW4gTm92IDkgMDA6MTQ6NDYgMjAwOCArMDEwMAoKICAgIEFUOTE6IEVuYWJsZSBQTExCIGZvciBVU0IKCiAgICBBdCBsZWFzdCBzb21lIChvbGQgPykgdmVyc2lvbnMgb2YgdGhlIEFUOTFCb290c3RyYXAgZG8gbm90IHNldCB1cCB0aGUKICAgIFBMTEIgY29ycmVjdGx5IHRvIDQ4IE1IeiBpbiBvcmRlciB0byBtYWtlIFVTQiBob3N0IGZ1bmN0aW9uIGNvcnJlY3RseS4KCiAgICBUaGlzIHBhdGNoIHNldHMgdXAgdGhlIFBMTEIgdG8gdGhlIHNhbWUgdmFsdWVzIExpbnV4IHVzZXMsIGFuZCBtYWtlcyBVU0IKICAgIHdvcmsgb2sgb24gdGhlIGZvbGxvd2luZyBDUFVzOgoJLSBBVDkxQ0FQOQoJLSBBVDkxU0FNOTI2MAoJLSBBVDkxU0FNOTI2MwoKICAgIFRoaXMgcGF0Y2ggYWxzbyBkZWZpbmVzIENPTkZJR19VU0JfU1RPUkFHRSBhbmQgQ09ORklHX0NNRF9GQVQgZm9yIGFsbAogICAgdGhlIHJlbGV2YW50IEFUOTFDQVA5L0FUOTFTQU05IGF0bWVsIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhZDIyOWE0NGUxNjJhZjBmNjVlNTdlNGUzZGMxMzNkNWYwMzY0ZWNiCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJRnJpIE5vdiA3IDEzOjU1OjE0IDIwMDggKzAxMDAKCiAgICBBVDkxOiBVc2UgQVQ5MV9DUFVfQ0xPQ0sgaW4gZGlzcGxheXMKCiAgICBJbnRyb2R1Y2UgQVQ5MV9DUFVfQ0xPQ0sgYW5kIHVzZSBpdCBmb3IgZGlzcGxheWluZyB0aGUgQ1BVCiAgICBzcGVlZCBpbiB0aGUgTENEIGRyaXZlci4KCiAgICBBbHNvIG1ha2UgQVQ5MV9NQUlOX0NMT0NLIGFuZCBBVDkxX01BU1RFUl9DTE9DSyByZWZsZWN0IHRoZQogICAgY29ycmVzcG9uZGluZyBib2FyZCBjbG9ja3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBmZWQzNmFjNWFlNjEzNzczYjZjZDkwZTYxZTI5MmM0NTQ0MGUxMGM4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjAgMDk6NTc6NDcgMjAwOCArMDEwMAoKICAgIHBvd2VycGM6IDgzeHg6IGFkZCBzdXBwb3J0IGZvciB0aGUga21ldGVyMSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUga21ldGVyMSBib2FyZCBmcm9tIEtleW1pbGUsCiAgICBiYXNlZCBvbiBhIEZyZWVzY2FsZSBNUEM4MzYwIENQVS4KCiAgICAtIHNlcmlhbCBjb25zb2xlIG9uIFVBUlQgMQogICAgLSAyNTYgTUIgRERSMiBSQU0KICAgIC0gNjQgTUIgTk9SIEZsYXNoCiAgICAtIEV0aGVybmV0IFJNSUkgTW9kZSBvdmVyIFVDQzQKICAgIC0gUEhZIFNNU0MgTEFOODcwMAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNWZiNGVhYWVhYjNmODg2NjAyMDgxOGY0NzI5ZDk5MGRjYzkxY2YwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDIwIDExOjQ2OjIwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IENsZWFyIGFsbCBwb3RlbnRpYWxseSBwZW5kaW5nIGV4Y2VwdGlvbnMgaW4gTUNTUgoKICAgIFRoaXMgaXMgbmVlZGVkIG9uIENhbnlvbmxhbmRzIHdoaWNoIHN0aWxsIGhhcyBhbiBleGNlcHRpb24gcGVuZGluZwogICAgd2hpbGUgcnVubmluZyByZWxvY2F0ZV9jb2RlKCkuIFRoaXMgbGVhZHMgdG8gYSBmYWlsdXJlIGFmdGVyIHRyYXBfaW5pdCgpCiAgICBpcyBtb3ZlZCB0byB0aGUgdG9wIG9mIGJvYXJkX2luaXRfcigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYWNkYWQ1ZjI2MDJlODk5YTAxNzQ2OTE2YmVkZGJmOWU4NTZiNWVlCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMTkgMTA6MTA6MzAgMjAwOCArMDEwMAoKICAgIHBvd2VycGM6IDgzeHg6IGFkZCBtaXNzaW5nIFRJTUlOR19DRkcxX0NBU0xBVF8qIGRlZmluZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmYyYTVjMzcxNGQxN2Y0ZWFkMThiNzEzMTI4YjcyMjZlMGU4MjJmNApBdXRob3I6IEhvd2FyZCBHcmVnb3J5IDxHcmVnLkhvd2FyZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDQgMTQ6NTU6MzMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIEREUiBtZW1vcnkKCiAgICBtb2RpZnkgdGhlIENBUyB0aW1pbmdzLiBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlc2UKICAgIHNldHRpbmdzIGRlY3JlYXNlIHZhcmlvdXMgd2FpdCB0aW1lcyBpbiB0aGUgRERSIGludGVyZmFjZS4KICAgIEJlY2F1c2UgdGhlc2Ugd2FpdCB0aW1lcyBhcmUgaW4gY2xvY2sgY3ljbGVzLCBhbmQgdGhlIEREUgogICAgY2xvY2sgb24gdGhlIDgzMTUgUkRCIHJ1bnMgc2xvd2VyIHRoYW4gb24gc29tZSBvdGhlciA4M3h4CiAgICBwbGF0Zm9ybXMsIHdlIGNhbiBkaWFsIGRvd24gdGhlc2UgdmFsdWVzIHdpdGhvdXQgYSBwcm9ibGVtLAogICAgdGhlcmVieSBkZWNyZWFzaW5nIHRoZSBsYXRlbmN5IG9mIG1lbW9yeSBhIGxpdHRsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIb3dhcmQgR3JlZ29yeSA8R3JlZy5Ib3dhcmRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwMDBiMDg2YjMzYTVhODFmM2YzOTBmMzdlMTc4ZGI3OTU2ZGMwOGIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglGcmkgT2N0IDI0IDE0OjU1OjMzIDIwMDggKzAyMDAKCiAgICBBUk06IEFkZCBBcG9sbG9uIFVCSSBzdXBwb3J0CgogICAgVG8gZW5hYmxlIFVCSSBvbiBBcG9sbG9uIHlvdSBuZWVkIHRvIHVuY29tbWVudCB0aGUgQ09ORklHX1NZU19VU0VfVUJJCiAgICBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY5NGEwYjNmMWMwYWNjZDBkZTk0Yjg5NTU1MTU1ZDY5ZjgwMjI4MjQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDExOjQ3OjA1IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBVQkkgY29tbWFuZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZXNlIFVCSSBjb21tYW5kczoKCiAgICB1YmkgcGFydCBbbmFuZHxvbmVuYW5kXSBbcGFydF0gLSBTaG93IG9yIHNldCBjdXJyZW50IHBhcnRpdGlvbgogICAgdWJpIGluZm8gW2xbYXlvdXRdXSAtRGlzcGxheSB2b2x1bWUgYW5kIFVCSSBsYXlvdXQgaW5mb3JtYXRpb24KICAgIHViaSBjcmVhdGVbdm9sXSB2b2x1bWUgW3NpemVdIFt0eXBlXSAtIENyZWF0ZSB2b2x1bWUgbmFtZSB3aXRoIHNpemUKICAgIHViaSB3cml0ZVt2b2xdIGFkZHJlc3Mgdm9sdW1lIHNpemUgLSBXcml0ZSB2b2x1bWUgZnJvbSBhZGRyZXNzIHdpdGggc2l6ZQogICAgdWJpIHJlYWRbdm9sXSBhZGRyZXNzIHZvbHVtZSBbc2l6ZV0gLSBSZWFkIHZvbHVtZSB0byBhZGRyZXNzIHdpdGggc2l6ZQogICAgdWJpIHJlbW92ZVt2b2xdIHZvbHVtZSAtIFJlbW92ZSB2b2x1bWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4YmUzYTEwNTZkODhjNmQwNWYzZTkxNDM4OTI4MjgwN2U2OTkyM2EKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjM4OjI0IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgOC84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ3YWU2NjkzZjU0ZjgwNDU1YWUzMmMyZTBkOTk1ZTBlNGJkYzE1YjkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjM2OjM2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNy84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlNmVlN2FkMjdkZTUyMTZkYjFiYWVmNzZmMzhjMzQyOWM4ZjRhMmEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjMyOjM2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNi84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM5MWE3MTlkYWEzMzFiNTg1NjEwOTMxMzM3MWU0ZWNlNWVjMDZkOTYKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI4OjA2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNS84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY0MTJmZWZhMDc5YzZhYTlhOTc2M2Y2ODY5YmY3ODdlYTZiZjZlMWIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI3OjIzIDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNC84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkMjYyYzQ4NTNjYjViNmRkY2UxYTI4YTk2NDFmMmRlMzY4OGQ3ZWEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI2OjU0IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgMy84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2MWRmODMzNjFhZmY5YTE0ZjIyNjIxNDIyNGViOGEwNmUwNWJhMjQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI1OjQ0IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgMi84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYzOTlkNGEyODE3MTNkNWVmMmQ3NjRmMDVkNTQ1ZmU2MWUzYmQ1NjkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjIzOjA2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgMS84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUyOWMyMmY1YWJlNmUwZjRiYWE2MjUxZWZlZDYwNzRjZGZjM2RiNzkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjIwOjM2IDIwMDggKzAxMDAKCiAgICBNVEQ6IEFkZCBNVEQgcGFyaXRpb25pbmcgaW5mcmFzdHJ1Y3R1cmUKCiAgICBUaGlzIE1URCBwYXJ0IGluZnJhc3RydWN0dXJlIHdpbGwgYmUgdXNlZCBieSB0aGUgdXBjb21pbmcKICAgIFVCSSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWI4MjdjZjE3MjBhY2RhMjQ3M2FmYTUxNjk1NmVhYjZmN2NjYTlhMQpBdXRob3I6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KRGF0ZToJVGh1IE9jdCAxNiAyMjo1NDowMyAyMDA4ICswNTMwCgogICAgQWxpZ24gZW5kIG9mIGJzcyBieSA0IGJ5dGVzCgogICAgTW9zdCBvZiB0aGUgYnNzIGluaXRpYWxpemF0aW9uIGxvb3AgaW5jcmVtZW50cyA0IGJ5dGVzCiAgICBhdCBhIHRpbWUuIEFuZCB0aGUgbG9vcCBlbmQgaXMgY2hlY2tlZCBmb3IgYW4gJ2VxdWFsJwogICAgY29uZGl0aW9uLiBNYWtlIHRoZSBic3MgZW5kIGFkZHJlc3MgYWxpZ25lZCBieSA0LCBzbwogICAgdGhhdCB0aGUgbG9vcCB3aWxsIGVuZCBhcyBleHBlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZWx2YW11dGh1a3VtYXIgPHNlbHZhLm11dGh1a3VtYXJAZS1jb25pbmZvdGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNmNTEwZGI1MjJkMTYwMTc5ZGZmM2RkY2NlOWIxOGY2MjQxYzJjMjQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiAxMCAxOTo0NTozNSAyMDA4IC0wNjAwCgogICAgbXBjODY0MTogZml4IGFkZHJlc3MtY2VsbHMgZGVmYXVsdCBpbiBvbGQgLmR0cyBkZXRlY3Rpb24KCiAgICBhZGRyZXNzLWNlbGxzIGRlZmF1bHRzIHRvIDIsIG5vdCAxOyBzbyBpbiB0aGUgdW5saWtlbHkKICAgIGV2ZW50IHRoYXQgaXQgaXNuJ3Qgc3BlY2lmaWVkLCB0aGlzIHBhdGNoIGlzIHJlcXVpcmVkCiAgICBmb3IgY29ycmVjdCBvcGVyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDAyNWFhNGIyMGEwNjE4YTJiYWRhMDEzMmE5YTBhNGFmYjcxN2YxYQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMxIDE3OjE0OjM5IDIwMDggLTA1MDAKCiAgICBsaWJfcHBjOiBNb3ZlIHRyYXBfaW5pdCB0byBvY2N1ciBlYXJsaWVyCgogICAgRG9pbmcgdHJhcF9pbml0IGltbWVkaWF0ZWx5IG9uY2Ugd2UncmUgcnVubmluZyBmcm9tIFJBTQogICAgbWVhbnMgd2UncmUgbm8gbG9uZ2VyIGRlcGVuZGVudCBvbiB0aGUgcGh5c2ljYWwgbG9jYXRpb24gb2YKICAgIHRoZSBmbGFzaCBvbiBub24tQm9va0UgcGxhdGZvcm1zLiBCZWZvcmUgdHJhcF9pbml0LCB0aG9zZQogICAgcGxhdGZvcm1zIHN3aXRjaCB0byByZWFsIG1vZGUgYW5kIGdvIHRvIDB4ZmZmMDAxMDAgb24gZXhjZXB0aW9uLgogICAgQWZ0ZXIgdGhlIHN3aXRjaCwgdGhleSBnbyB0byAweDAwMDAwMTAwICBUaGlzIG1ha2VzIGl0IGVhc2llciB0bwogICAgbW92ZSB0aGUgZmxhc2ggbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDUyMDgyYjEyYzZlNTQ1NzA1YTE5NDMzYTJmNDE0MjUyNjUzNjE4OQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDcgMTM6NDY6MTkgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IFRyeSB0byBkZXRlY3Qgb2xkIC5kdHMgZmlsZXMKCiAgICBTaW5jZSB3ZSd2ZSBjaGFuZ2VkIHRoZSBtZW1vcnkgbWFwIG9mIHRoZSBib2FyZCwgYmUgbmljZSBhbmQKICAgIGFkZCBzb21lIGNoZWNraW5nIHRvIHRyeSB0byBjYXRjaCBvdXQtb2YtZGF0ZSAuZHRzIGZpbGVzLiAgV2UgZG8KICAgIHRoaXMgYnkgY2hlY2tpbmcgdGhlIENDU1JCQVIgbG9jYXRpb24gaW4gdGhlIC5kdHMgYW5kIGNvbXBhcmluZwogICAgaXQgdG8gdGhlIENDU1JCQVIgbG9jYXRpb24gaW4gdS1ib290LiAgSWYgdGhleSBkb24ndCBtYXRjaCwgYQogICAgd2FybmluZyBtc2cgaXMgcHJpbnRlZC4gIFRoaXMgaXNuJ3QgZm9vbHByb29mLCBidXQgaXQncyBzaW1wbGUgYW5kCiAgICB3aWxsIGNhdGNoIG1vc3Qgb2YgdGhlIGNhc2VzIHdoZXJlIGFuIG91dC1vZi1kYXRlIC5kdHMgaXMgcHJlc2VudCwKICAgIGluY2x1ZGluZyBhbGwgb2YgdGhlIGNhc2VzIHdoZXJlIGEgbmV3IHUtYm9vdCBpcyB1c2VkIHdpdGggYW4gb2xkCiAgICBzdGFuZGFyZCBNUEM4NjQxIC5kdHMgZmlsZSBhcyBzdXBwbGllZCB3aXRoIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkYjA0MDBhMjc4MzlmOTFjMDQ3ZGNiODNmNGEwZjA5ZTA1NGExODAKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA2IDEzOjA0OjA5IDIwMDggLTA2MDAKCiAgICB0b3BsZXZlbCBNYWtlZmlsZTogQWRkIE1QQzg2NDFIUENOXzM2QklUIHRhcmdldAoKICAgIFRoaXMgd2lsbCBlbmFibGUgQ09ORklHX1BIWVNfMzZCSVQgZm9yIE1QQzg2NDFIUENOLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMxMTFkMzJjNDk0ZTgyNTFiOTA5MTc0NDc3OTZhNzIwNmI3NTdlMWUKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA2IDE3OjM3OjM1IDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBTdXBwb3J0IDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzaW5nCgogICAgVGhpcyBwYXRjaCBjcmVhdGVzIGEgbWVtb3J5IG1hcCB3aXRoIGFsbCB0aGUgZGV2aWNlcwogICAgaW4gMzYtYml0IHBoeXNpY2FsIHNwYWNlLCBpbiBhZGRpdGlvbiB0byB0aGUgMzItYml0IG1hcC4KICAgIFRoZSBDQ1NSIHJlbG9jYXRpb24gaXMgbW92ZWQgKGFnYWluLCBzb3JyeSkgdG8KICAgIGFsbG93IGZvciB0aGUgcGh5c2ljYWwgYWRkcmVzcyB0byBiZSAzNiBiaXRzIC0gdGhpcwogICAgcmVxdWlyZXMgdHJhbnNsYXRpb24gdG8gYmUgZW5hYmxlZC4gIFdpdGggMzYtYml0IHBoeXNpY2FsCiAgICBhZGRyZXNzaW5nIGVuYWJsZWQsIHdlIGFyZSBubyBsb25nZXIgcnVubmluZyB3aXRoIFZBPVBBCiAgICB0cmFuc2xhdGlvbnMuICBUaGlzIG1lYW5zIHdlIGhhdmUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgogICAgdGhlIHR3byBpbiB0aGUgY29uZmlnIGZpbGUuICBUaGUgZXhpc3RpbmcgcmVnaW9uIG5hbWUgaXMKICAgIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHZpcnR1YWwgYWRkcmVzcywgYW5kIGEgX1BIWVMgdmFyaWV0eQogICAgaXMgY3JlYXRlZCB0byByZXByZXNlbnQgdGhlIHBoeXNpY2FsIGFkZHJlc3MuCgogICAgTGFyZ2UgcGh5c2ljYWwgYWRkcmVzc2luZyBpcyBub3QgZW5hYmxlZCBieSBkZWZhdWx0LgogICAgU2V0IENPTkZJR19QSFlTXzY0QklUIGluIHRoZSBjb25maWcgZmlsZSB0byB0dXJuIHRoaXMgb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzc1OWEwMWEwMDIyZGU5Mzc4YTNhNzYxZjQ5Nzg2Zjg3Njg0YzkxNgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDYgMTc6MzY6MDQgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IENoYW5nZSAzMi1iaXQgbWVtb3J5IG1hcAoKICAgIFRoZSBtZW1vcnkgbWFwIG9uIHRoZSA4NjQxaHBjbiBpcyBtb2RpZmllZCB0byBsb29rIG1vcmUgbGlrZQogICAgdGhlIDg1eHggYm9hcmRzOyB0aGlzIGlzIGEgc3RlcCB0b3dhcmRzIGEgbW9yZSBzdGFuZGFyZGl6ZWQKICAgIGxheW91dCBnb2luZyBmb3J3YXJkLiBBcyBwYXJ0IG9mIHRoaXMgY2hhbmdlLCB3ZSBub3cgcmVsb2NhdGUKICAgIHRoZSBmbGFzaC4KCiAgICBUaGUgcmVnaW9ucyBmb3Igc29tZSBvZiB0aGUgbWFwcGluZ3Mgd2VyZSBmYXIgbGFyZ2VyIHRoYW4gdGhleQogICAgbmVlZGVkIHRvIGJlLiAgSSBoYXZlIHJlZHVjZWQgdGhlIG1hcHBpbmdzIHRvIG1hdGNoIHRoZQogICAgYWN0dWFsIHNpemVzIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUuCgogICAgSW4gYWRkaXRpb24gSSBoYXZlIHJlbW92ZWQgdGhlIGNvbW1lbnRzIGF0IHRoZSBoZWFkCiAgICBvZiB0aGUgQkFUIGJsb2NrcyBpbiB0aGUgY29uZmlnIGZpbGUsIHJhdGhlciB0aGFuIHVwZGF0aW5nCiAgICB0aGVtLiAgVGhlc2UgZ2V0IGhvcnJpYmx5IG91dCBvZiBkYXRlLCBhbmQgaXQncyBhIHNpbXBsZQogICAgbWF0dGVyIHRvIGxvb2sgYXQgdGhlIGRlZmluZXMgdG8gc2VlIHdoYXQgdGhleSBhcmUgc2V0IHRvCiAgICBzaW5jZSBldmVyeXRoaW5nIGlzIHJpZ2h0IGhlcmUgaW4gdGhlIHNhbWUgZmlsZS4KCiAgICBEb2N1bWVudGF0aW9uIGhhcyBiZWVuIGNoYW5nZWQgdG8gcmVmbGVjdCB0aGUgbmV3IG1hcCwgYXMgdGhpcwogICAgY2hhbmdlIGlzIHVzZXIgdmlzaWJsZSwgYW5kIGFmZmVjdHMgdGhlIE9TIHdoaWNoIHJ1bnMgcG9zdC11Ym9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjlhOGMzNDMwOWVkOTI3NjI1ODI5NWRiOWU5MjEyYWFiYjI1MzFhCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNSAxNDo1NTozNSAyMDA4IC0wNjAwCgogICAgbXBjODZ4eDogQ2hhbmdlIGVhcmx5IEZMQVNIIG1hcHBpbmcgdG8gMU0gYXQgQ09ORklHX01PTklUT1JfQkFTRV9FQVJMWQoKICAgIFdlIGRlZmluZSBDT05GSUdfTU9OSVRPUl9CQVNFX0VBUkxZIHRvIGRlZmluZSB0aGUgaW5pdGlhbCBsb2NhdGlvbgogICAgb2YgdGhlIGJvb3RwYWdlIGluIGZsYXNoLglVc2UgdGhpcyB0byBjcmVhdGUgYW4gZWFybHkgbWFwcGluZwogICAgZGVmaW5pdGlvbiBmb3IgdGhlIEZMQVNILCBhbmQgY2hhbmdlIHRoZSBlYXJseV9iYXRzIGNvZGUgdG8gdXNlIHRoaXMuCgogICAgVGhpcyAgY2hhbmdlIGZhY2lsaXRhdGVzIHRoZSByZWxvY2F0aW9uIG9mIHRoZSBmbGFzaCBzaW5jZSB0aGUgZWFybHkKICAgIG1hcHBpbmdzIGFyZSBubyBsb25nZXIgdGllZCB0byB0aGUgZmluYWwgbG9jYXRpb24gb2YgdGhlIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxZTFjZjY5NTQ3YjEzODE3M2Y4N2E3ZjgxYzQyYTVkOGRiZmRlM2QKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA1IDE0OjU1OjM0IDIwMDggLTA2MDAKCiAgICBtcGM4Nnh4OiBVc2UgU1JSMC8xL3JmaSB0byBlbmFibGUgYWRkcmVzcyB0cmFuc2xhdGlvbiwgbm90IGJscgoKICAgIFVzaW5nIGEgbXRtc3IvYmxyIG1lYW5zIHRoYXQgeW91IGhhdmUgdG8gYmUgZXhlY3V0aW5nIGF0IHRoZQogICAgc2FtZSB2aXJ0dWFsIGFkZHJlc3Mgb25jZSB5b3UgZW5hYmxlIHRyYW5zbGF0aW9uLiAgVGhpcyBpcwogICAgdW5uZWNlc3NhcmlseSByZXN0cmljdGl2ZSwgYW5kIGlzIG5vdCByZWFsbHkgaG93IHRoaXMgaXMKICAgIHVzdWFsbHkgZG9uZS4gIENoYW5nZSBpdCB0byB1c2UgdGhlIG1vcmUgY29tbW9uIG10c3ByIFNSUjAvU1JSMQogICAgYW5kIHJmaSBtZXRob2QuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmJmOThiMTM2MmYwY2IyMzc2MjAzNTVlZDNlNjc2MmZmZjgyMzg4ZApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDUgMTQ6NTU6MzMgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IG1ha2UgRElBR19BRERSID09IEZMQVNIX0JBU0UKCiAgICBDdXJyZW50bHksIHRoYXQncyB3aGF0IGl0IGlzLCBidXQgaXQncyBoYXJkY29kZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTcwZGVhY2IxZGRjMzkxNjRiZGI2OGYzOTYzZTBjMDQ1NmE1MzY5YgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDUgMTQ6NTU6MzIgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IERyb3AgaW1hZ2luYXJ5IHNlY29uZCBmbGFzaCBiYW5rLCBtYXAgOE1CCgogICAgVGhlcmUncyBhIGxvdCBvZiBzZXR1cCBhbmQgZm9vIGZvciB0aGUgc2Vjb25kIGZsYXNoCiAgICBiYW5rLiAgVGhlIHByb2JsZW0gaXMsIHRoaXMgYm9hcmQgZG9lc24ndCBhY3R1YWxseSBoYXZlIG9uZS4KICAgIENsZWFuIHRoaXMgdXAuICBBbHNvLCB0aGUgZmxhc2ggaXMgOE0gaW4gc2l6ZS4gIEdldCByaWQKICAgIG9mIHRoZSBjb25mdXNpbmcgYWxpYXNlZCBvdmVybWFwcGluZywgYW5kIGp1c3QgbWFwIDhNLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBmMmQ2NjAyN2JmYzYwZGM3ZWVhMmYwOTZhZjg4OTE5ODhjNWFiZTQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA1IDE0OjU1OjMxIDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBvbmx5IGRlZmluZSBDT05GSUdfRU5WX1NJWkUgb25jZQoKICAgIEl0J3MgY3VycmVudGx5IGRlZmluZWQgdHdpY2UgaW5zaWRlIGluIGFuIGlmL2Vsc2UgYmxvY2ssIGJ1dAogICAgYm90aCBoYWx2ZXMgc2V0IHRoZSBzYW1lIHZhbHVlLiAgTW92ZSB0aGUgZGVmaW5lIG91dHNpZGUKICAgIHRoZSBpZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNGJmYjQ4YzM1ZmVkNmFkMWYwNDdlM2U0YTI3ZGYzMDI0ODJjZDkzCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNSAxNDo1NTozMCAyMDA4IC0wNjAwCgogICAgbXBjODZ4eDogTW92ZSBzZXR1cF9iYXRzIGludG8gY3B1X2luaXRfZgoKICAgIEluIG9yZGVyIHRvIGxhdGVyIGFsbG93IGZvciBhIHBoeXNpY2FsIHJlbG9jYXRpb24gb2YgdGhlCiAgICBmbGFzaCwgc2V0dXBfYmF0cywgd2hpY2ggc2V0cyB1cCB0aGUgZmluYWwgQkFUIG1hcHBpbmcKICAgIGZvciB0aGUgYm9hcmQsIG5lZWRzIHRvIGhhcHBlbiAqYWZ0ZXIqIGluaXRfbGF3cygpLgogICAgT3RoZXJ3aXNlLCB0aGVyZSB3aWxsIGJlIG5vIHdpbmRvdyBwcm9ncmFtbWVkIGZvciB0aGUgZmxhc2gKICAgIGF0IHRoZSBuZXcgcGh5c2ljYWwgbG9jYXRpb24gYXQgdGhlIHBvaW50IHdoZW4gd2UgY2hhbmdlCiAgICB0aGUgbW11IHRyYW5zbGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA1ZGYzZTVhNjM4YmU4YzViMDg5OWVhZTE3NjZiYmU4ZTRiOTJjMTcKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA1IDE0OjU1OjI5IDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBSZW1vdmUgZXh0cmEgIjAiIGZyb20gQlIyIGRlZmluZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVkZjNmZTdkMzlhMWVlMDczNTMxMjhhZjUyMjE0MjJjZTljY2ZhZDYKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgpEYXRlOglUaHUgT2N0IDIzIDA5OjA4OjE4IDIwMDggLTA0MDAKCiAgICBkcml2ZXJzL3FlL3VlY19waHkuYzogQWRkZWQgUEhZLWxlc3MgKGZpeGVkIFBIWSkgZHJpdmVyLgoKICAgIENvcGllZCBvdmVyIHRoZSBmaXhlZCBQSFkgZHJpdmVyIGFzIHVzZWQgaW4gcHA0eHgvNHh4X2VuZXQuYy4KICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBQSFktbGVzcyBNQUMgY29ubmVjdGlvbnMgdG8gdGhlIFVFQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1NGJkY2M5ZmI2NjcwYWZkZTljMjZkY2YzNjRmNTgyODc5YmYyMWQ2CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyMyAxNjoyNzoyNCAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IEFkZCBtaWkgZHJpdmVyIGluIGRyaXZlcnMvbmV0CgogICAgQWxsIENGIHBsYXRmb3JtcycgbWlpLmMgYXJlIGNvbnNvbGlkYXRlZCBpbnRvIG9uZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDI1YTg1OTA2NmIzYWYxMDcwZWI2OWYxMjAyMjExM2MwYTkxYmQ4MTMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglNb24gT2N0IDI3IDIzOjUzOjE3IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBQUEM0eHggRU1BQyB0byBjcHVfZXRoX2luaXQoKQoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRkMDNhNGUyMGU1ODU1MmNiOTZkNjFhMGU4YjU2Y2RiNmNjNjAxMjYKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gTm92IDkgMjE6Mjk6MjMgMjAwOCAtMDgwMAoKICAgIE1vdmVkIFBQQzR4eCBFTUFDIGRyaXZlciB0byBkcml2ZXJzL25ldAoKICAgIEFsc28gY2hhbmdlZCBwYXRoIGluIGFsbCBsaW5rZXIgc2NyaXB0cyB0aGF0IHJlZmVyZW5jZSB0aGlzIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2ZTIxZjg2ZTgyNjZlZDQwNzU5ZTU0OTVlZTQ2MTI2NWQ3ZjZkMjgKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglNb24gT2N0IDI3IDIzOjUwOjE1IDIwMDggLTA3MDAKCiAgICBDaGFuZ2VkIFBQQzR4eCBFTUFDIGRyaXZlciB0byByZXF1aXJlIENPTkZJR19QUEM0eHhfRU1BQwoKICAgIEFsbCBpbi10cmVlIElCTS9BTUNDIFBQQzR4eCBib2FyZHMgdXNpbmcgdGhlIEVNQUMgZ2V0IHRoaXMgbmV3IENPTkZJRwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDllYjc5YmQ4ODU2YmNhYjg5NmVkNWUxZjFiY2ExNTk4MDdhMTI0ZGQKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIyOjAyOjQ5IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBNUEM4WFggU0NDIHRvIGNwdV9ldGhfaW5pdCgpCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhOWJlYzk2ZDYzNTlhYzlmOTBhODUyOTYyYmYzMDQwY2FkOWUwMjU2CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIE9jdCAyMiAyMzo0Nzo1MSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgTVBDODIyMCBGRUMgdG8gY3B1X2V0aF9pbml0KCkKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDBlODQ1NGU5OTAzODVhNThmNzA4YzJmYzI2ZDMxYWMwNDFjN2E2YzUKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgT2N0IDIyIDIzOjMyOjQ4IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBRRSBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGNwdV9ldGhfaW5pdCgpCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAzNDU2YTE0ODI3NmQ1NDk0YjUzZWU0MDI0MmVmYjY0NjJkMTYzNTA0CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIE9jdCAyMiAyMzoyMDoyOSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgRkNDIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gY3B1X2V0aF9pbml0CgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJU2V2ZXJhbCBNUEM4eHggYm9hcmRzCglTZXZlcmFsIE1QQzgyNjAvTVBDODI3MiBib2FyZHMKCVNldmVyYWwgTVBDODV4eCBib2FyZHMKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDYyZTE1YjQ5N2Y1YzYzMzRjMDU5NTEyNjc4YzhkYjc5NDBhZTRjNjEKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUaHUgT2N0IDMwIDIyOjE1OjM1IDIwMDggLTA3MDAKCiAgICBGaXggdHlwbyBpbiBjcHUvbXBjODV4eC9jcHUuYwoKICAgIENPTkZJR19NUEM4NXh4X0ZFQyAtPiBDT05GSUdfTVBDODVYWF9GRUMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDVkZmIzZWUzZjU0ZTIzODJhMDhkNzI5MDZmMGU3OWVjZjk0NGY2ZTMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTdW4gT2N0IDE5IDEyOjA4OjUwIDIwMDggKzA5MDAKCiAgICBuZXQ6IE1vdmUgaW5pdGlhbGl6YXRpb24gb2YgQXUxeDAwIFNvQyBldGhlcm5ldCBNQUMgdG8gY3B1X2V0aF9pbml0CgogICAgVGhpcyBwYXRjaCB3aWxsIG1vdmUgYXUxeDAwX2V0aF9pbml0aWFsaXplIGZyb20gbmV0L2V0aC5jIHRvIGNwdV9ldGhfaW5pdAogICAgYXMgYSBwYXJ0IG9mIG9uZ29pbmcgZXRoX2luaXRpYWxpemUgY2xlYW51cCB3b3JrLiAgVGhlIGZ1bmN0aW9uIHJldCB2YWx1ZQogICAgaXMgYWxzbyBmaXhlZCBhcyBpdCBzaG91bGQgYmUgbmVnYXRpdmUgb24gZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjYzk0MDc0ZWNhYzE4ODVkMThkZGI2ODNlYjkzNGIzYzAyNjhhYTViCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJRnJpIFNlcCA1IDAxOjU1OjIyIDIwMDggLTA0MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBJWFA0WFhfTlBFIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gY3B1X2V0aF9pbml0KCkKCiAgICBBbHNvLCByZW1vdmVkIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGYyYTc4MDZmYzIzZTgyZDMwYzg1NDg5MTEzNjllMGM1MzA2MDczNTQKQXV0aG9yOiBDbGl2ZSBTdHViYmluZ3MgPHVib290QHhlbnRlY2guY28udWs+CkRhdGU6CU1vbiBPY3QgMjcgMTU6MDU6MDAgMjAwOCArMDAwMAoKICAgIHhpbGlueF9lbWFjbGl0ZSBidWZmZXIgb3ZlcnJ1bgoKICAgIFBhdGNoIHRvIGZpeCBidWZmZXIgYWxsb2NhdGlvbiBzaXplIGFuZCBhbGlnbm1lbnQuIEJ1ZmZlciBuZWVkcyB0byBiZSB1MzIgYWxpZ25lZCBhbmQKICAgIFBLVFNJWkVfQUxJR04gYnl0ZXMgbG9uZy4KCiAgICBBY2tlZC1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDExNWIxOTUzNzE4YTI5NjlmNjQ2OWQzZDVkYTUxYmExMWUxMmQ0MgpBdXRob3I6IHJpY2hhcmRyZXRhbnVidW4gPHJpY2hhcmRyZXRhbnVidW5AcnVnZ2VkY29tLmNvbT4KRGF0ZToJRnJpIFNlcCAyNiAwODo1OToxMiAyMDA4IC0wNDAwCgogICAgTkVUOiBRRTogVUVDOiBNYWtlIHVlY19taWlwaHlfcmVhZCgpIGFuZCB1ZWNfbWlpcGh5X3dyaXRlKCkgdXNlIHRoZSBkZXZuYW1lIGFyZy4KCiAgICBUaGUgY3VycmVudCB1ZWNfbWlpcGh5X3JlYWQgYW5kIHVlY19taWlwaHlfd3JpdGUgaGFyZGNvZGUgYWNjZXNzIGRldmxpc3RbMF0KICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlc2UgZnVuY3Rpb24gdXNlIHRoZSBkZXZuYW1lIGFyZ3VtZW50IHRoYXQgaXMgcGFzc2VkIGluIHRvCiAgICBhbGxvdyBhY2Nlc3MgdG8gdGhlIHBoeSByZWdpc3RlcnMgb2Ygb3RoZXIgZGV2aWNlcyBpbiBkZXZsaXN0W10uCgogICAgU2lnbmVkLW9mLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDQ0ZGNiNzMzMjAzM2RiOGRlMjgxMGYyZmZmY2FlMzA4NGYxNWM4ZDQKQXV0aG9yOiByaWNoYXJkcmV0YW51YnVuIDxyaWNoYXJkcmV0YW51YnVuQHJ1Z2dlZGNvbS5jb20+CkRhdGU6CU1vbiBPY3QgNiAxNTozMTo0MyAyMDA4IC0wNDAwCgogICAgQWRkcyB0d28gbW9yZSBldGhlcm5ldCBpbnRlcmZhY2UgdG8gODN4eAoKICAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmcgImRlY2xhcmVkIGJ1dCB1bnVzZWQiIGV0aDVfdWVjX2luZm8gYW5kIGV0aDZfdWVjX2luZm8uCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDgwMDNmYTAzNzMzOTAxYjczZDZjNDY2N2I0ZDgwZmM4ZWIxZGRkMwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CUZyaSBOb3YgNyAxMzo1NDozMSAyMDA4ICswMTAwCgogICAgQVQ5MTogUmVwbGFjZSBBVDkxX0JBU0VfRU1BQyBieSB0aGUgYm9hcmQgc3BlY2lmaWMgdmFsdWVzLgoKICAgIEFUOTFfQkFTRV9FTUFDIGlzIG5ldmVyIHVzZWQgb3V0c2lkZSB0aGUgYm9hcmQgc3BlY2lmaWMgZmlsZXMsCiAgICBzbyByZXBsYWNlIGl0cyB1c2FnZSBieSB0aGUgYm9hcmQgc3BlY2lmaWMgQVQ5MXh4eF9CQVNFX0VNQUMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzkxZTE3YWZmYTE3NWNlMDZhZmE4OWIwNDc1MjMwMWViNGE2MTY2NgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CUZyaSBOb3YgNyAxMjowOToyMSAyMDA4ICswMTAwCgogICAgQVQ5MTogUmVwbGFjZSAodW5kZWZpbmVkKSBBVDkxX0lEX1VTKiBieSB0aGUgYm9hcmQgc3BlY2lmaWMgdmFsdWVzLgoKICAgIEFUOTFfSURfVVMwIC8gQVQ5MV9JRF9VUzEgLyBBVDkxX0lEX1VTMiB3ZXJlIHVzZWQgYnV0IG5ldmVyIGRlZmluZWQuCiAgICBTaW5jZSB0aGV5IGFyZSBuZXZlciB1c2VkIG91dHNpZGUgdGhlIGJvYXJkIHNwZWNpZmljIGZpbGVzLCB0aGV5IGNhbgogICAgYmUgcmVwbGFjZWQgYnkgdGhlIGJvYXJkIHNwZWNpZmljIEFUOTF4eHhfSURfVVMwIC8gQVQ5MXh4eF9JRF9VUzEgLwogICAgQVQ5MXh4eF9JRF9VUzIuCgogICAgQnVnIHNwb3R0ZWQgYnkgSmVzdXMgQWx2YXJleiA8amFsdmFyZXpAbWljcm9taW50LmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjg5NjJmNWEyZGU4MWJjMGVlZDFjMGIwOGM2YmZhYTFjYzEzNGVhMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMSAxMDo0Nzo1OSAyMDA4ICswMTAwCgogICAgTWFrZWZpbGUvYXQ5MXNhbTk6IG1vdmUgc29tZSBhdDkxc2FtOSB0byB0aGUgY29ycmVjdCBzdWJzZWN0aW9uIGZvciBhcm05MjZlanMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDEwNzk0MzJlMDRjY2Y3MWFhMzY4NDE4MTE4NjE4MmNkNjM1MTJmMTkKQXV0aG9yOiBTZXJnZXkgTGFwaW4gPHNsYXBpbkBvc3NmYW5zLm9yZz4KRGF0ZToJRnJpIE9jdCAzMSAxMjoyODo0MyAyMDA4ICswMTAwCgogICAgQ3VzdG9tIEFGRUI5MjYwIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHByb3ZpZGVzIHN1cHBvcnQgZm9yIEFGRUI5MjYwIGJvYXJkLCBhIHByb2R1Y3Qgb2YKICAgIE9wZW5Tb3VyY2UgaGFyZHdhcmUgYW5kIHNvZnR3YXJlLiBTb21lIGNvbW1lcnRpYWwgcHJvamVjdHMKICAgIGFyZSBtYWRlIHdpdGggdGhpcyBkZXNpZ24uIEEgYm9hcmQgaXMgYmFzaWNhbGx5IEFUOTFTQU05MjYwLUVLCiAgICB3aXRoIHNvbWUgbW9kaWZpY2F0aW9ucyBhbmQgZGlmZmVyZW50IHBlcmlwaGVyYWxzIGFuZCBkaWZmZXJlbnQKICAgIHBhcnRzIHVzZWQuIE1haW4gcHVycG9zZSBvZiB0aGlzIHByb2plY3QgaXMgdG8gZ2FpbiBleHBlcmllbmNlIGluCiAgICBoYXJkd2FyZSBkZXNpZ24uCiAgICBNb3JlIGluZm86IGh0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91cC9hcm05ZnBnYS1ldm9sdXRpb24tYm9hcmQKICAgIChJbiBSdXNzaWFuIG9ubHksIHNvcnJ5KS4KICAgIFN1YnZlcnNpb24gcmVwb3NpdG9yeTogc3ZuOi8vMTk0Ljg1LjIzOC4yMi9ob21lL3VzZXJzL2dlb3JnZS9zdm4vYXJtOWViCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+Cgpjb21taXQgMjZlZWNkMjRmOTcxMzBlNTZlOWMyYzJhZjBlNzE0ZTA1YmNlNmUwMApBdXRob3I6IFRvbW9oaXJvIE1hc3VidWNoaSA8dG9tb2hpcm9fbWFzdWJ1Y2hpYXR0cmlwZWFrcy5jby5qcD4KRGF0ZToJVHVlIE9jdCAyMSAxMzoxNzoxNiAyMDA4ICswOTAwCgogICAgQ2hhbmdlIHRvIHVzZSAiZG9fZGl2IiBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbW9oaXJvIE1hc3VidWNoaSA8dG9tb2hpcm9fbWFzdWJ1Y2hpQHRyaXBlYWtzLmNvLmpwPgoKY29tbWl0IGUzNTI0OTUzMThkODA1NmEwMGZhYTIxYjYzM2IzZTQzNzRiZmJmNTIKQXV0aG9yOiBSb21hbiBNYXNoYWsgPHJvbWV6Nzc3QGdtYWlsLmNvbT4KRGF0ZToJV2VkIE9jdCAyMiAxNjowMDoyNiAyMDA4IC0wNDAwCgogICAgQVJNOTI2RUotUzogcmVsb2NhdGUgT01BUCBzcGVjaWZpYyAnY3B1aW5mby5jJyBpbnRvIE9NQVAgZGlyZWN0b3J5CgogICAgT01BUCBpZGVudGlmaWNhdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiAnY3B1aW5mby5jJyBhbmQgbG9jYXRlZCBpbiBBUk05MjZFSi1TIGRpcmVjdG9yeS4KICAgIEl0IG1ha2VzIHNlbnNlIHRvIHBsYWNlIHRoaXMgZmlsZSBpbiBPTUFQIHNwZWNpZmljIHN1YmRpcmVjdG9yeSwgaS5lLiBjcHUvYXJtOTI2ZWpzL29tYXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPHJvbWV6Nzc3QGdtYWlsLmNvbT4KCmNvbW1pdCAyNDhiMmMzNjcyMTBjMDZkYmQ1ZmJkZWNmMjdlOTdmYmU5ZDA1ZmRiCkF1dGhvcjogUm9tYW4gTWFzaGFrIDxyb21lejc3N0BnbWFpbC5jb20+CkRhdGU6CVR1ZSBPY3QgMjEgMDM6MDE6NDEgMjAwOCAtMDcwMAoKICAgIEFSTS9WZXJzYXRpbGUgcG9ydDogUmVtb3ZlZCB1bnVzZWQgZnVuY3Rpb25zCgogICAgUmVtb3ZhbCBvZiBuZXZlciB1c2VkIGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPHJvbWV6Nzc3QGdtYWlsLmNvbT4KCmNvbW1pdCAxMjY2ZGY4ODc3ODFjNzc5ZGVhZjZkMDVlZWEyZWY5MGE0NzBjYjM0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgMyAxNTo0NDowMSAyMDA4IC0wNjAwCgogICAgcG93ZXJwYzogY2hhbmdlIDg2eHggU01QIGJvb3QgbWV0aG9kCgogICAgV2UgcHV0IHRoZSBib290cGcgZm9yIHRoZSBzZWNvbmRhcnkgY3B1cyBpbnRvIG1lbW9yeSBhbmQgdXNlCiAgICBCUFRSIHRvIGdldCB0byBpdC4JVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyBjb252ZXJ0aW5nIHRvIHRoZQogICAgZVBBUFIgYm9vdCBtZXRob2RvbG9neS4gIEFsc28sIHRoZSBjb2RlIGlzIHdyaXR0ZW4gdG8KICAgIGRlYWwgcHJvcGVybHkgd2l0aCBtb3JlIHRoYW4gNEdCIG9mIFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTQzMTU2MDY4MmQ4ZjMxOGZiYzQ5ZGI4N2NmZTEzYWI0MWQyZWU0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMzEgMTc6MTM6NDkgMjAwOCAtMDUwMAoKICAgIDg2NDFIUENOOiBDb25maWcgZmlsZSBjbGVhbnVwCgogICAgVGhlcmUgYXJlIHNldmVyYWwgaXRlbXMgaW4gdGhlIGNvbmZpZyBmaWxlIHRoYXQgd2VyZSBoYXJkY29kZWQKICAgIGJ1dCB0aGF0IHNob3VsZCByZWFsbHkgYmUgYmFzZWQgb24gb3RoZXIgY29uZmlnIG9wdGlvbnMsIHNpbmNlCiAgICB0aGUgcmVnaW9ucyBhcmUgY29udGlndW91cyBhbmQgZGVwZW5kIG9uIGJlaW5nIHNvLglUaGlzIGNsZWFucwogICAgdGhhdCB1cCBhIGJpdC4gIEFsc28sIGFkZCBCUl9QSFlTX0FERFIoKSBtYWNybyB0byBjb252ZXJ0CiAgICBhZGRyZXNzZXMgaW50byB0aGUgcHJvcGVyIGZvcm1hdCBmb3IgQlIgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjNzdkZTNmMTQ0Y2EwODhjMzg2N2JkNjI0MDcxOGMxMGY1YTlkNjkKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxNzoxMzozMiAyMDA4IC0wNTAwCgogICAgODZ4eDogTWFrZSBkcmFtX3NpemUgYSBwaHlzX3NpemVfdAoKICAgIEl0J3MgY3VycmVudGx5IGEgbG9uZyBhbmQgc2hvdWxkIGJlIHBoeXNfc2l6ZV90LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwNDk5MmZjNTQxMzAyYTZiYWM3NDQ0OGUwMWU3ZmRhZDIwYWJjYTAKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIE5vdiAyIDE4OjE5OjMyIDIwMDggLTA2MDAKCiAgICBwb3dlcnBjIDg2eHg6IEhhbmRsZSBDQ1NSIHJlbG9jYXRpb24gZWFybGllcgoKICAgIEN1cnJlbnRseSwgdGhlIENDU1IgZ2V0cyByZWxvY2F0ZWQgd2hpbGUgdHJhbnNsYXRpb24gaXMKICAgIGVuYWJsZWQsIG1lYW5pbmcgd2UgbmVlZCAyIEJBVCB0cmFuc2xhdGlvbnMgdG8gZ2V0IHRvIGJvdGggdGhlCiAgICBvbGQgbG9jYXRpb24gYW5kIHRoZSBuZXcgbG9jYXRpb24uCUFsc28sIHRoZSBERUZBVUxUCiAgICBDQ1NSIGxvY2F0aW9uIGhhcyBhIGRlcGVuZGVuY3kgb24gdGhlIEJBVCB0aGF0IG1hcHMgdGhlCiAgICBGTEFTSCByZWdpb24uICBNb3ZpbmcgdGhlIHJlbG9jYXRpb24gcmVtb3ZlcyB0aGlzIHVubmVjZXNzYXJ5CiAgICBkZXBlbmRlbmN5LiBUaGlzIG1ha2VzIGl0IGVhc2llciBhbmQgbW9yZSBpbnR1dGl2ZSB0bwogICAgbW9kaWZ5IHRoZSBib2FyZCdzIG1lbW9yeSBtYXAuCgogICAgU3dhcCBCQVRzIDMgYW5kIDQgb24gODYxMCBzbyB0aGF0IGFsbCA4Nnh4IGJvYXJkcyB1c2UgdGhlIHNhbWUKICAgIEJBVCBmb3IgQ0NTUiBzcGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjVkMTAwZThkNWNkNDlkNjlkNTJkMjBmMTE4MWViMDZkZGI0ZGRmCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMzEgMTc6MTQ6MTQgMjAwOCAtMDUwMAoKICAgIG1wYzg2NDE6IE1ha2UgUENJIGFuZCBSSU8gbXV0dWFsbHkgZXhjbHVzaXZlLCBmaXggbm9uLVBDSSBidWlsZAoKICAgIFlvdSBjYW4ndCBhY3R1YWxseSBoYXZlIGJvdGgsIGFuZCB3aXRoIHNvbWUgY29taW5nIGNoYW5nZXMgdG8KICAgIGNoYW5nZSB0aGUgbWVtb3J5IG1hcCBmb3IgdGhlIGJvYXJkIGFuZCBzdXBwb3J0IDM2LWJpdCBwaHlzaWNhbCwKICAgIHdlIG5lZWQgdGhlIGV4dHJhIEJBVCB0aGF0IGlzIGJlaW5nIGNvbnN1bWVkIGJ5IGhhdmluZyBib3RoLgoKICAgIEkgYWxzbyBtYWtlIG5vbi1QQ0kgY29uZmlncyBidWlsZCBjbGVhbmx5LCBmb3IgdGhlIHNha2Ugb2Ygc2FuaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4NjkzYjg1ZDQyZmY0MzgzNzVkYzZkNmRjYWRjNzBlYjdiMDUwYmIKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxNzoxNDowMCAyMDA4IC0wNTAwCgogICAgbXBjODY0MTogU3RvcCBzdXBwb3J0aW5nIG5vbi1QQ0lfUE5QIGNvbmZpZ3MKCiAgICBXZSBkb24ndCBhY3R1YWxseSBldmVyIGRvIHRoaXMsIHJlbW92ZSB0aGUgY29kZSBzbyB3ZQogICAgY2FuIHN0b3AgbWFpbnRhaW5pbmcgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTRmNjlkMWJkMjFhMTIwNDk3NDQ5ODlkMmRkNmI1MTk5YzliOGYyMwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjQgMTI6NTk6MTIgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBGaXggTTUzMjlFVkIgYW5kIE01MzczRVZCIG5hbmQgaXNzdWUKCiAgICBGaXggY29tcGlsYXRpb24gaXNzdWUgY2F1c2VkIGJ5IGEgZmV3IG1pc21hdGNoZXMuCiAgICBQcm92aWRlIHByb3BlciBuYW5kIGNoaXAgc2VsZWN0IGVuYWJsZS9kaXNhYmxlIGluCiAgICBuYW5kX2h3Y29udHJvbCgpIHJhdGhlciB0aGFuIGluIGJvYXJkX25hbmRfaW5pdCgpCiAgICBqdXN0IGVuYWJsZSBvbmNlLiBSZW1vdmUgcmVkdW5kYW50IGxvY2FsIG5hbmQgZHJpdmVyCiAgICBmdW5jdGlvbnMgLSBuYW5kX3JlYWRfYnl0ZSgpLCBuYW5kX3dyaXRlX2J5dGUoKSBhbmQKICAgIG5hbmRfZGV2X3JlYWR5KCkgdG8gdXNlIGNvbW1vbiBuYW5kIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFiMjcwODQ0MjIyNGE1NTFhMGI4NjViNTI3MTAzMDYzMzM4ODg5MzIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDIyIDExOjU1OjMwIDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogRml4IGNvbXBpbGF0aW9uIGVycm9yCgogICAgVGhlIGVycm9yIHdhcyBjYXVzZWQgYnkgdGhlIGNoYW5nZSBmb3Igc3RybWh6KCkgaW4gY3B1LmMuCiAgICBBIGZldyBvZiB0aGVtIHdlcmUgb25lIGV4dHJhIGNsb3NlIHBhcmVudGhlc2lzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTM2ZTdkYWMxNjc2OTk1NDkxNWE0ODRlNjgyYTJlZmIyODY5OTEzMwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjIgMTE6Mzg6MjEgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTMwMXggQ1BVIGFuZCBNNTMwMTdFVkIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTIxZDBjMmNjOWFkZDg4OTRkOTcxYWI3OTFmNDAzMmYwNzdkYjgxNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMjEgMTU6Mzc6MDIgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBBZGQgU0JGIHN1cHBvcnQgZm9yIE01MjI3N0VWQgoKICAgIEFkZCBzZXJpYWwgYm9vdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMjAyODE2YzYxMDQyYzE4M2ZlNjdkMDk3YTU4OTNiMGYyZGFmYmEwCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyMSAxNDoxOToyNiAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IFVzZSBDRkkgZHJpdmVyIGZvciBNNTI3MkMzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMzk2MmQzZjU3NGU1YTFjZmZhY2Q0ZTliYzQ4NzEzMDYwYTJhMzE0CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyMSAxMzo0Nzo1NCAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IFJlbG9jYXRlIEZFQydzIEdQSU8gYW5kIG1paSBmdW5jdGlvbnMgcHJvdG9jb2xzCgogICAgUGxhY2UgRkVDIHBpbiBhc3NpZ25tZW50cyBpbiBjcHVfaW5pdC5jIGZyb20gcGxhdGZvcm0ncwogICAgbWlpLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZlODBmNWFhMDlmOGQ0MWJhYzUwYjM4ZGM3NDg4ZWNkMjIxMDc4MDIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDIxIDEyOjE1OjQ0IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogUmVtb3ZlIHBsYXRmb3JtcyBtaWkuYyBmaWxlCgogICAgV2lsbCB1c2UgbWNmbWlpLmMgZHJpdmVyIGluIGRyaXZlcnMvbmV0IHJhdGhlciB0aGFuCiAgICBrZWVwIGNyZWF0aW5nIG5ldyBtaWkuYyBmb3IgZWFjaCBmdXR1cmUgcGxhdGZvcm0uCiAgICBSZW1vdmUgRUIrTUNGLUVWMTIzLCBjb2JyYTUyNzIsIGlkbXIsIE01MjM1RVZCLAogICAgTTUyNzFFVkIsIE01MjcyQzMsIE01Mjc1RVZCLCBNNTI4MkVWQiwgTTUzMjlFVkIsCiAgICBNNTM3M0VWQiwgTTU0NDUxRVZCLCBNNTQ0NTVFVkIsIE01NDd4RVZCLCBhbmQgTTU0OHhFVkIncwogICAgbWlpLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAxMjUyMmZlZjNiMzgyNDY5MTI1YmViNDZhMzE1YWI0ZGVlMDJmYjAKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDIxIDEwOjAzOjA3IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogTW9kdWxlcyBoZWFkZXIgZmlsZXMgY2xlYW51cAoKICAgIENvbnNvbGlkYXRlIEFUQSwgZVBPUlQsIFFTUEksIEZsZXhDYW4sIFBXTSwgUk5HLAogICAgTURIQSwgU0tIQSwgSU5UQywgYW5kIEZsZXhCdXMgc3RydWN0dXJlcyBhbmQKICAgIGRlZmluaXRpb25zIGluIGltbWFwXzV4eHguaCB0byBtb3JlIHVuaWZ5IG1vZHVsZXMKICAgIGhlYWRlciBmaWxlcy4gQXBwZW5kIERTUEkgc3VwcG9ydCBmb3IgbTU0N3hfOHguCiAgICBTU0kgY2xlYW51cC4gUmVtb3ZlIFVTQiBIb3N0IHN0cnVjdHVyZSBmcm9tIGltbWFwXzUzOS5oLgogICAgQXBwbHkgY2hhbmdlcyB0byB1c2UgRmxleEJ1cyBzdHJ1Y3R1cmVzIGluIG1jZjUyeDIncwogICAgY3B1X2luaXQuYyBhbmQgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjMjMzMWFlZTk5YWQzNmJlMGZjZmVkOGM0OTkyMmUzYzYxYjU3NmQKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDIxIDA4OjUyOjM2IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogUmVtb3ZlIGxpbmtlciBmaWxlCgogICAgRWFjaCBkaWZmZXJlbnQgYnVpbGQgZm9yIE01NDQ1NUVWQiBhbmQgTTUyMzVFVkIgd2lsbAogICAgY3JlYXRlIGEgdS1ib290LmxkcyBsaW5rZXIgZmlsZS4gSXQgaXMgcmVkdW5kYW50IHRvCiAgICBrZWVwIHRoZSB1LWJvb3QubGRzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwODI5MzIzMDczYzUwNTU1NmVkNWY1MDczZjkxYWRiNTA0NTg0ZDQ1CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMToyNjo0NCAyMDA4IC0wNTAwCgogICAgcHBjOiBGaXggY29tcGlsZSB3YXJuaW5ncyB3aGVuICFDT05GSUdfT0ZfTElCRkRUCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBhODBiMjFkNTEyNzU4MzE3MWQ2ZTliYzdmNzIyOTQ3NjQxODk4MDEyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMjoxMjoxMiAyMDA4ICswMTAwCgogICAgY29tbW9uL01ha2VmaWxlOiBjcmVhdGUgb3RoZXJzIGdyb3VwIGZvciBub24gY29yZSwgZW52aXJvbm1lbnQgYW5kIGNvbW1hbmQgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDYwYzY4ZDljMWM2ZDE4Y2UwMmM4NjJhMDU3MThmZDk0Zjk3YzEzZDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDMxIDAxOjEzOjM3IDIwMDggKzAxMDAKCiAgICBUUU04MjYwOiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciBpbnN0ZWFkIG9mIGN1c3RvbSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyMGQwNDc3NGY0ZWYzZjZlMzg5NzQ2MzZlMGUzNmFlMGYwYjU1MDFmCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDMwIDE3OjM1OjMwIDIwMDggLTA1MDAKCiAgICBDb25zb2xpZGF0ZSBNQVgvTUlOIGRlZmluaXRpb25zCgogICAgVGhlcmUgd2VyZSBzZXZlcmFsLCBub3cgdGhlcmUgaXMgb25lICh0d28gaWYgeW91IGNvdW50IHRoZSBsb3dlci1jYXNlCiAgICB2ZXJzaW9ucykuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI5OGU0NzZjNjZmZDg4ZDBiYzRmMDM3MTExODY1MmQyYjVkZTRlOGEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAzMCAwOToyMzowOSAyMDA4ICswMTAwCgogICAgbWdzdXZkOiByZW1vdmUgdW51c2VkIGRlZmluZXMgaW4gY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2NiZDgyMzExNmVhOGI3YzY1NGUyNzVhOGMyZmNhODdjZDFmNWRjNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMiAxNjoxNDoyMiAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE0N2Y5NTdhYjUyMzAxOTk5MmZkZWY4NTdhZjAxYmQ3MWM1OGE0ZGEKQXV0aG9yOiBBbGVzc2FuZHJvIFJ1YmluaSA8cnViaW5pLWxpc3RAZ251ZGQuY29tPgpEYXRlOglGcmkgT2N0IDMxIDIyOjMzOjIxIDIwMDggKzAxMDAKCiAgICBOQU5EOiBBbGxvdyBOQU5EIGFuZCBPbmVOQU5EIHRvIGNvZXhpc3QKCiAgICBUaGlzIHJlbW92ZXMgaW4gbmFuZC5oIGNvZGUgdGhhdCBpcyB2ZXJiYXRpbSBkdXBsaWNhdGVkIGZyb20gYmJtLmgsCiAgICBpbmNsdWRpbmcgZGlyZWN0bHkgYmJtLmggaW4gbmFuZC5oLiBUaGUgcHJldmlvdXMgc3RhdGUgb2YgYWZmYWlycwogICAgcHJldmVudGVkIGNvbXBpbGluZyBjb2RlIGZvciBhIGJvYXJkIGhvc3RpbmcgYm90aCBOQU5EIGFuZCBPbmVOQU5EIGNoaXBzLgoKICAgIFJlcG9ydGVkLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZjc3YzdmNDViOWEzN2VmMjY1YThkYmUzYzE4ZWZhNzA2ZmVkMjE0CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMzEgMTM6NTE6MTIgMjAwOCAtMDUwMAoKICAgIEpGRlMyOiBFbGltaW5hdGUgY29tcGlsZXIgZXJyb3Igd2hlbiBib3RoIE5BTkQgYW5kIE9uZU5BTkQgYXJlIGVuYWJsZWQuCgogICAgUmVwb3J0ZWQtYnk6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmktbGlzdEBnbnVkZC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTdmYzI4OTQ3ZTI0OGZiMDNjNDlhMjhiNDY3Njg2Mjk5ODk1MDU1CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAwNTowNzowNCAyMDA4IC0wNTAwCgogICAgTkFORDogQWRkIE5BTkQgc3VwcG9ydCBmb3IgTVBDODUzNkRTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBkZWZpbmVzIDFNIFRMQiZMQVcgc2l6ZSBmb3IgTkFORCBvbiBNUEM4NTM2RFMsIGFzc2lnbnMgMHhmZmEwMDAwMAogICAgZm9yIENPTkZJR19TWVNfTkFORF9CQVNFIGFuZCBhZGRzIG90aGVyIE5BTkQgc3VwcG9ydHMgaW4gY29uZmlnIGZpbGUuCiAgICBJdCBhbHNvIG1vdmVzIGVudmlyb25tZW50KENPTkZJR19FTlZfQUREUikgb3V0c2lkZSBvZiB1LWJvb3QgaW1hZ2UuCgogICAgU2luZ2VkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDZmYzExMGJkOGE4ZDY0MmI4ZjdiMDY1M2JkOWEwOGEwYjdjM2Q1MGIKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMxIDA1OjA2OjE0IDIwMDggLTA1MDAKCiAgICBOQU5EOiBGaXggQ09ORklHX0VOVl9BRERSIGZvciBNUEM4NTcyRFMKCiAgICBDT05GSUdfRU5WX0FERFIgc2hvdWxkIGJlIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1MWI1NzJhODAxYmU1Nzc5MGZlMjZhZGFhNTMwMjEwZTdmYmE1OWNjCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgT2N0IDI0IDEwOjQ5OjQ4IDIwMDggKzA5MDAKCiAgICBzaDogcnNrNzIwMzogTW92ZWQgcnNrNzIwMyBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDU4NDUzYjAwYjNlYmIyNmFhYTkwMTIxMDAyM2Y5OTUwNGE5MGJiMDAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6NDg6MzEgMjAwOCArMDkwMAoKICAgIHNoOiBNaWdvUjogTW92ZWQgTWlnb1IgYm9hcmQgdG8gYm9hcmQvcmVuZXNhcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMWRhMmEyMjgxN2JhODViNDM3YWZhMmY0ZTcxNWU2NThiMjE5ZmQxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgT2N0IDI0IDEwOjM5OjQ0IDIwMDggKzA5MDAKCiAgICBzaDogcjJkcGx1czogTW92ZWQgcjJkcGx1cyBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc4Mzg1YmYyMzU5ZDgyODE4NGQwYjM2NDlmN2FlNmI5MzM0MjAwMDAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6MzY6MTMgMjAwOCArMDkwMAoKICAgIHNoOiBzaDc3NjNyZHA6IE1vdmVkIHNoNzc2M3JkcCBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM2NTI1ZDQ1OWMzNTBiZmMyNDZlYTc4MjY0NTZhZjc3ZTFlMzE0ZWIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6MzU6MTkgMjAwOCArMDkwMAoKICAgIHNoOiBzaDc3ODVsY3I6IE1vdmVkIHNoNzc4NWxjciBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFjZDNlMzBkMDlhNzNmODc2MjIyZjBkNDk2YzRmNTJlZTlkMDc3MWQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6MzQ6MjEgMjAwOCArMDkwMAoKICAgIHNoOiByNzc4MG1wOiBNb3ZlZCByNzc4MG1wIGJvYXJkIHRvIGJvYXJkL3JlbmVzYXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZjg0ZTZlYTI3NTM1M2I4ZmVhNzcyZWM3NTUzZmY3ZTRiMWY2NDJlMApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJRnJpIE9jdCAyNCAxMDozMjoxNCAyMDA4ICswOTAwCgogICAgc2g6IGFwMzI1cnhhOiBNb3ZlZCBhcDMyNXJ4YSBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDlhYmRhNmJhNzM1ZWZiMDU5ZjYzZGNiMjVkNzhiMTc0YmZjYWQxYWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEB4cGVydC5kZW54LmRlPgpEYXRlOglGcmkgT2N0IDMxIDAxOjEyOjI4IDIwMDggKzAxMDAKCiAgICBDRkkgRHJpdmVyOiBGaXggImZsYXNoIG5vdCByZWFkeSIgcHJvYmxlbQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIG9uIHN5c3RlbXMgd2hlcmUgdGhlIE5PUiBmbGFzaCBpcyBhdHRhY2hlZAogICAgdG8gYSA2NCBiaXQgYnVzLiAgVGhlIHRvZ2dsZSBiaXQgZGV0ZWN0aW9uIGluIGZsYXNoX3RvZ2dsZSgpIGlzIGJhc2VkCiAgICBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBzYW1lIGZsYXNoIGFkZHJlc3MgaXMgcmVhZCB0d2ljZSB3aXRob3V0CiAgICBhbnkgb3RoZXIgaW50ZXJqYWNlbnQgZmxhc2ggYWNjZXNzZXMuICBIb3dldmVyLCBvbiAzMiBiaXQgc3lzdGVtcyB0aGUKICAgIGZ1bmN0aW9uIGZsYXNoX3JlYWQ2NCgpIFthcyBjdXJyZW50bHkgaW1wbGVtZW50ZWRdIGRvZXMgbm90IHBlcmZvcm0KICAgIGFuIGF0b21pYyA2NCBiaXQgcmVhZCAtIGluc3RlYWQsIHRoaXMgaXMgYnJva2VuIGRvd24gaW50byB0d28gMzIgYml0CiAgICByZWFkIGFjY2Vzc2VzIG9uIGFkZHJlc3NlcyAiYWRkciIgYW5kICJhZGRyICsgNCIuICBTbyBpbnN0ZWFkIG9mCiAgICByZWFkaW5nIGEgNjQgYml0IHZhbHVlIHR3aWNlIGZyb20gImFkZHIiLCB3ZSBzZWUgYSBzZXF1ZW5jZSBvZiA0IDMyCiAgICBiaXQgcmVhZHMgZnJvbSAiYWRkciIsICJhZGRyICsgNCIsICJhZGRyIiwgYW5kICJhZGRyICsgNCIuCVRoZQogICAgY29uc2VxdWVuY2UgaXMgdGhhdCBmbGFzaF90b2dnbGUoKSBmYWlscyB0byB3b3JrLgoKICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhIHNpbXBsZSwgYnV0IHNvbWV3aGF0IHVnbHkgc29sdXRpb24sIGFzIGl0CiAgICBhdm9pZHMgdGhlIHVzZSBvZiBmbGFzaF9yZWFkNjQoKSBpbiB0aGlzIGNyaXRpY2FsIHBsYWNlIChieSBicmVha2luZwogICAgaXQgZG93biBtYW51YWxseSBpbnRvIDMyIGJpdCByZWFkIG9wZXJhdGlvbnMpIGluc3RlYWQgb2YgcmV3cml0aW5nCiAgICBmbGFzaF9yZWFkNjQoKSBzdWNoIHRvIHBlcmZvcm0gYXRvbWljIDY0IGJpdCByZWFkcyBhcyBvbmUgY291bGQKICAgIGV4cGVjdC4gIEhvd2V2ZXIsIHN1Y2ggYSByZXdyaXRlIHdvdWxkIHJlcXVpcmUgdGhlIHVzZSBvZiBmbG9hdGluZwogICAgcG9pbnQgbG9hZCBvcGVyYXRpb25zLCB3aGljaCBiZWNvbWVzIHByZXR0eSBjb21wbGV4OgoKCXNhdmUgTVNSOwoJc2V0IEZsb2F0aW5nIFBvaW50IEVuYWJsZSBiaXQgaW4gTVNSOwoJdXNlICJsZmQiIGluc3RydWN0aW9uIHRvIHBlcmZvcm0gYXRvbWljIDY0IGJpdCByZWFkOwoJdXNlICJzdGZkIiB0byBzdG9yZSB2YWx1ZSB0byB0ZW1wb3JhcnkgdmFyaWFibGUgb24gc3RhY2s7Cglsb2FkIHU2NCB2YWx1ZSBmcm9tIHRlbXBvcmFyeSB2YXJpYWJsZTsKCXJlc3RvcmUgc2F2ZWQgTVNSOwoJcmV0dXJuIHU2NCB2YWx1ZTsKCiAgICBUaGUgYmVuZWZpdC1jb3N0IHJhdGlvIG9mIHN1Y2ggYW4gaW1wbGVtZW50YXRpb24gd2FzIGNvbnNpZGVyZWQgdG9vCiAgICBiYWQgdG8gYWN0dWFsbHkgYXR0ZW1wdCB0aGlzLCBlc3BlY2lhbGx5IGFzIHdlIGNhbiBleHBlY3QgdGhhdCBzdWNoCiAgICBhbiBpbXBsZW1lbnRhdGlvbiB3b3VsZCBub3Qgb25seSBoYXZlIGEgYmlnZ2VyIG1lbW9yeSBmb290cHJpbnQgYnV0CiAgICBhbHNvIGNhdXNlIGEgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZGQ0ZmU2M2IwOTRkNGI3NjdmMTJmZjI0MWQ3MjU2NmI0NjFlZTYxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDMxIDEwOjQ4OjA4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBzcGVsbGluZyBlcnJvciBpbiBNQUlOVEFJTkVSUyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJlMjcwNzk4OTAwYjc1YWQ5YzQ3YzdiNzljNzJmNzA0NDExOTZjNTYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxMzozNzowMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgUE1DNDQwIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGJyaW5ncyBQTUM0NDAgYm9hcmQgc3VwcG9ydCB1cCB0byBkYXRlOgoKICAgIC0gZml4IEdQSU8gY29uZmlndXJhdGlvbgogICAgLSBhZGQgbWlzY19pbml0X2YoKQogICAgLSB1c2UgYmV0dGVyIHZhbHVlcyBmb3IgdXNiYWN0IHZhcmlhYmxlCiAgICAtIGZpeCBVU0IgMi4wIHBoeSByZXNldCBzZXF1ZW5jZQogICAgLSBzaHJpbmsgQkFSMiB0byBzYXZlIFBDSSBhZGRyZXNzIHNwYWNlCiAgICAtIGFkZCBGRFQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1MTgzYjFhN2ZjMDQyMDZkOTc3OWQxM2YxNmUwMzg1M2Q3ZTk2NWQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxMzozNjo1OSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggUE1DNDQwIEJTUCBjb21tYW5kcwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIFBNQzQ0MCBCU1AgY29tbWFuZHMgcGFpbml0IGFuZCBzZWxmcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NmI1NjViNjlmODg2ZDVhZTc0OGRiNjVlNDRmNDY0YjBlNzBkNDFhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBPY3QgMjggMTM6MzY6NTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFBNQzQ0MCBib2FyZCBjb25maWd1cmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2EwYzJkNDJiOTMxMTZhOGUxYjhlZjhhZDQ0OTNjN2RjOWI1ZjJlNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgT2N0IDI4IDEzOjM2OjU3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBlc2QgbG9hZHBjaSBjb21tYW5kCgogICAgVGhpcyBwYXRjaCBmaXhlcyBlc2QncyBsb2FkcGNpIGNvbW1hbmQgd2hlbiBub3QgYWxsCiAgICBtZW1vcnkgb24gYWRhcHRlciBib2FyZHMgaXMgYWNjZXNzYWJsZSB2aWEgUENJLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ5MmFhOWVhMTM3OTFjYTQ1OTFiNWJkZTg5NWE0MjVlMjdhZTJkMTAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxMzozNjo1NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDbGVhbiB1cCBQTUM0NDAgaGVhZGVyCgogICAgLUNvZGluZ3N0eWxlIGNsZWFudXAKICAgIC1SZW1vdmUgdW51c2VkIEdQSU8gZGVmaW5lCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjk1MTMzMjU4YTQ0Zjk3YTU3ZmIyZWMzMzlhZWNmZGExMWY0ZGI5NQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgT2N0IDI4IDEzOjM2OjU1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhhbmRsZSBvdGhlciBib2FyZCB2YXJpYW50IGluIFBNQzQ0MCBGUEdBIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYzJkYzliMDhjZjdjMDlmOWYyMzdmOGNiOTMwM2YxMTYwM2Q0ZmIwCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CU1vbiBPY3QgMjcgMTI6MzU6NTkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTWVyZ2UgeGlsaW54LXBwYzQ0MCBhbmQgeGlsaW54LXBwYzQwNSBjZmcKCiAgICBYaWxpbnggcHBjNDQwIGFuZCBwcGM0MDUgaGF2ZSBtYW55IHNpbWlsYXJpdGllcy4gVGhpcyBwYXRjaCBtZXJnZSB0aGUKICAgIGNvbmZpZyBmaWxlcyBvZiBib3RoIGluZnJhc3R1Y3R1cmVzCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2JlZmQ4NTYzM2QzM2M0ZGNjYTFmMzU5YzNmNDg0OGM1YWI4ZTRkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyNSAwNjo0NTozMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb3JyZWN0bHkgY29uZmlndXJlIHRoZSBHUElPIHBpbiBtdXhpbmcgb24gQXJjaGVzCgogICAgQXJjaGVzIGRvZXNuJ3QgdXNlIFBlckNTMyBidXQgR1BJTzQzLCBzbyBsZXQncyBjb25maWd1cmUgdGhlIEdQSU8KICAgIHBpbiBtdWx0aXBsZXhpbmcgY29ycmVjdGx5CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdjODRmZTZhMDZkYWQ5Zjc5M2VkODViMzliMWU2YzExYTc4ODJmNWMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgT2N0IDMwIDIzOjIyOjA0IDIwMDggKzAxMDAKCiAgICBGaXggdG8gdGhlIGF1dG8tdXBkYXRlIGZlYXR1cmUgZG9jdW1lbnRhdGlvbiAoQ09ORklHX1VQREFURV9URlRQX01TRUNfTUFYKQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNGJjN2RlZWU5MDk1ZjIxZTI0M2I3MjRjYTNkNjM0MjUxYzFkNTQzMgpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglXZWQgT2N0IDI5IDIzOjI3OjQ1IDIwMDggLTA1MDAKCiAgICBsaWJmZHQ6IEZpeCBidWcgaW4gZmR0X3N1Ym5vZGVfb2Zmc2V0X25hbWVsZW4oKQoKICAgIFRoZXJlJ3MgY3VycmVudGx5IGFuIG9mZi1ieS1vbmUgYnVnIGluIGZkdF9zdWJub2RlX29mZnNldF9uYW1lbGVuKCkKICAgIHdoaWNoIGNhdXNlcyBpdCB0byBrZWVwIHNlYXJjaGluZyBhZnRlciBpdCdzIGZpbmlzaGVkIHRoZSBzdWJub2RlcyBvZgogICAgdGhlIGdpdmVuIHBhcmVudCwgYW5kIGludG8gdGhlIHN1Ym5vZGVzIG9mIHNpYmxpbmdzIG9mIHRoZSBvcmlnaW5hbAogICAgbm9kZSB3aGljaCBjb21lIGFmdGVyIGl0IGluIHRoZSB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmMjQyYTA4ODcxODM5ZWFjMDgxYmE1YjU5OWFmOTc5ZjNhMTQ4YTBkCkF1dGhvcjogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KRGF0ZToJVHVlIE9jdCAyOCAwODoyNjo1MiAyMDA4ICswMTAwCgogICAgZmR0X3Jlc2l6ZSgpOiBlbnN1cmUgbWluaW11bSBwYWRkaW5nCgogICAgZmR0X2FkZF9tZW1fcnN2KCkgcmVxdWlyZXMgc3BhY2UgZm9yIGEgc3RydWN0IGZkdF9yZXNlcnZlX2VudHJ5CiAgICAoMTYgYnl0ZXMpLCBzbyBtYWtlIHN1cmUgdGhhdCBmZHRfcmVzaXplIGF0IGxlYXN0IGFkZHMgdGhhdCBtdWNoCiAgICBwYWRkaW5nLCBubyBtYXR0ZXIgd2hhdCB0aGUgbG9jYXRpb24gb3Igc2l6ZSBvZiB0aGUgZmR0IGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIEtvcnNnYWFyZCA8amFjbWV0QHN1bnNpdGUuZGs+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2ODViNzRjNjRhMzg4NDlmMWExMjliM2FiODQ2ZmJmNjdkZDkzN2UKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIxOjU5OjM1IDIwMDggKzA4MDAKCiAgICA3NHh4OiB1c2UgcjQgaW5zdGVhZCBvZiByMiBpbiBsb2NrX3JhbV9pbl9jYWNoZSBhbmQgdW5sb2NrX3JhbV9pbl9jYWNoZQoKICAgIFRoZSBwYXRjaCBpcyBmb2xsb3dpbmcgdGhlIGNvbW1pdCAzOTI0Mzg0MDYwNDE0MTVmZTY0YWI4NzQ4ZWM1YWI1YWQwMWQxY2Y3CgogICAgbXBjODZ4eDogdXNlIHI0IGluc3RlYWQgb2YgcjIgaW4gbG9ja19yYW1faW5fY2FjaGUgYW5kIHVubG9ja19yYW1faW5fY2FjaGUKCiAgICBUaGlzIGlzIG5lZWRlZCBpbiB1bmxvY2tfcmFtX2luX2NhY2hlKCkgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbSBDIGFuZAogICAgd2lsbCBjb3JydXB0IHRoZSBzbWFsbCBkYXRhIGFyZWEgYW5jaG9yIHRoYXQgaXMga2VwdCBpbiBSMi4KCiAgICBsb2NrX3JhbV9pbl9jYWNoZSgpIGlzIG1vZGlmaWVkIHNpbWlsYXJseSBhcyBnb29kIGNvZGluZyBwcmFjdGljZSwgYnV0CiAgICBpcyBub3QgY2FsbGVkIGZyb20gQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCiAgICBhbHNvLCB0aGUgcjIgaXMgdXNlZCBhcyBnbG9iYWwgZGF0YSBwb2ludGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA1M2FiMTkwM2NjYWU2MDQ4ZWY3NTkwMjViOWY2NzViYmE5MTQ1MApBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDI4IDExOjQ1OjA0IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4IHBjaTogUm91bmQgdXAgbWVtb3J5IHNpemUgaW4gaW5ib3VuZCB3aW5kb3cuCgogICAgVGhlIGN1cnJlbnQgY2FsY3VsYXRpb24gd2lsbCBmYWlsIHRvIGNvdmVyIGFsbCBtZW1vcnkgaWYKICAgIGl0cyBzaXplIGlzIG5vdCBhIHBvd2VyIG9mIHR3by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWM2NzE5NzdkYzgxMzU5NjI4YmUyN2FjOTljMTc0ZTc2ZTgwNjliYQpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjMgMjE6MTk6MTMgMjAwOCArMDgwMAoKICAgIDg2eHg6IHJlbW92ZSB0aGUgdW51c2VkIGRlZmluaXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVhYTQ0YzVkYzgzNzU2YzMwNjdiOWU2YzlkYjYyNmZhY2QwYjA2NjAKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDI4IDE3OjQ3OjQ5IDIwMDggKzA4MDAKCiAgICA4Nnh4OiByZW1vdmUgdGhlIHJlZHVuZGFudCByMiBnbG9iYWwgZGF0YSBwb2ludGVyIHNhdmUKCiAgICBUaGUgY29tbWl0IDY3MjU2Njc4ZjAwYzA5YjBhN2YxOWU4NjJlNWMxODQ3NTUzZDMxYmMgYWRkCiAgICB0aGUgYW5vdGhlciBnbG9iYWwgZGF0YSBwb2ludGVyIHNhdmUsIGJ1dCBpbiBmYWN0IHRoZQogICAgZ2xvYmFsIGRhdGEgcG9pbnRlciB3aWxsIGJlIGluaXRpYWxpemVkIGluIHRoZSBib2FyZF9pbml0X3IsCiAgICBzbyByZW1vdmUgaXQgc3VjaCBhcyB0aGUgODV4eC84M3h4IGZhbWlseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGt1bWFyLmdhbGFAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDg4OGU5NTQ0NDE5NjY1MzM0YTZmNDdmODFmMzQwMTFjZWEzOGYzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo0Nzo0MSAyMDA4ICswODAwCgogICAgODZ4eDogcmVtb3ZlIHRoZSB1bnVzZWQgY29kZSBmb3IgODZ4eCBmYW1pbHkKCiAgICBJIGJlbGlldmUgdGhlc2UgY29kZSB3YXMgY29waWVkIGZyb20gNzR4eCBmYW1pbHksIGJ1dCBmb3IKICAgIDg2eHgsIGl0IGlzIHVudXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGt1bWFyLmdhbGFAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YmExZWY1MDc0MDJiYzVlMzQ0ZGMzNzQyMDM3OTJhNDBmMjIyZThhCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo0NjozNSAyMDA4ICswODAwCgogICAgODZ4eDogcmVtb3ZlIHRoZSBzZWNvbmQgRERSIExBVyBzZXR0aW5nIGZvciBtcGM4NjQxaHBjbgoKICAgIFRoZSBERFIxIExBVyB3aWxsIHByZWNlZGVuY2UgdGhlIEREUjIgTEFXLCBzbyByZW1vdmUKICAgIHRoZSBzZWNvbmQgRERSIExBVy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzN2EyZGZkMTFhYzUxYWUzMTU0ZjEzZjMyMzYwOWIzM2E0YTA3MmUKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDI4IDE3OjQ2OjIzIDIwMDggKzA4MDAKCiAgICA4Nnh4OiByZW1vdmUgdGhlIHVudXNlZCBkZHJfZW5hYmxlX2VjYyBpbiB0aGUgYm9hcmQgZmlsZQoKICAgIFRoZSBERFIgY29udHJvbGxlciBvZiA4Nnh4IHByb2Nlc3NvcnMgaGF2ZSB0aGUgRUNDIGRhdGEgaW5pdAogICAgZmVhdHVyZSwgYW5kIHRoZSBuZXcgRERSIGNvZGUgaXMgdXNpbmcgdGhlIGZlYXR1cmUsIHdlIGRvbid0CiAgICBuZWVkIHRoZSB3YXkgd2l0aCBETUEgdG8gaW5pdCBtZW1vcnkgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxrdW1hci5nYWxhQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGMyYWRhZDg1YmY1ODBkNjU5MTZjOTQwNjgzZjZlOTY3MWU4YTVkZApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMjggMTc6NDY6MTIgMjAwOCArMDgwMAoKICAgIDg2eHg6IE1vdmUgdGhlIGNsZWFyX3RsYnMgYmVmb3JlIE1NVSB0dXJuIG9uCgogICAgV2UgbXVzdCBpbnZhbGlkYXRlIFRMQnMgYmVmb3JlIE1NVSB0dXJuIG9uLCBidXQKICAgIGN1cnJlbnRseSB0aGUgY29kZSBpcyBub3QsIGlmIHRoZXJlIGFyZSBzb21lIHN0YWxlCiAgICBUTEIgZW50cnkgdmFsaWQgaW4gdGhlIFRMQnMsIGl0IHdpbGwgY2F1c2Ugc3RyYW5nZQogICAgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1Y2RhZGUwN2IxMThkMDcxNTRjYjg4MjY1MGY5Nzc4Y2VjYzhhODdjCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjcgMTU6NTc6MDggMjAwOCAtMDUwMAoKICAgIG1wYzgzMTNlcmRiOiBEb2N1bWVudCBOQU5EIGJvb3QuCgogICAgUHJldmlvdXNseSwgdGhlIGRvY3VtZW50YXRpb24gY2xhaW1lZCB0aGF0IE5BTkQgYm9vdCBpcyBub3Qgc3VwcG9ydGVkLgogICAgVGhpcyBpcyBubyBsb25nZXIgdHJ1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDc4YmM2YjJhZWJmNTU2NmFhYzQ2NGY5MzZiODhkZmQ5N2FiMGJkCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjkgMTQ6MjA6MjYgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IFByb3Blcmx5IGNyZWF0ZSBKRkZTMiBjbGVhbm1hcmtlcnMuCgogICAgQXMgcmVwb3J0ZWQgYnkgSWxrbyBJbGlldiA8aWxpZXZAcm9uZXRpeC5hdD4sIHRoZSAibmFuZCBlcmFzZSBjbGVhbiIKICAgIGNvbW1hbmQgaXMgY3VycmVudGx5IGJyb2tlbiwgYW5kIGFtb25nIG90aGVyIHRoaW5ncyBjYXVzZXMgYWxsIGJsb2NrcwogICAgdG8gYmUgbWFya2VkIGJhZC4KCiAgICBUaGlzIGltcGxlbWVudHMgaXQgcHJvcGVybHkgdXNpbmcgTVREX09PQl9BVVRPLCBhbG9uZyB3aXRoIHNvbWUKICAgIGluZGVudGF0aW9uIGZpeGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3ZmU1N2MwOTg2NmI0NDY5MmQxOGM4Y2YyMjgyOGJkMTM3ZWM1OGQKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyOSAxMzo0Mjo0MSAyMDA4IC0wNTAwCgogICAgTkFORCBmc2wgZWxiYzogU2V0IEZNUltFQ0NNXSBiYXNlZCBvbiBwYWdlIHNpemUuCgogICAgSGFyZHdhcmUgZXhwZWN0cyBFQ0NNIDAgZm9yIHNtYWxsIHBhZ2UgYW5kIEVDQ00gMSBmb3IgbGFyZ2UgcGFnZQogICAgd2hlbiBib290aW5nIGZyb20gTkFORCwgc28gdXNlIHRob3NlIGRlZmF1bHRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMwMTNiNzQ5NzVkYWIwODA1ZWY2ZDM2OWIwMTMyMzBjNGU4YTY2MGQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDI5IDEzOjMyOjU5IDIwMDggLTA0MDAKCiAgICBOQU5EOiBBZGQgc3VwcG9ydCBmb3IgTVBDODU3MkRTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBkZWZpbmVzIDFNIFRMQiZMQVcgc2l6ZSBmb3IgTkFORCBvbiBNUEM4NTcyRFMsIGFzc2lnbnMKICAgIDB4ZmZhMDAwMDAgZm9yIENPTkZJR19TWVNfTkFORF9CQVNFIGFuZCBhZGRzIG90aGVyIE5BTkQgc3VwcG9ydHMgaW4KICAgIGNvbmZpZyBmaWxlLgoKICAgIEl0IGFsc28gbW92ZXMgZW52aXJvbm1lbnQoQ09ORklHX0VOVl9BRERSKSBvdXRzaWRlIG9mIHUtYm9vdCBpbWFnZSwgdG8KICAgIG1ha2Ugcm9vbSBmb3IgdGhlIGluY3JlYXNlZCBjb2RlIHNpemUgd2l0aCBOQU5EIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZTE5MGIwM2FhZjIzMDliZDJlMDI1ZDExODdhMmNhODgwZmVkYzk1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyOSAxMTowNTo1NSAyMDA4IC0wNDAwCgogICAgTWFrZSBGcmVlc2NhbGUgbG9jYWwgYnVzIHJlZ2lzdGVycyBhdmFpbGFibGUgZm9yIGJvdGggODN4eCBhbmQgODV4eC4KCiAgICAtIFJlbmFtZSBsYnVzODN4eF90IHRvIGZzbF9sYnVzX3QgYW5kIG1vdmUgaXQgdG8gYXNtL2ZzbF9sYmMuaCBzbyB0aGF0IGl0CiAgICAgIGNhbiBiZSBzaGFyZWQgYnkgYm90aCA4M3h4IGFuZCA4NXh4CiAgICAtIFJlbW92ZSBsYnVzODN4eF90IGFuZCByZXBsYWNlIGl0IHdpdGggZnNsX2xidXNfdCBpbiBhbGwgODN4eCBib2FyZHMKICAgICAgZmlsZXMgd2hpY2ggdXNlIGxidXM4M3h4X3QuCiAgICAtIE1vdmUgRk1SLCBGSVIsIEZDUiwgRlBBUiwgTFRFU1IgZnJvbSBtcGM4M3h4LmggdG8gYXNtL2ZzbF9sYmMuaCBzbyB0aGF0CiAgICAgIDg1eHggY2FuIHNoYXJlIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTVjMTMwZTRiZjc1YjQ0NDcyMGRkZmQ4M2FjYTg4ZjQxYzA0NmNmCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjcgMTU6Mzg6MzAgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IEFsaWduIHJpZ2h0IGNvbHVtbiBvZiB0aGUgc2hvcnRoZWxwIHdpdGggb3RoZXIgY29tbWFuZHMuCgogICAgSSBhY2NpZGVudGFsbHkgYnJva2UgdGhpcyBpbiB3aGVuIG1ha2luZyBjb25zaXN0ZW50IHRoZSBwYXJ0aWFsCiAgICBhbGlnbm1lbnQgb2YgdGhlIGxvbmdoZWxwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMzZWZkZTVlY2FjOTFhYjExOGZmMDBiOTVhMTgxZmQ2ZDc1Zjg2NDUKQXV0aG9yOiBLYXJsIEJlbGRhbiA8a2FybC5iZWxkYW5AZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDE1IDE2OjA4OjAzIDIwMDggKzAyMDAKCiAgICBOQU5EOiBSZXNldCBjaGlwIG9uIHBvd2VyLXVwCgogICAgU29tZSBjaGlwcyByZXF1aXJlIGEgUkVTRVQgYWZ0ZXIgcG93ZXItdXAgKGUuZy4gTWljcm9uIE1UMjlGeEd4eHh4eCkuCiAgICBUaGUgZmlyc3QgY29tbWFuZCBzZW50IGlzIE5BTkRfQ01EX1JFQURJRC4KICAgIElzc3VlIGEgTkFORF9DTURfUkVTRVQgaW4gbmFuZF9zY2FuX2lkZW50IGJlZm9yZSByZWFkaW5nIHRoZSBkZXZpY2UgaWQuCiAgICBUZXN0ZWQgd2l0aCBhbiBNVDI5RjRHMDhBQUMuCgogICAgU2lnbmVkLW9mZi1ieTogS2FybCBCZWxkYW4gPGthcmwuYmVsZGFuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM0NTkxMmQ4YWJjNTJkZTc5NmI5MDU5YTU4ZmFmN2M0MTY2ZWFiNTgKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNCAxNjoyMDo0MyAyMDA4IC0wNTAwCgogICAgTkFORDogc3luYyB3aXRoIDIuNi4yNwoKICAgIFRoaXMgYnJpbmdzIHRoZSBjb3JlIE5BTkQgY29kZSB1cCB0byBkYXRlIHdpdGggdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaW5jZSB0aGVyZSB3ZXJlIHNldmVyYWwgZHJpdmVycyBpbiBMaW51eCBhcyBvZiB0aGUgbGFzdCB1cGRhdGUgdGhhdCBhcmUKICAgIG5vdCBpbiB1LWJvb3QsIEknbSBub3QgYnJpbmdpbmcgb3ZlciBuZXcgZHJpdmVycyB0aGF0IGhhdmUgYmVlbiBhZGRlZAogICAgc2luY2UgaW4gdGhlIGFic2VuY2Ugb2YgYW4gaW50ZXJlc3RlZCBwYXJ0eS4KCiAgICBJIGRpZCBub3QgdXBkYXRlIE9uZU5BTkQgc2luY2UgaXQgd2FzIHJlY2VudGx5IHN5bmNlZCBieSBLeXVuZ21pbiBQYXJrLAogICAgYW5kIEknbSBub3Qgc3VyZSBleGFjdGx5IHdoYXQgdGhlIGNvbW1vbiBhbmNlc3RvciBpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMWQwZGIxODA1YzMzOTUxNDk3NzdlNTA3YjZkYTUzNDEwYWJhYzRlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyMSAxNzoyNTo0NyAyMDA4IC0wNTAwCgogICAgYm9vdG06IEFkZGVkIENPTkZJR19CT09UTV97TElOVVgsIE5FVEJTRCwgUlRFTVN9CgogICAgQWRkZWQgdGhlIGFiaWxpdHkgdG8gY29uZmlnIG91dCBib290bSBzdXBwb3J0IGZvciBMaW51eCwgTmV0QlNELCBSVEVNUwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWE5ODEyN2Q4MWE2ZWVmYzVhNzhhNzA0ZGY2MTliZmUzNjJlZWI4NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMTc6MjU6NDYgMjAwOCAtMDUwMAoKICAgIGJvb3RtOiBzdXBwb3J0IHN1YmNvbW1hbmRzIGluIGxpbnV4IHBwYyBib290bQoKICAgIEFkZCBzdXBwb3J0IGZvciAnYmR0JywgJ2NtZGxpbmUnLCAncHJlcCcgdG8gdGhlIGxpbnV4IFBQQyBib290bS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ5YzNhODYxZDExNzM1ODM4ZjFmMWIxMTk5OWNlNDMzMDA2ZGM5MTkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIxIDE3OjI1OjQ1IDIwMDggLTA1MDAKCiAgICBib290bTogQWRkIHN1YmNvbW1hbmRzCgogICAgQWRkIHRoZSBhYmlsaXR5IHRvIGJyZWFrIHRoZSBzdGVwcyBvZiB0aGUgYm9vdG0gY29tbWFuZCBpbnRvIHNldmVyYWwKICAgIHN1YmNvbW1hbmRzOiBzdGFydCwgbG9hZG9zLCByYW1kaXNrLCBmZHQsIGJkdCwgY21kbGluZSwgcHJlcCwgZ28uCgogICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gdGhpbmdzIGxpa2UgbWFuaXB1bGF0ZSBkZXZpY2UgdHJlZXMgYmVmb3JlCiAgICB0aGV5IGFyZSBwYXNzZWQgdG8gYSBib290aW5nIGtlcm5lbCBvciBzZXR1cCBtZW1vcnkgZm9yIGEgc2Vjb25kYXJ5CiAgICBjb3JlIGluIG11bHRpY29yZSBzaXR1YXRpb25zLgoKICAgIE5vdCBhbGwgT1MgdHlwZXMgc3VwcG9ydCBhbGwgc3ViY29tbWFuZHMgKGN1cnJlbnRseSBvbmx5IHN0YXJ0LCBsb2Fkb3MsCiAgICByYW1kaXNrLCBmZHQsIGFuZCBnbyBhcmUgc3VwcG9ydGVkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlMDgzMTU5MzM1MzdmMDYxYmMxY2U2MWYzM2EyOWM1NjQ1OGJiYWQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIxIDE3OjI1OjQ0IDIwMDggLTA1MDAKCiAgICBib290bTogTW92ZSB0byB1c2luZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdGFibGUgZm9yIHRoZSBib290IG9zIGZ1bmN0aW9uCgogICAgVGhpcyByZW1vdmVzIGEgYml0IG9mIGNvZGUgYW5kIG1ha2VzIGl0IGVhc2llciBmb3IgdGhlIHVwY29taW5nIHN1YiBib290bQogICAgY29tbWFuZCBzdXBwb3J0IHRvIGNhbGwgaW50byB0aGUgcHJvcGVyIE9TIHNwZWNpZmljIGhhbmRsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTM2OWY0YTQ5MmZhMjgwNWQ4Nzc3NWQyNzM4MGYwZWVhY2EzNWFhNgpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjkgMjM6MDM6MTQgMjAwOCArMTAwMAoKICAgIGkzODY6IFJlbmFtZWQgc2hvd19ib290X3Byb2dyZXNzIGluIGFzc2VtYmxlciBjb2RlCgogICAgUmVuYW1lZCBzaG93X2Jvb3RfcHJvZ3Jlc3MgaW4gYXNzZW1ibGVyIGluaXQgcGhhc2UgdG8KICAgIHNob3dfYm9vdF9wcm9ncmVzc19hc20gdG8gYXZvaWQgbGluayBjb25mbGljdHMgd2l0aCBDIHZlcnNpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IDQ0NDJmNDViMGUxY2JhZDM1YWEyMmQ0Y2FkMjJiOTBhNTdlM2YzMmQKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglNb24gT2N0IDI3IDE2OjQyOjAwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBVcGRhdGUgTVBDODV4eF9QT1JERVZTUl9JT19TRUwgbWFzawoKICAgIFRoZSBNUEM4NTcyIGhhcyBhIDQtYml0IHdpZGUgUE9SREVWU1IgSU9fU0VMIGZpZWxkLiBPdGhlciBNUEM4NXh4CiAgICBwcm9jZXNzb3JzIGhhdmUgYSAzLWJpdCB3aWRlIElPX1NFTCBmaWVsZCBidXQgaGF2ZSB0aGUgbW9zdAogICAgc2lnbmlmaWNhbnQgYml0IGlzIHdpcmVkIHRvIDAgc28gdGhpcyBjaGFuZ2Ugc2hvdWxkIG5vdCBhZmZlY3QKICAgIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBjZDQyNTE2MjQyMDVjYjk3MTA0ZjZlMzI2NzlkYzc3NTQ5MzRmNzExCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjcgMTY6MDk6NDIgMjAwOCAtMDUwMAoKICAgIHBvd2VycGM6IGZpeCBwY2kgd2luZG93IGluaXRpYWxpemF0aW9uIHRvIHdvcmsgd2l0aCA+IDRHQiBEUkFNCgogICAgVGhlIGV4aXN0aW5nIGNvZGUgaGFzIGEgZmV3IGVycm9ycyB0aGF0IG5lZWQgdG8gYmUgZml4ZWQgaW4KICAgIG9yZGVyIHRvIHN1cHBvcnQgbGFyZ2UgUkFNIHNpemVzLiAgRml4IHRob3NlLCBhbmQgYWRkIGEKICAgIGNvbW1lbnQgdG8gbWFrZSBpdCBjbGVhcmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjE5NTQyYTFhNjZjYTAxN2IxMjg2MDkyMDcxNGE5ODU5YjE4YTVkNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBPY3QgMjcgMTM6MTY6MjAgMjAwOCAtMDUwMAoKICAgIHBjaS9mc2xfcGNpX2luaXQ6IFJlbW92ZWQgYSBidW5jaCBwb2ludGxlc3MgdHJhaWxpbmcgYmFja3NsYXNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA2YjU5ZTAzZTAyMzdhNDBhMjMwNWVhMzg1ZGVmZGZkOTIwMDA5NzhiCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MjIgMjAwOCArMDIwMAoKICAgIGxjZDogTGV0IHRoZSBib2FyZCBjb2RlIHNob3cgYm9hcmQtc3BlY2lmaWMgaW5mbwoKICAgIFRoZSBpbmZvcm1hdGlvbiBkaXNwbGF5ZWQgd2hlbiBDT05GSUdfTENEX0lORk8gaXMgc2V0IGlzIGluaGVyZW50bHkKICAgIGJvYXJkLXNwZWNpZmljLCBzbyBpdCBzaG91bGQgYmUgZG9uZSBieSB0aGUgYm9hcmQgY29kZS4gVGhlIGN1cnJlbnQgY29kZQogICAgZGVhbGluZyB3aXRoIHRoaXMgb25seSBoYW5kbGVzIHR3byBjYXNlcywgYW5kIGlzIGFscmVhZHkgYSBob3JyaWJsZSBtZXNzCiAgICBvZiAjaWZkZWZmZXJ5LgoKICAgIFllcywgdGhpcyBkdXBsaWNhdGVzIHNvbWUgY29kZSwgYnV0IGl0IGFsc28gYWxsb3dzIGJvYXJkcyB0byBwcmludCBtb3JlCiAgICBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbjsgdGhpcyB1c2VkIHRvIGJlIHZlcnkgZGlmZmljdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA2ZjkzZDJiOGZjYTUwNDIwMGE1NzU4ZjdjNmRkMmQ2ODUyOTAwNzY1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MjEgMjAwOCArMDIwMAoKICAgIGxjZDogU2V0IGxjZF9pc19lbmFibGVkIGJlZm9yZSBjbGVhcmluZyB0aGUgc2NyZWVuCgogICAgVGhpcyBhbGxvd3MgdGhlIGxvZ28vaW5mbyByZW5kZXJpbmcgcm91dGluZXMgdG8gdXNlIHRoZSByZWd1bGFyCiAgICBsY2RfcHV0Yy9sY2RfcHV0cy9sY2RfcHJpbnRmIGNhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAxNWIxN2FiNTJiN2MxNWQ0NmQ5ZmM2MzFjYzA2MDkyZTFlNzY0ZGUyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MjAgMjAwOCArMDIwMAoKICAgIGxjZDogSW1wbGVtZW50IGxjZF9wcmludGYoKQoKICAgIGxjZF9wcmludGYoKSBoYXMgYSBwcm90b3R5cGUgaW4gaW5jbHVkZS9sY2QuaCBidXQgbm8gaW1wbGVtZW50YXRpb24uIEZpeAogICAgdGhpcyBieSBib3Jyb3dpbmcgdGhlIGxjZF9wcmludGYoKSBpbXBsZW1lbnRhdGlvbiBmcm9tIHRoZSBjb2dlbnQgYm9hcmQKICAgIGNvZGUgKHdoaWNoIGFwcGVhcnMgdG8gdXNlIGl0cyBvd24gTENEIGZyYW1ld29yay4pCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDcwZGJjNTRjMGE1Yzc5OGJjZjgyYWUyYTFlMjI3NDA0ZjQxMmU4OTIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBTZXAgMSAxNjoyMToxOSAyMDA4ICswMjAwCgogICAgYXRtZWxfbGNkZmI6IFN0cmFpZ2h0ZW4gb3V0IGZ1bmt5IHZsX3N5bmMgbG9naWMKCiAgICBJZiB0aGUgYm9hcmQgX2RpZG4ndF8gcmVxdWVzdCBJTlZMSU5FX0lOVkVSVEVELCB3ZSBzZXQgSU5WTElORV9JTlZFUlRFRCwKICAgIG90aGVyd2lzZSB3ZSBkb24ndC4gV1RGPwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAyM2JiMjhmMGY3NmI0NmM0YjU3MzM3NGIwYmIzYjNmMjNkODVlZjU1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MTggMjAwOCArMDIwMAoKICAgIGF0bWVsX2xjZGZiOiBFbGltaW5hdGUgdW5uZWVkZWQgI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CgogICAgYXRtZWxfbGNkZmIgZG9lc24ndCBhY3R1YWxseSBuZWVkIGFueXRoaW5nIGZyb20gYXNtL2FyY2gvaGFyZHdhcmUuaC4gSXQKICAgIGluY2x1ZGVzIGEgZmlsZSB0aGF0IGRvZXMsIGFzbS9hcmNoL2dwaW8uaCwgYnV0IHRoaXMgZmlsZSBkb2Vzbid0CiAgICBpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPiBsaWtlIGl0J3Mgc3VwcG9zZWQgdG8uCgogICAgQWRkIHRoZSBtaXNzaW5nIGluY2x1ZGUgdG8gYXNtL2FyY2gvZ3Bpby5oIGFuZCByZW1vdmUgdGhlIHdvcmthcm91bmQKICAgIGZyb20gdGhlIGF0bWVsX2xjZGZiIGRyaXZlci4gVGhpcyBtYWtlcyB0aGUgZHJpdmVyIGNvbXBpbGUgb24gYXZyMzIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGMyMDgzZTBlMTFhMDNlZjhiZTJlOWYwZWQ4NzIwZmRjMjA4MzJmM2UKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgT2N0IDIyIDE0OjM4OjU1IDIwMDggLTA1MDAKCiAgICA4Nnh4OiBDb252ZXJ0IGFsbCBmc2xfcGNpX2luaXQgdXNlcnMgdG8gbmV3IEFQSXMKCiAgICBDb252ZXJ0ZWQgTVBDODYxMEhDUEQsIE1QQzg2NDFIUENOLCBhbmQgU0JDODY0MUQgdG8gdXNlCiAgICBmc2xfcGNpX3NldHVwX2luYm91bmRfd2luZG93cygpIGFuZCBmdF9mc2xfcGNpX3NldHVwKCkuCgogICAgV2l0aCB0aGVzZSBjaGFuZ2VzIHRoZSBib2FyZCBjb2RlIGlzIGEgYml0IHNtYWxsZXIgYW5kIHdlIGdldCBkbWEtcmFuZ2VzCiAgICBzZXQgaW4gdGhlIGRldmljZSB0cmVlIGZvciB0aGVzZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBGbGVtaW5nLUFGTEVNSU5HIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmRiYTBkZWE5OGMwZGVlMTc5OWZmZDZmZDZlYjU0MTY0NWRiYmQ5OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMDg6Mjg6MzMgMjAwOCAtMDUwMAoKICAgIDg1eHg6IENvbnZlcnQgYWxsIGZzbF9wY2lfaW5pdCB1c2VycyB0byBuZXcgQVBJcwoKICAgIENvbnZlcnRlZCBBVFVNODU0OCwgTVBDODUzNkRTLCBNUEM4NTQ0RFMsIE1QQzg1NDhDRFMsIE1QQzg1NjhNRFMsCiAgICBNUEM4NTcyRFMsIFRRTTg1eHgsIGFuZCBTQkM4NTQ4IHRvIHVzZSBmc2xfcGNpX3NldHVwX2luYm91bmRfd2luZG93cygpCiAgICBhbmQgZnRfZnNsX3BjaV9zZXR1cCgpLgoKICAgIFdpdGggdGhlc2UgY2hhbmdlcyB0aGUgYm9hcmQgY29kZSBpcyBhIGJpdCBzbWFsbGVyIGFuZCB3ZSBnZXQgZG1hLXJhbmdlcwogICAgc2V0IGluIHRoZSBkZXZpY2UgdHJlZSBmb3IgdGhlc2UgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMmFhYjQ2MDcyN2U1ZjY3NDM1M2E4M2E4MTAwMGVmNzk0YmZmY2FlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyMyAwMDowMTowNiAyMDA4IC0wNTAwCgogICAgcGNpL2ZzbF9wY2lfaW5pdDogQWRkZWQgZmR0IGhlbHBlciBmb3Igc2V0dGluZyB1cCBidXMtcmFuZ2VzICYgZG1hLXJhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOWExZmE5Nzg3YTNhNzk1NzNmNWY5MzJhNGY4YWEyMTZiY2IxNzg1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE9jdCAyMiAxNDowNjoyNCAyMDA4IC0wNTAwCgogICAgcGNpL2ZzbF9wY2lfaW5pdDogQWRkIGEgY29tbW9uIFBDSSBpbmJvdW5kIHNldHVwIGZ1bmN0aW9uCgogICAgQWRkIGEgY29tbW9uIHNldHVwIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyB0aGUgcGNpX3JlZ2lvbihzKSBiYXNlZAogICAgb24gaG93IG11Y2ggbWVtb3J5IHdlIGhhdmUgaW4gdGhlIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEZsZW1pbmctQUZMRU1JTkcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjEyZWEwMTAxOGE0NTkyMzRkNTRlZDU3ZWM2YTVhMjQ0Y2U3NTY3OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMTA6MTM6MTQgMjAwOCAtMDUwMAoKICAgIHBjaS9mc2xfcGNpX2luaXQ6IEVuYWJsZSBsYXJnZXIgYWRkcmVzcyBhbmQgc2V0dGluZyBpbmJvdW5kIHdpbmRvd3MgcHJvcGVybHkKCiAgICAqIFBDSSBJbmJvdW5kIHdpbmRvdyB3YXMgc2V0dXAgaW5jb3JyZWN0bHkuICBUaGUgUENJIGFkZHJlc3MgYW5kIHN5c3RlbQogICAgICBhZGRyZXNzIHdlcmUgc3dhcHBlZC4gIFRoZSBQQ0kgYWRkcmVzcyBzaG91bGQgYmUgc2V0dGluZyBwaXdhci9waXdiZWFyCiAgICAgIGFuZCB0aGUgc3lzdGVtIGFkZHJlc3Mgc2hvdWxkIGJlIHNldHRpbmcgcGl0YXIuCgogICAgKiBSZW1vdmVkIG1hc2tpbmcgb2YgYWRkcmVzc2VzIHRvIGFsbG93IGZvciBzeXN0ZW0gYWRkcmVzcyB0byBzdXBwb3J0CiAgICAgIHN5c3RlbSBhZGRyZXNzICYgUENJIGFkZHJlc3MgPjMyLWJpdHMKCiAgICAqIFNldCBQSVdCRUFSICYgUE9URUFSIHRvIGFsbG93IGZvciBmdWxsIDY0LWJpdCBQQ0kgYWRkcmVzc2VzCgogICAgKiBSZXNwZWN0IHRoZSBQQ0lfUkVHSU9OX1BSRUZFVENIIGZvciBpbmJvdW5kIHdpbmRvd3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEZsZW1pbmctQUZMRU1JTkcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGFiNDUxYzQ2Yjg0NmYyYmJkNzEyMmIyOWZmZGQ5YTRhMDRkYTIyOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMjIgMjM6MzM6NTYgMjAwOCAtMDUwMAoKICAgIGZkdDogQWRkZWQgaGVscGVyIHRvIHNldCBQQ0kgZG1hLXJhbmdlcyBwcm9wZXJ0eQoKICAgIEFkZGVkIGZkdF9wY2lfZG1hX3JhbmdlcygpIHRoYXQgcGFyc2VzIHRoZSBwY2lfcmVnaW9uIGluZm8gZnJvbSB0aGUKICAgIHN0cnVjdCBwY2lfY29udHJvbGxlciBhbmQgcG9wdWxhdGVzIHRoZSBkbWEtcmFuZ2VzIGJhc2VkIG9uIGl0LgoKICAgIFRoZSBtYXggIyBvZiB3aW5kd3MvZG1hLXJhbmdlcyB3ZSBzdXBwb3J0IGlzIDMgc2luY2Ugb24gZW1iZWRkZWQKICAgIFBvd2VyUEMgYmFzZWQgc3lzdGVtcyB0aGlzIGlzIHRoZSBtYXggbnVtYmVyIG9mIHdpbmRvd3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBGbGVtaW5nLUFGTEVNSU5HIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiZWQyYWFmMmQ1MGZkMTMyNzNjMTRkMTdkNGZkNDBlZjQyZTBkMGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDIzIDAwOjA1OjQ3IDIwMDggLTA1MDAKCiAgICBmZHQ6IEFkZCBmZHRfZ2V0cHJvcF91MzJfZGVmYXVsdCBoZWxwZXJzCgogICAgQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gcmV0dXJuIGZpbmQgYSBub2RlIGFuZCByZXR1cm4gaXQncyBwcm9wZXJ0eQogICAgb3IgYSBkZWZhdWx0IHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDhiYTkzZjY4YTFiYWU4OWUwMzM1MjdjZTY3YjQxYjRhODdhYTViN2YKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIxIDE4OjA2OjE1IDIwMDggLTA1MDAKCiAgICA4Nnh4OiBFbmFibGUgNjQtYml0IFBDSSByZXNvdXJjZXMgb24gYWxsIEZyZWVzY2FsZSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEZsZW1pbmctQUZMRU1JTkcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDE1MWNiYWNjZjQ1MDQ4MjFlY2ZkZTAyMTcyOTliZDc0MDA4NmJiNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMTE6MzM6NTggMjAwOCAtMDUwMAoKICAgIDg1eHg6IEVuYWJsZSA2NC1iaXQgUENJIHJlc291cmNlcyBvbiBhbGwgRnJlZXNjYWxlIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMGU3NmQ1ZTNiYzRjNTIwOGVlNjM1ODVmZTEyYjQwOWQ5MzA4Y2Q4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyMSAwODozNjowOCAyMDA4IC0wNTAwCgogICAgcGNpOiBBbGxvdyBmb3IgUENJIGFkZHJlc3NlcyB0byBiZSA2NC1iaXQKCiAgICBQQ0kgYnVzIGlzIGluaGVyZW50bHkgNjQtYml0LiAgV2hpbGUgbm90IGFsbCBzeXN0ZW0gcmVxdWlyZSBhY2Nlc3MgdG8KICAgIHRoZSBmdWxsIDY0LWJpdCBQQ0kgYWRkcmVzcyByYW5nZSBzb21lIGRvLglUaGlzIGFsbG93cyB0aG9zZSBzeXN0ZW1zCiAgICB0byBlbmFibGUgdGhlIGZ1bGwgUENJIGFkZHJlc3Mgd2lkdGggdmlhIENPTkZJR19TWVNfUENJXzY0QklULgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFlNWY5NDNiYThlZGU0NDhhNGIxYTE0NWZkODkxMTg1NjcwMWVjYzUKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIxOjE4OjUzIDIwMDggKzA4MDAKCiAgICA4NXh4OiBGaXggdGhlIGluY29ycmVjdCByZWdpc3RlciB1c2VkIGZvciBERFIgZXJyYXR1bTEKCiAgICBUaGUgODU3MiBERFIgZXJyYXR1bTE6CiAgICBERFIgY29udHJvbGxlciBtYXkgZW50ZXIgYW4gaWxsZWdhbCBzdGF0ZSB3aGVuIG9wZXJhdGluZwogICAgaW4gMzItYml0IGJ1cyBtb2RlIHdpdGggNC1iZWF0IGJ1cnN0cy4KCiAgICBEZXNjcmlwdGlvbjoKICAgIFdoZW4gb3BlcmF0aW5nIHdpdGggYSAzMi1iaXQgYnVzLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0CiAgICBERFJfU0RSQU1fQ0ZHWzhfQkVdIGlzIGNsZWFyZWQgd2hlbiBERFIyIG1lbW9yaWVzIGFyZSB1c2VkLgogICAgVGhpcyBmb3JjZXMgdGhlIEREUiBjb250cm9sbGVyIHRvIHVzZSA0LWJlYXQgYnVyc3RzIHdoZW4KICAgIGNvbW11bmljYXRpbmcgdG8gdGhlIERSQU1zLiBIb3dldmVyLCBhbiBpc3N1ZSBleGlzdHMgdGhhdAogICAgY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gd2hlbiB0aGUgRERSIGNvbnRyb2xsZXIgaXMKICAgIGluIDMyLWJpdCBidXMgbW9kZSB3aGlsZSB1c2luZyA0LWJlYXQgYnVyc3RzLgoKICAgIFByb2plY3RlZCBJbXBhY3Q6CiAgICBJZiB0aGUgRERSIGNvbnRyb2xsZXIgaXMgb3BlcmF0aW5nIGluIDMyLWJpdCBidXMgbW9kZSB3aXRoCiAgICA0LWJlYXQgYnVyc3RzLCB0aGVuIHRoZSBjb250cm9sbGVyIG1heSBlbnRlciBpbnRvIGEgYmFkIHN0YXRlLgogICAgQWxsIHN1YnNlcXVlbnQgcmVhZHMgZnJvbSBtZW1vcnkgaXMgY29ycnVwdGVkLgogICAgRm91ci1iZWF0IGJ1cnN0cyB3aXRoIGEgMzItYml0IGJ1cyBvbmx5IGlzIHVzZWQgd2l0aCBERFIyIG1lbW9yaWVzLgogICAgVGhlcmVmb3JlLCB0aGlzIGVycmF0dW0gZG9lcyBub3QgYWZmZWN0IEREUjMgbW9kZS4KCiAgICBXb3JrIEFyb3VuZHM6CiAgICBUbyB3b3JrIGFyb3VuZCB0aGlzIGlzc3VlLCBzb2Z0d2FyZSBtdXN0IHNldCBERUJVR18xWzMxXSBpbgogICAgRERSIG1lbW9yeSBtYXBwZWQgc3BhY2UgKENDU1JCQVIgb2Zmc2V0ICsgMHgyZjAwIGZvciBERFJfMQogICAgYW5kIENDU1JCQVIgb2Zmc2V0ICsgMHg2ZjAwIGZvciBERFJfMikuCgogICAgQ3VycmVubHR5LCB0aGUgY29kZSBpcyB1c2luZyBpbmNvcnJlY3QgcmVnaXN0ZXIgRERSX1NEUkFNX0NGR18yCiAgICBhcyBjb25kaXRpb24sIGJ1dCBpdCBzaG91bGQgYmUgRERSX1NEUkFNX0NGRyByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1YjY5MzA5MGVkMDhkMjRjMTg0OTFkZjlkOGZjNzM4N2IyOTA2ZjMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIxOjE3OjE5IDIwMDggKzA4MDAKCiAgICA4NXh4OiByZW1vdmUgdW51c2VkIGNvbmZpZyBkZWZpbml0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjA2MGMzYmY4MjgzMjMzMWE1MDlmMmU1ZDI0NDI1MzllN2FhZDA5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyMyAwMTo0NzozOCAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkIGJhc2ljIGU1MDBtYyBjb3JlIHN1cHBvcnQKCiAgICBJbnRyb2R1Y2UgQ09ORklHX0U1MDBNQyB0byBkZWFsIHdpdGggdGhlIG1pbm9yIGRpZmZlcmVuY2VzIGJldHdlZW4KICAgIGU1MDB2MiBhbmQgZTUwMG1jLgoKICAgICogQ2VydGFpbiBmaWVsZHMgb2YgSElEMC8xIGRvbid0IGV4aXN0IGFueW1vcmUgb24gZTUwMG1jCiAgICAqIENhY2hlIGxpbmUgc2l6ZSBpcyA2NC1ieXRlcyBvbiBlNTAwbWMKICAgICogcmVzZXQgdmFsdWUgb2YgUElSIGlzIGRpZmZlcmVudAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTM4YTViNmVkZDMwZjI5ZmQ1ZmRiMWQ3ZjY3NDUyMTkwNmMwZTY3NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMjMgMDE6NDc6MzcgMjAwOCAtMDUwMAoKICAgIDg1eHg6IFVzZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIGluc3RlYWQgb2YgbWFnaWMgbnVtYmVyCgogICAgVXNpbmcgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSBpbnN0ZWFkIG9mIDMxIG1lYW5zIHdlIGNhbiBoYW5kbGUKICAgIGU1MDBtYydzIDY0LWJ5dGUgY2FjaGVsaW5lIHByb3Blcmx5IHdoZW4gaXQgZ2V0cyBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDVkZWI4MDIyYzM3NDlmYWFjMzBlOWFkOTY5NDY5MWUyNDQyYjVjOTMKQXV0aG9yOiBHZW9yZyBTY2hhcmR0IDxzY2hhcmR0QHRlYW0tY3RlY2guZGU+CkRhdGU6CUZyaSBPY3QgMjQgMTM6NTE6NTIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTmV3IGJvYXJkIGF2bmV0IGZ4MTIgbWluaW1vZHVsCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBhdm5ldCBmeDEyIG1pbmltb2R1bC4KICAgIEl0IG5lZWRzIHRoZSAicHBjNHh4OiBHZW5lcmljIGFyY2hpdGVjdHVyZSBmb3IgeGlsaW54IHBwYzQwNSIKICAgIHBhdGNoIGZyb20gUmljYXJkby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZW9yZyBTY2hhcmR0IDxzY2hhcmR0QHRlYW0tY3RlY2guZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZjRkNTMyNjBlYzZmOGYxMjJhZWQ3NWNjZTdjNzU3ZDk3YTU1MWUwCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVR1ZSBPY3QgMjEgMTg6Mjk6NDYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogR2VuZXJpYyBhcmNoaXRlY3R1cmUgZm9yIHhpbGlueCBwcGM0MDUodjMpCgogICAgQXMgInBwYzQ0eDogVW5pZmljYXRpb24gb2YgdmlydGV4NSBwcDQ0MCBib2FyZHMiIGRpZCBmb3IgdGhlIHhpbGlueAogICAgcHBjNDQwIGJvYXJkcywgdGhpcyBwYXRjaCBwcmVzZW50cyBhIGNvbW1vbiBhcmNoaXRlY3R1cmUgZm9yIGFsbCB0aGUKICAgIHhpbGlueCBwcGM0MDUgYm9hcmRzLgoKICAgIEFueSBjdXN0b20geGlsaW54IHBwYzQwNSBib2FyZCBjYW4gYmUgYWRkZWQgdmVyeSBlYXNpbHkgd2l0aCBubyBjb2RlCiAgICBkdXBsaWNpdHkuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBzaW1wbGUgZ2VuZXJpYyBib2FyZCwgdGhhdCBjYW4gYmUgdXNlZCBvbiBhbG1vc3QKICAgIGFueSBkZXNpZ24gd2l0aCB4aWxpbnggcHBjNDA1IHJlcGxhY2luZyB0aGUgZmlsZSBwcGM0MDUtZ2VuZXJpYy94cGFyYW1ldGVycy5oCgogICAgVGhpcyBwYXRjaCBpcyBwcmVwYXJlZCB0byB3b3JrIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEVESyAoMTAuMSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ODVjMDBhNTdmYWI4NmY3MmEzNzY5NDgwYzY2YmYxY2EyMmUxNDU5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDI0IDA4OjU2OjA5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IERpc2FibGUgRERSMiBhdXRvY2FsaWJyYXRpb24gb24gS2lsYXVlYSBmb3Igbm93CgogICAgU2luY2UgdGhlIG5ldyBhdXRvY2FsaWJyYXRpb24gc3RpbGwgaGFzIHNvbWUgcHJvYmxlbXMgb24gc29tZSBLaWxhdWVhCiAgICBib2FyZHMgd2l0aCAyMDBNSHogRERSMiBmcmVxdWVuY3kgd2UgZGlzYWJsZSB0aGUgYXV0b2NhbGlicmF0aW9uIGFuZAogICAgdXNlIHRoZSBoYXJkY29kZWQgdmFsdWVzIGFzIGRvbmUgYmVmb3JlLiBUaGlzIHNlZW1zIHRvIHdvcmsgcmVsaWFibHkKICAgIG9uIGFsbCBrbm93biBERFIyIGZyZXF1ZW5jaWVzLgoKICAgIEFmdGVyIHRoZSBhdXRvY2FsaWJyYXRpb24gaXNzdWUgaXMgZml4ZWQgd2Ugd2lsbCBlbmFibGUgaXQgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxNzdmNDI1MGM3Mjk3MjdiMTYyOWZhOGQ4ZDY1NTZjOTk5ZTliOGMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBBcHIgOSAwMjowMjowNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGZpeCB1cCBVQVJUIHN0YXR1cyBiaXQgaGFuZGxpbmcKCiAgICBTb21lIEJsYWNrZmluIFVBUlRzIGFyZSByZWFkLXRvLWNsZWFyIHdoaWxlIG90aGVycyBhcmUgd3JpdGUtdG8tY2xlYXIuCiAgICBUaGlzIGNhbiBjYXVzZSBwcm9ibGVtcyB3aGVuIHdlIHBvbGwgdGhlIExTUiBhbmQgdGhlbiBsYXRlciB0cnkgYW5kIGhhbmRsZQogICAgYW55IGVycm9ycyBkZXRlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYWUwOTEwMjk4ZjMxZjViYjNkMzNhNjRiODQ2N2M2MGVhM2M1ZDZkMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMDo0MjoxNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTYxLWV6a2l0OiBkcm9wIHJlZHVuZGFudCBjb2RlCgogICAgQ29tbW9uIEJsYWNrZmluIGNvZGUgYWxyZWFkeSBhbm5vdW5jZXMgQ1BVIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlMmVlYTk4YmZmMTM2OWY3N2E5ZjU5YTVmZDBiZDQ5MjhiYzMzMzJlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIwOjQzOjEwIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1NjEtZXpraXQ6IGRyb3AgcG9pbnRsZXNzIFVTQiBjb2RlCgogICAgVGhlIFVTQi9MQU4gcmVnaXN0ZXIgc2V0dGluZ3MgYXJlIG5vdCBhY3R1YWxseSB1c2VkL25lZWRlZCBpbiBvcmRlciB0bwogICAgZHJpdmUgdGhpbmdzIGZyb20gVS1Cb290LCBzbyBkcm9wIHRoZSBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjMjNiZmY2M2ZiMDNjYjlkYmNkMjY1MjI4NDFlNTNmOWIzNGZhMWFiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIwOjQ3OjU4IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogbGlua2VyIHNjcmlwdHM6IGZvcmNlIHN0YXJ0Lm8gYW5kIHNldCBpbml0Y29kZSBib3VuZGFyaWVzCgogICAgTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXJ0Lm8gb2JqZWN0IGlzIGFsd2F5cyB0aGUgZmlyc3Qgb2JqZWN0IGluIG91ciBsaW5rZXIKICAgIHNjcmlwdCByZWdhcmRsZXNzIG9mIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIGFuZCBhZGQgc29tZSBsaW5rZXIgc3ltYm9scwogICAgc28gdGhlIGxkciB1dGlsaXR5IGNhbiBwcm9wZXJseSBsb2NhdGUgdGhlIGluaXRjb2RlIHdoZW4gZ2VuZXJhdGluZyBhIExEUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmQzM2U1YzYxM2NmNzBlM2NiNTFhNzNmZGQ2NTNmZTgzYjk0MmJiMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMToxOTozOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHNtYWxsIGNwdSBpbml0IG9wdGltaXphdGlvbiB3aGlsZSBzZXR0aW5nIGludGVycnVwdCBtYXNrCgogICAgVXNlIHRoZSBzdGkgaW5zdHJ1Y3Rpb24gdG8gc2V0IHRoZSBpbml0aWFsIGludGVycnVwdCBtYXNrIHJhdGhlciB0aGFuCiAgICBiYW5naW5nIG9uIHRoZSBjb3JlIElNQVNLIE1NUiB0byBzYXZlIGJvdGggc3BhY2UgYW5kIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk2MDkyMjI5MWM5NTk0YWNiNTc1Y2VjN2U0N2Q3YmVkOWI1ODE4MmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6MTg6MTAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzZXQgaW5pdGlhbCBzdGFjayBjb3JyZWN0bHkgYWNjb3JkaW5nIHRvIEJsYWNrZmluIEFCSQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyNWNkMzNkODJlYTUyMWI3YmQ5MGNhODU4Zjg5MTlmYWUxZTk3MzJiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gQXByIDIwIDAzOjExOjUzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogbWFrZSBiYXVkIGNhbGN1bGF0aW9uIG1vcmUgYWNjdXJhdGUKCiAgICBXZSBzaG91bGQgdXNlIHRoZSBhbGdvcml0aG0gaW4gdGhlIExpbnV4IGtlcm5lbCBzbyB0aGF0IHRoZSBVQVJUIGRpdmlzb3IKICAgIGNhbGN1bGF0aW9uIGlzIG1vcmUgYWNjdXJhdGUuICBJdCBhbHNvIGZpeGVzIHByb2JsZW1zIG9uIHNvbWUgcGlja3kgVUFSVHMKICAgIHRoYXQgaGF2ZSBzYW1wbGluZyBhbm9tYWxpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDBiYTFkYTExNmU1ZWRjYjBjNWFlNGE3NTg1ZDczZjY1NDg0MDBhMDYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBPY3QgNiAwNDoyMTo0MSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRlY29kZSBod2VycmNhdXNlL2V4Y2F1c2Ugd2hlbiBjcmFzaGluZwoKICAgIEhhdmluZyB0byBkZWNvZGUgaHdlcnJjYXVzZS9leGNhdXNlIHZhbHVlcyBpcyBhIHBhaW4sIHNvIGF1dG9tYXRlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyZGU5NWJiMjBjNDg4ZjIwMjk4ZGY2ODgxYjcwMGE1YTc1N2VlNzgwCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDQ6MjA6NTQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggcmVnaXN0ZXIgZHVtcCBtZXNzYWdlcwoKICAgIE1ha2Ugc3VyZSB3ZSByZXBvcnQgUkVUSS9JUEVORCBjb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDcxMzM5OTllNmY2MmE5YTAxZjZhOGZmZTIzNGI4NTMyYjNhZDFlNGIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBPY3QgNiAwNDoxOTozNCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvbid0IGJvdGhlciBkaXNwbGF5aW5nIHJlYm9vdCBtc2cgd2hlbiBjcmFzaGluZwoKICAgIFRoZSBoYW5nIGZ1bmN0aW9uIGFscmVhZHkgdGVsbHMgeW91IHRvIHJlYm9vdCwgc28gbm8gcG9pbnQgaW4gc2hvd2luZyBpdAogICAgdHdpY2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDcwYzRjMDMyZWExMTJjYzQyYWExY2U5NTljMzNmYzQ4MjVlYWVmOTUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBKdW4gMSAwMToyMzo0OCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGVuYWJsZSBzdXBwb3J0IGZvciBuZXN0ZWQgaW50ZXJydXB0cwoKICAgIER1cmluZyBjcHUgaW5pdCwgbWFrZSBzdXJlIHdlIGluaXRpYWxpemUgdGhlIENFQyBwcm9wZXJseSBzbyB0aGF0CiAgICBpbnRlcnJ1cHRzIGNhbiBmaXJlIGFuZCBiZSBoYW5kbGVkIHdoaWxlIFUtQm9vdCBpcyBydW5uaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAzOTc4MjcyN2UxODU4NjBmYWE0ODg0YzJiMDRlODRjYjMzZDFjNmNmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6NTU6MjUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBpbml0IE5BTkQgYmVmb3JlIHJlbG9jYXRpbmcgZW52CgogICAgSWYgYm9vdGluZyBvdXQgb2YgTkFORCwgd2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgaW5pdGlhbGl6ZSBpdCBwcm9wZXJseQogICAgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcmVsb2NhdGUgdGhlIGVudmlyb25tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwZjlhODgxOTQxNmJhNDBhNTNkZTUwYWYxNDg4NDdhMGU1MDhmODRkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTg6NDA6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBjaGVjayBjYWNoZSBiaXRzLCBub3QgY3BsYiBiaXRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDJjMWVhOWUzNzBjYjcyZGQ2YTVhYTMyMzM4ZTg3YThhMWY3N2JkNzYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxNzo1Mjo1OSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRyb3AgdW51c2VkIGNhY2hlIGZsdXNoIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNTBmMGQyMTE5MTJhNjQ4ZTMxYWE5MTIzYjQ2NjVhMDQ0NGJiOGNhOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE1OjIxOjQ3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogdW5pZnkgY2FjaGUgaGFuZGxpbmcgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAzYzg3OTg5ODM0MDNjYjY4YTgyN2Q3YTBkMDliMTEzNDUyNGExYjdkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6Mzk6MDcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBvbmx5IGluaXRpYWxpemUgdGhlIFJUQyB3aGVuIGFjdHVhbGx5IHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNjIxZTU3OWI4MTJkZDFhMmU2Nzc3ZjdjYmY2ZTU1ZTczNjUwNTgyMwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjQ0OjMzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZml4IFNXUlNUIHJlZ2lzdGVyIGRlZmluaXRpb24KCiAgICBUaGUgU1dSU1QgcmVnaXN0ZXIgaXMgYSAxNmJpdCwgbm90IDMyYml0LCByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDYxMjFjNGUyZDE4Mzg4N2RjZDdhNGNhMmRjZDM5NWIyMTNlYTE1YgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE4OjU0OjU3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYnVpbGQgd2l0aCAtZm9taXQtZnJhbWUtcG9pbnRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhZGJmZWViN2IzMmY3MzdhOTczOGRhYTU4MzM1MGQyYmI5ZWQwMTdhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTc6NTA6MjYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBkb2N1bWVudCBzb21lIG9mIHRoZSBibGFja2ZpbiBkaXJlY3RvcmllcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlNDMzNzk2OGU0MzY5OGE2OGJhNjA4MzY5ZjQ2ZDRhNDExNDExMWNhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTU6MTY6NTYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBvbmx5IGVuYWJsZSBoYXJkd2FyZSBlcnJvciBpcnEgYnkgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyYjY2ZjA4ZjI1N2VmNmEwNjc4NWYyN2IzYzZkYzJhNGNmYzljYWM0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MzY6NDMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBwdW50IG9sZCB1bnVzZWQgbWVtX2luaXQuaCBoZWFkZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmNjMTIxYTAxNjA4MDQyMDY2YTE5YWI1YmZmNWJjZmI4MDViZjQwNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDEzOjE4OjU1IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZGVsZXRlIHVudXNlZCBwYWdlX2Rlc2NyaXB0b3JfdGFibGVfc2l6ZSBkZWZpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzBmYjlkMjRhZTE2ZTViMGVkMzllNWI3Y2M4NTk4MTE2NWNhOThiYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDEzOjE3OjAzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZml4IHR5cG8gaW4gYm9vdCBtb2RlIGNvbW1lbnQgYW5kIGFkZCBOQU5EIGRlZmluZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyZTVjYmU1NDYxYzVjNGM2NjY1ZTMxOGNmZTk1MGE1YTE1MGQ5OTljCkF1dGhvcjogQmVuIE1hYW4gPG1vb0Bjb3c+CkRhdGU6CVRodSBBdWcgNyAxMzoxNDoyMSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGZpeCBwb3J0IG11eCBkZWZpbmVzIGZvciBCRjU0eAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwNjU2ZWYyYmEyNzQ5MTBkMzEzNjRmZTAyMmY2YzdkYjAwNTE2NjBkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MDk6NTAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgYW5vbWFseSBsaXN0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1MGNhOTU0MDI4NzZjZjdiYWM0ZTJkNGY3ODU1ZjYxNmEwMzg3NjNmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MDg6NTQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1bmlmeSBEU1BJRC9EQkdTVEFUIE1NUiBkZWZpbml0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkOWQ4YzdjNjk2ZGVjMzcwY2E3MTRjMDNiZWI2ZTc5ZDRjOTBiZDVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMSAxNTo1Mzo1MSAyMDA4ICswMjAwCgogICAgRml4IHN0cm1oeigpOiBhdm9pZCBwcmludGluZyBuZWdhdGl2ZSBmcmFjdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRhN2Y2Yjc1MGQ4ZGU1NDNmZGY4ZTU4YWNkODY3NDUwMTAwNTQ1NzEKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBydWdnZWRjb20uY29tPgpEYXRlOglGcmkgT2N0IDE3IDA4OjU1OjUxIDIwMDggLTA0MDAKCiAgICBtcGM4M3h4OiBSZW1vdmVkICNpZmRlZiBDT05GSUdfTVBDODM0WCBkZXBlbmRlbmN5IG9uIHVwbWNvbmZpZyBmdW5jdGlvbgoKICAgIFRoaXMgaXMgZG9uZSB0byBhbGxvdyBvdGhlciA4M1hYIGJhc2VkIHBsYXRmb3JtcyB3aGljaCBhbHNvIGhhdmUgVVBNCiAgICAoZS5nLiA4MzYwKSB0byBjb25maWd1cmUgYW5kIHVzZSB0aGVpciBVUE0gaW4gdS1ib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiZjFiZTNjMGNmYjExMjliNjhjYzE0NzQxMTllNWYzMjM1MzY0ODgKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVHVlIE9jdCAxNCAyMjo1ODo1MyAyMDA4ICswNDAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIFVTQiBIb3N0L0Z1bmN0aW9uIGZvciBNUEM4MzdYRU1EUwoKICAgIFdpdGggdGhpcyBwYXRjaCB1LWJvb3QgY2FuIGZpeHVwIHRoZSBkcl9tb2RlIGFuZCBwaHlfdHlwZSBwcm9wZXJ0aWVzCiAgICBmb3IgdGhlIER1YWwtUm9sZSBVU0IgY29udHJvbGxlci4KCiAgICBXaGlsZSBhdCBpdCwgYWxzbyByZW1vdmUgI2lmZGVmcyBhcm91bmQgaW5jbHVkZXMsIHRoZXkgYXJlIG5vdCBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzMzc5ZjNmZDEzOTY5OTM0YzAwMDk3YzA1NzU0ZTdhODk5MGZkMzkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDIwOjUyOjU0IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBhZGQgRUxCQyBOQU5EIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzdYRU1EUyBib2FyZHMKCiAgICBUaG91Z2ggTkFORCBjaGlwIGlzIHJlcGxhY2VhYmxlIG9uIHRoZSBNUEM4MzdYRS1NRFMgYm9hcmRzLCB0aGUKICAgIGN1cnJlbnQgc2V0dGluZ3MgZG9uJ3Qgd29yayB3aXRoIHRoZSBkZWZhdWx0IGNoaXAgb24gdGhlIGJvYXJkLgogICAgTmV2ZXJ0aGVsZXNzIEZyZWVzY2FsZSdzIFUtQm9vdCBzZXRzIHRoZSBvcHRpb24gcmVnaXN0ZXIgY29ycmVjdGx5LAogICAgc28gSSBqdXN0IGR1bXBlZCB0aGUgcmVnaXN0ZXIgZnJvbSB0aGUgd29ya2luZyB1LWJvb3QuIE15IGd1ZXNzIGlzCiAgICB0aGF0IHRoZSBvbGQgc2V0dGluZ3Mgd2VyZSBhcHBsaWNhYmxlIGZvciBzb21lIHBpbG90IGJvYXJkcywgbm90CiAgICBmb3VuZCBpbiB0aGUgcHJvZHVjdGlvbi4KCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyBGU0wgRUxCQyBkcml2ZXIgc28gdGhhdCB3ZSBjb3VsZCBhY2Nlc3MKICAgIHRoZSBOQU5EIHN0b3JhZ2UgaW4gdGhlIHUtYm9vdC4KCiAgICBUaGUgTkFORCBzdXBwb3J0IGNvc3RzIGFib3V0IDQ1S0IsIHNvIHRoZSB1LWJvb3Qgbm8gbG9uZ2VyIGZpdHMKICAgIGludG8gdHdvIDEyOEtCIE5PUiBmbGFzaCBzZWN0b3JzLCB0aHVzIHdlIGFsc28gaGF2ZSB0byBhZGp1c3QKICAgIGVudmlyb25tZW50IGxvY2F0aW9uOiBhZGQgYW5vdGhlciAxMjhLQiB0byB0aGUgbW9uaXRvciBsZW5ndGguCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CgogICAgSXQgaXMgZHVlIHRvIGhhcmR3YXJlIGRlc2lnbiBhbmQgbG9naWMgZGVmZWN0LCB0aGF0IGlzIHRoZQogICAgSS9PWzA6N10gb2YgTkFORCBjaGlwIGlzIGNvbm5lY3RlZCB0byBMQURbNzowXSwgc28gd2hlbgogICAgdGhlIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gbkxDUzMsICB5b3UgaGF2ZSB0byBzZXQgdXAgdGhlCiAgICBPUjNbQkNUTERdID0gJzEnIGZvciBub3JtYWwgb3BlcmF0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCBoYXZlCiAgICBidXMgY29udGVudGlvbiBkdWUgdG8gdGhlIHBpbiA0OC8yNSBvZiBVNjAgaXMgZW5hYmxlZC4KCiAgICBTZXR1cCB0aGUgT1IzW0JDVExEXSA9ICcxJyAsIHRoYXQgbWVhbmluZyB0aGUgTEJDVEwgaXMgbm90CiAgICBhc3NlcnRlZCB1cG9uIGFjY2VzcyB0byB0aGUgTkFORCBjaGlwLCBrZWVwIHRoZSBkZWZhdWx0IHN0YXRlLgoKICAgIEFja2VkLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMGY3YmJhZTkyZTNiMTNmMmIzN2FlYjFkZWY5YmIxMjQ0NTUyMWI3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBPY3QgMiAxOToxNzozMyAyMDA4ICswNDAwCgogICAgbXBjODN4eDogZml4IFBDSSBzY2FuIGhhbmcgb24gdGhlIHN0YW5kYWxvbmUgTVBDODM3eEUtTURTIGJvYXJkcwoKICAgIFRoZSBNUEM4Mzd4RS1NRFMgYm9hcmQncyBDUExEIGNhbiBhdXRvLWRldGVjdCBpZiB0aGUgYm9hcmQgaXMgb24gdGhlIFBJQiwKICAgIHN0YW5kYWxvbmUgb3IgYWN0aW5nIGFzIGEgUENJIGFnZW50LiBVc2VyJ3MgR3VpZGUgc2F5czoKCiAgICAtIFdoZW4gdGhlIENQTEQgcmVjb2duaXplcyBpdHMgbG9jYXRpb24gb24gdGhlIFBJQiBpdCBhdXRvbWF0aWNhbGx5CiAgICAgIGNvbmZpZ3VyZXMgUkNXIHRvIHRoZSBQQ0kgSG9zdC4KICAgIC0gSWYgdGhlIENQTEQgZmFpbHMgdG8gcmVjb2duaXplIGl0cyBsb2NhdGlvbiB0aGVuIGl0IGlzIGF1dG9tYXRpY2FsbHkKICAgICAgY29uZmlndXJlZCBhcyBhbiBBZ2VudCBhbmQgdGhlIFBDSSBpcyBjb25maWd1cmVkIHRvIGFuIGV4dGVybmFsIGFyYml0ZXIuCgogICAgVGhpcyBzb3VuZHMgZ29vZC4gVGhvdWdoIGluIHRoZSBzdGFuZGFsb25lIHNldHVwIHRoZSBDUExEIHNldHMgUENJX0hPU1QKICAgIGZsYWcgKGl0J3Mgb2ssIHdlIGNhbid0IGFjdCBhcyBQQ0kgYWdlbnRzIHNpbmNlIHdlIHJlY2VpdmUgQ0xLSU4sIG5vdAogICAgUENJQ0xLKSwgYnV0IHRoZSBDUExEIGRvZXNuJ3Qgc2V0IHRoZSBBUkJJVEVSX0VOQUJMRSBmbGFnLCBhbmQgd2l0aG91dAogICAgYW55IGFyYml0ZXIgYmFkIHRoaW5ncyB3aWxsIGhhcHBlbiAoaGVyZSB0aGUgYm9hcmQgaGFuZ3MgZHVyaW5nIGFueSBjb25maWcKICAgIHNwYWNlIHJlYWRzKS4KCiAgICBJbiB0aGlzIHNpdHVhdGlvbiB3ZSBtdXN0IGRpc2FibGUgdGhlIFBDSS4gQW5kIGluIGNhc2Ugb2YgYW55Ym9keSByZWFsbHkKICAgIHdhbnQgdG8gdXNlIGFuIGV4dGVybmFsIGFyYml0ZXIsIHdlIHByb3ZpZGUgInBjaV9leHRlcm5hbF9hcmlidGVyIgogICAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFkYTgzYTYzZDhlMWI0YmRkZWI4MjU4MWIxNzQ1YTA5YWFjM2UyZDMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE9jdCAyIDE4OjMyOjI1IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBhZGQgU0dNSUkgcmlzZXIgbW9kdWxlIHN1cHBvcnQgZm9yIHRoZSBNUEM4Mzc4RS1NRFMgYm9hcmRzCgogICAgVGhpcyBpbnZvbHZlcyBjb25maWd1cmluZyB0aGUgU2VyRGVzIGFuZCBmaXhpbmcgdXAgdGhlIGZsYWdzIGFuZAogICAgUEhZIGFkZHJlc3NlcyBmb3IgdGhlIFRTRUNzLgoKICAgIEZvciBMaW51eCB3ZSBhbHNvIGZpeCB1cCB0aGUgZGV2aWNlIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2ZDljODkxNmRlOWMyNGYyYzUyZDBiMDFjZjAwZDJlNzRhMDRjZDgKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE9jdCAyIDE4OjMxOjU5IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBhZGQgVFNFQ3MnIEhSQ1dIIG1hc2tzIGZvciBNUEM4Mzd4IHByb2Nlc3NvcnMKCiAgICBXZSdsbCB1c2UgdGhlc2UgbWFza3MgdG8gcGFyc2UgVFNFQyBtb2RlcyBvdXQgb2YgSFJDV0guCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmOWNjNjYwOGI0ZTFjZWZkZTU2YzBmYjk5YWUxYzk1YzQyNTc1ZmYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE9jdCAyIDE4OjMxOjU2IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBzZXJkZXM6IGFkZCBmb3Jnb3R0ZW4gc2hpZnRzIGZvciByZmNrcwoKICAgIFRoZSByZmNrcyBzaG91bGQgYmUgc2hpZnRlZCBieSAyOCBiaXRzIGxlZnQuIFdlIGRpZG4ndCBub3RpY2UgdGhlIGJ1ZwogICAgYmVjYXVzZSB3ZSB3ZXJlIHVzaW5nIG9ubHkgMTAwTUh6IGNsb2NrcyAoZm9yIHdoaWNoIHJmY2tzID09IDApLgoKICAgIFRob3VnaCwgZm9yIFNHTUlJIHdlJ2xsIG5lZWQgMTI1TUh6IGNsb2Nrcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTVjNTMxOTg0ZGNmOTMzZTRjZDEzYTE4N2E3ZTA4ZTg3M2I3Y2VkMQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgT2N0IDIgMTg6MzE6NTMgMjAwOCArMDQwMAoKICAgIG1wYzgzeHg6IGZpeCBzZXJkZXMgc2V0dXAgZm9yIHRoZSBNUEM4Mzc4RSBib2FyZHMKCiAgICBNUEM4Mzd4RSBzcGVjcyBzYXlzIHRoYXQgU2VyRGVzMSBoYXM6CgogICAg4oCUIFR3byBsYW5lcyBydW5uaW5nIHgxIFNHTUlJIGF0IDEuMjUgR2JwczsKICAgIOKAlCBUd28gbGFuZXMgcnVubmluZyB4MSBTQVRBIGF0IDEuNSBvciAzLjAgR2Jwcy4KCiAgICBBbmQgZm9yIFNlckRlczI6CgogICAg4oCUIFR3byBsYW5lcyBydW5uaW5nIHgxIFBDSSBFeHByZXNzIGF0IDIuNSBHYnBzOwogICAg4oCUIE9uZSBsYW5lIHJ1bm5pbmcgeDIgUENJIEV4cHJlc3MgYXQgMi41IEdicHM7CiAgICDigJQgVHdvIGxhbmVzIHJ1bm5pbmcgeDEgU0FUQSBhdCAxLjUgb3IgMy4wIEdicHMuCgogICAgVGhlIHNwZWMgYWxzbyBleHBsaWNpdGx5IHN0YXRlcyB0aGF0IFBFWCBvcHRpb25zIGFyZSBub3QgdmFsaWQgZm9yCiAgICB0aGUgU0QxLgoKICAgIE5ldmVydGhlbGVzcyBNUEM4Mzc4IFJEQiBhbmQgTURTIGJvYXJkcyBjb25maWd1cmUgdGhlIFNEMSBmb3IgUEVYLAogICAgd2hpY2ggaXMgd3JvbmcgdG8gZG8uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVjMmZmMzIzYTk0ZTI3ZTQ4MWY3MGM0NDgzOGQ0M2ZjZDg0NGRkNDYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAxODoxMjozNyAyMDA4ICswNDAwCgogICAgbXBjODN4eDogbXBjODM2MGVtZHM6IHJld29yayBMQkMgU0RSQU0gc2V0dXAKCiAgICBDdXJyZW50bHkgNjRNIG9mIExCQyBTRFJBTSBhcmUgbWFwcGVkIGF0IDB4RjAwMDAwMDAgd2hpY2ggbWFrZXMKICAgIGl0IGRpZmZpY3VsdCB0byB1c2UgKGIvYyB0aGVuIHRoZSBtZW1vcnkgaXMgZGlzY29udGludW91cyBhbmQKICAgIHRoZXJlIGlzIHF1aXRlIGJpZyBtZW1vcnkgaG9sZSBiZXR3ZWVuIHRoZSBERFIvU0RSQU0gcmVnaW9ucykuCgogICAgVGhpcyBwYXRjaCByZXdvcmtzIExCQyBTRFJBTSBzZXR1cCBzbyB0aGF0IG5vdyB3ZSBkeW5hbWljYWxseQogICAgcGxhY2UgdGhlIExCQyBTRFJBTSBuZWFyIHRoZSBERFIgKG9yIGF0IDB4MCBpZiB0aGVyZSBpc24ndCBhbnkKICAgIEREUiBtZW1vcnkpLgoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSdyZSBhYmxlIHRvOgoKICAgIC0gQm9vdCB3aXRob3V0IGV4dGVybmFsIEREUiBtZW1vcnk7CiAgICAtIFVzZSBtb3N0ICJERFIgKyBTRFJBTSIgc2V0dXBzIHdpdGhvdXQgbmVlZCB0byBzdXBwb3J0IGZvcgogICAgICBzcGFyc2UvZGlzY29udGludW91cyBtZW1vcnkgbW9kZWwgaW4gdGhlIHNvZnR3YXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZWYwODE5ZTkyMGIwNWIzNGI1NmQ4YjQyZTFlNDNkOWI4OWE1MmQ2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAeHBlcnQuZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMSAxMToyMzo1NiAyMDA4ICswMjAwCgogICAgRkRUOiBkb24ndCB1c2UgcHJpdmF0ZSBrZXJuZWwgaGVhZGVyIGZpbGVzCgogICAgT24gc29tZSBzeXN0ZW1zIChmb3IgZXhhbXBsZSBGZWRvcmEgQ29yZSA0KSBVLUJvb3QgYnVpbGRzIHdpdGggdGhlCiAgICBmb2xsb3dpbmcgd2FucmluZ3Mgb25seToKCiAgICAuLi4KICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS93ZC9naXQvdS1ib290L2luY2x1ZGUvbGliZmR0X2Vudi5oOjMzLAoJCSAgICAgZnJvbSBmZHQuYzo1MToKCQkgL3Vzci9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaDo2OjI6IHdhcm5pbmc6ICN3YXJuaW5nIHVzaW5nIHByaXZhdGUga2VybmVsIGhlYWRlcjsgaW5jbHVkZSA8ZW5kaWFuLmg+IGluc3RlYWQhCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNGQxNGM1NTUwNGNlNDAyODczMjFiZDYzZWUyNjllMzIzM2VlNGFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDEzIDE1OjE1OjMxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCAxLjAgJiAxLjA2NiBHSHogdG8gY2FueW9ubGFuZHMgYm9vdHN0cmFwIGNvbW1hbmQgZm9yIFBMTCBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0M2NiY2U2OWQ0OGQwNTI1NzRkNzFmNTA3MjRiZTU0NmQ5MGE0NmE0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDEzIDEwOjQ1OjE0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvcnJlY3RseSBzZXR1cCByYW5nZXMgcHJvcGVydHkgaW4gZWJjIG5vZGUKCiAgICBQcmV2aW91c2x5IG9ubHkgdGhlIE5PUiBmbGFzaCBtYXBwaW5nIHdhcyB3cml0dGVuIGludG8gdGhlIHJhbmdlcwogICAgcHJvcGVydHkgb2YgdGhlIGViYyBub2RlLiBUaGlzIHBhdGNoIG5vdyB3cml0ZXMgYWxsIGVuYWJsZWQgY2hpcAogICAgc2VsZWN0IGFyZWFzIGludG8gdGhlIHJhbmdlcyBwcm9wZXJ0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDdiMjZkNTgzMjhmMTM3NDcxZWE5N2RlMzgyYmZhNjNmNzIzOTkzMQpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CVdlZCBPY3QgOCAxNTozNzo1MCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgR0RTeXMgbmVvIDQwNUVQIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMxMWRhMTk0NTQ1ZDJmNGJiYjU0YmUxYmI1ZTUwNGUyMGNlOGMxNmMKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgT2N0IDEgMTQ6NDY6MTMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGNvbmZpZ3MgZm9yIE5ldHN0YWwgYm9hcmRzCgogICAgSSByZW9yZ2FuaXplZCBteSBjb25maWcgZmlsZXMsIHB1dHRpbmcgdGhlIGNvbW1vbiBzdHVmZiBpbnRvIG5ldHN0YWwtY29tbW9uLmgKICAgIChnb3QgdGhlIGlkZWEgYnkgbG9va2luZyBhIGFtY2MtY29tbW9uLmggZnJvbSBTdGVmYW4pLgoKICAgIEFkZGVkIHN0dWZmIHRvIGJvb3QgdGhlIG5ldyBwb3dlcnBjIGxpbnV4IHZpYSBORlMgKG9ubHkgdGVzdGVkIHdpdGggSENVNCkuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjOWMxMWQ3NTFlNDI0MmNmMjljM2MzYzI5MGQ5NzFmNmQwY2IxZDE1CkF1dGhvcjogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CkRhdGU6CVdlZCBPY3QgOCAxMDoxMzoxOSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgcm91dGluZSB0byByZXRyaWV2ZSBDUFUgbnVtYmVyCgogICAgUHJvdmlkZSBhIHdlYWsgZGVmaW5lZCByb3V0aW5lIHRvIHJldHJpZXZlIHRoZSBDUFUgbnVtYmVyIGZvcgogICAgcmVmZXJlbmNlIGJvYXJkcyB0aGF0IGhhdmUgbXVsdGlwbGUgQ1BVJ3MuCURlZmF1bHQgYmVoYXZpb3IKICAgIGlzIHRoZSBleGlzdGluZyBzaW5nbGUgQ1BVIHByaW50IG91dHB1dC4gIFJlZmVyZW5jZSBib2FyZHMgd2l0aAogICAgbXVsdGlwbGUgQ1BVJ3MgbmVlZCB0byBwcm92aWRlIGEgYm9hcmQgc3BlY2lmaWMgcm91dGluZS4KICAgIFNlZSBib2FyZC9hbWNjL2FyY2hlcy9hcmNoZXMuYyBmb3IgYW4gZXhhbXBsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU5MjE3YmFlNDBlOTA5ODJhYjU0MDBkODQ5YzA4YWY2ODNhY2UwMzYKQXV0aG9yOiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDEwOjEzOjE0IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFkZCBzdGF0aWMgc3VwcG9ydCBmb3IgNDR4IElCTSBTRFJBTSBDb250cm9sbGVyCgogICAgVGhpcyBwYXRjaCBhZGQgdGhlIGNhcGFiaWxpdHkgdG8gY29uZmlndXJlIGEgUFBDNDQwIGJhc2VkIElCTSBTRFJBTQogICAgQ29udHJvbGxlciB3aXRoIHN0YXRpYywgY29tcGlsZWQtaW4sIHZhbHVlcy4gUFBDNDQwIG1lbW9yeSBzdWJzeXN0ZW0KICAgIGluY2x1ZGVzIGEgTWVtb3J5IFF1ZXVlIGNvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMDlmMDlkMzg5OTAxN2FhYWEyYjAzMWJiYTYzYzI3MWU5YzQ4ZTRkCkF1dGhvcjogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CkRhdGU6CVdlZCBPY3QgOCAxMDoxMjo1MyAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBBcmNoZXMgYm9hcmQgc3VwcG9ydCAoZHVhbCA0NjBHVCkKCiAgICBUaGUgQXJjaGVzIEV2YWx1YXRpb24gYm9hcmQgaXMgYmFzZWQgb24gdGhlIEFNQ0MgNDYwR1QgU29DIGNoaXAuCiAgICBUaGlzIGJvYXJkIGlzIGEgZHVhbCBwcm9jZXNzb3IgYm9hcmQgd2l0aCBlYWNoIHByb2Nlc3NvciBwcm92aWRpbmcKICAgIGluZGVwZW5kZW50IHJlc291cmNlcyBmb3IgUmFwaWQgSU8sIEdpZ2FiaXQgRXRoZXJuZXQsIGFuZCBzZXJpYWwKICAgIGNvbW11bmljYXRpb25zLiBFYWNoIDQ2MEdUIGhhcyBpdCdzIG93biA1MTJNQiBERFIyIG1lbW9yeSwgMzJNQiBOT1IKICAgIEZMQVNILCBVQVJULCBFRVBST00gYW5kIHRlbXBlcmF0dXJlIHNlbnNvciwgYWxvbmcgd2l0aCBhIHNoYXJlZCBkZWJ1ZwogICAgcG9ydC4gVGhlIHR3byA0NjBHVCdzIHdpbGwgY29tbXVuaWNhdGUgd2l0aCBlYWNoIG90aGVyIHZpYSBzaGFyZWQKICAgIG1lbW9yeSwgR2lnYWJpdCBFdGhlcm5ldCBhbmQgeDEgUENJLUV4cHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNTViMTJmMmZmZDdjMzRlZWE3ZTk4M2EwNTg4YjI0ZjJlNjllMGUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAeHBlcnQuZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxOSAyMTo1NDozMCAyMDA4ICswMjAwCgogICAgVFFNODI2MDogZW52aXJvbm1lbnQgaW4gZmxhc2ggaW5zdGVhZCBFRVBST00sIGJhdWRyYXRlIDExNWsKCiAgICBTZXZlcmFsIGN1c3RvbWVycyBoYXZlIHJlcG9ydGVkIHByb2JsZW1zIHdpdGggdGhlIGVudmlyb25tZW50IGluCiAgICBFRVBST00sIGluY2x1ZGluZyBjb3JydXB0ZWQgY29udGVudCBhZnRlciBib2FyZCByZXNldC4gUHJvYmFibHkgdGhlCiAgICBjb2RlIHRvIHByZXZlbnQgSTJDIEVuZ2UgQ29uZGl0aW9ucyBpcyBub3Qgd29ya2luZyBzdWZmaWNpZW50bHkuCgogICAgV2UgbW92ZSB0aGUgZW52aXJvbm1lbnQgdG8gZmxhc2ggbm93LCB3aGljaCBhbGxvd3MgdG8gaGF2ZSBhIGJhY2t1cAogICAgY29weSBwbHVzIGdpdmVzIG11Y2ggZmFzdGVyIGJvb3QgdGltZXMuCgogICAgQWxzbywgY2hhbmdlIHRoZSBkZWZhdWx0IGNvbnNvbGUgaW5pdGlhbGl6YXRpb24gdG8gMTE1MjAwIGJwcyBhcyB1c2VkCiAgICBvbiBtb3N0IG90aGVyIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE4MzY4ODExOTBiM2Q4YTY5MThiMGQ2NGIzOWZlMzJiYmJkZjg1ZDgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglTdW4gT2N0IDE5IDEyOjQ5OjE5IDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggY29tcGlsZSB3YXJuaW5nIGluIG1wYzg1MzZkcy5jCgogICAgbXBjODUzNmRzLmM6IEluIGZ1bmN0aW9uICdpc19zYXRhX3N1cHBvcnRlZCc6CiAgICBtcGM4NTM2ZHMuYzo2MTU6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnZGV2ZGlzcicKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhlZDQ0ZDkxYzgxMjJkMDAzNjg1MjNiMGI3NDY2OTFjODk1ZDNiM2MKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDE5IDAyOjM1OjUwIDIwMDggKzAyMDAKCiAgICBDbGVhbnVwOiBmaXggIk1IeiIgc3BlbGxpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4ZWY4OWVjZDE3NDk2OWIzNTQ0ZjNmMGM3Y2QxZGUzYzU3ZjczN2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDE5IDAyOjM1OjQ5IDIwMDggKzAyMDAKCiAgICBVc2Ugc3RybWh6KCkgdG8gZm9ybWF0IGNsb2NrIGZyZXF1ZW5jaWVzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkNTBjN2Q0YmUxNTBiMjI1MmMwZDJlMTZjZmNmNjk2NDNiZGQ2ZGM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxOSAwMjozNTo0OCAyMDA4ICswMjAwCgogICAgc3RybWh6KCk6IFJvdW5kIG51bWJlcnMgd2hlbiBwcmludGluZyBjbG9jayBmcmVxdWVuY2llcwoKICAgIFJvdW5kIGNsb2NrIGZyZXF1ZW5jaWVzIGZvciBwcmludGluZy4KCiAgICBNYW55IGJvYXJkcyBwcmludGVkIG9mZiBjbG9jayBmcmVxdWVuY2llcyBsaWtlIDM5OSBNSHogaW5zdGVhZCBvZiB0aGUKICAgIGV4YWN0IDQwMCBNSHogYmVjYXVzZSBudW1iZXJlcyB3ZXJlIG5vdCByb3VuZGVkLiBUaGlzIGlzIGZpeGVkIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY4MWMwMmQwNWIyOWM2ZDQ2MDkzNTI1MDUyYzc0YjljNGRkYzhiMDgKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDIwIDE1OjE2OjQ3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBwcm9wZXJseSBkb2N1bWVudCBNUEM4NXh4X1BPUkRFVlNSMl9TRUNfQ0ZHCgogICAgQ29tbWl0IGY3ZDE5MGIxIGNvcnJlY3RlZCB0aGUgdmFsdWUgb2YgTVBDODV4eF9QT1JERVZTUjJfU0VDX0NGRywgYnV0IGZvcmdvdAogICAgdG8gYWRkIGEgY29tbWVudCB0aGF0IHRoZSBjb3JyZWN0IHZhbHVlIGRpc2FncmVlcyB3aXRoIHRoZSA4NTQ0IHJlZmVyZW5jZQogICAgbWFudWFsLiAgVGhlIGNoYW5nZWxvZyBmb3IgdGhhdCBjb21taXQgaXMgYWxzbyB3cm9uZywgYXMgaXQgc2F5cyAiYml0IDI4IgogICAgd2hlbiBpdCBzaG91bGQgYmUgImJpdCAyNCIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNjBmZTcxZTgyYjgzZTI2NGM5NjRjOTQ0N2M1MzdlOWExZjY0M2M4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTcgMTg6MjQ6MDYgMjAwOCArMDIwMAoKICAgIG1nY29nZTogYWRkIHJlZHVuZGFudCBlbnZpcm9ubWVudCBzZWN0b3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1M2ViZjBjNDcwYzg3ZDVmOWZhNzY0NjJlNWY0MDY0ZDI2YTliMTZhCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTcgMTg6MjM6MjcgMjAwOCArMDIwMAoKICAgIG1nc3V2ZDogdXBkYXRlIHNpemUgb2YgZW52aXJvbm1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyZTI2ZDgzN2YxMTQ2MGMwZTZkZWRlN2Q2NTQyNGEzMWUwMTgzZDA5CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MTowMCAyMDA4ICswODAwCgogICAgRW5hYmxlZCB0aGUgRnJlZXNjYWxlIFNHTUlJIHJpc2VyIGNhcmQgb24gODUzNkRTCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZTE4M2NhZDBjNWFiNjQxNWRjYTk1ZDZhYzI5MGVhOTE4YjI4YzU1CkF1dGhvcjogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MDo1OSAyMDA4ICswODAwCgogICAgRW5hYmxlZCB0aGUgRnJlZXNjYWxlIFNHTUlJIHJpc2VyIGNhcmQgb24gODU3MkRTCgogICAgVGhpcyBwYXRjaCBiYXNlZCBvbiBBbmR5J3Mgd29yay4KICAgIEluY2x1ZGluZyBjb21tYW5kICdwaXhpc19zZXRfc2dtaWknIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZmYxODhiYWY5NDI3YzM1NzQ1MzU2NDM5NDM1YWNmMzg2NGQ0YzY1CkF1dGhvcjogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MDo1OCAyMDA4ICswODAwCgogICAgTWFrZSBwaXhpc19zZXRfc2dtaWkgbW9yZSBnZW5lcmFsIHRvIHN1cHBvcnQgTVBDODV4eCBib2FyZHMuCgogICAgVGhlIHBpeGlzIHNnbWlpIGNvbW1hbmQgZGVwZW5kIG9uIHRoZSBGUEdBIHN1cHBvcnQgb24gdGhlIGJvYXJkLCBzb21lIDg1eHgKICAgIGJvYXJkcyBzdXBwb3J0IFNHTUlJIHJpc2VyIGNhcmQgYnV0IGRpZCBub3Qgc3VwcG9ydCB0aGlzIGNvbW1hbmQsIGRlZmluZQogICAgQ09ORklHX1BJWElTX1NHTUlJX0NNRCBmb3IgdGhvc2UgYm9hcmRzIHdoaWNoIHN1cHBvcnQgdGhlIHNnbWlpIGNvbW1hbmQuCgogICAgTm90IGxpa2UgODU0NCwgODU3MiBoYXMgNCBlVHNlYyBzbyB0aGF0IHRoZSBvdGhlciB0d28ncyBwaXhpcyBiaXRzCiAgICBhcmUgbm90IHN1cHBvcnRlZCBieSA4NTQ0LiBUaGVyZWZvciwgZGVmaW5lIFBJWElTX1ZTUEVFRDJfTUFTSyBhbmQKICAgIFBJWElTX1ZDRkdFTjFfTUFTSyBpbiBoZWFkZXIgZmlsZSBmb3IgYm90aCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZTk4MWQ2ODNkMjM2MzIwNGM3Njc3Mzk0MWMyZTljMjA0NGM4MDhmCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDIzOjM4OjAyIDIwMDggLTA1MDAKCiAgICBBZGQgY3B1Lzh4eHggdG8gVEFHU19TVUJESVJTCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMWY3ZDIyYjhiNTJmYzA4YzRkMTdhNmE3ZGIxZTY2NDI4MWFlZDYzCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCA5IDAxOjI1OjU1IDIwMDggLTA1MDAKCiAgICBmc2xfbGF3IGNsZWFyIGVuYWJsZSBiZWZvcmUgY2hhbmdpbmcuCgogICAgRGVidWcgc2Vzc2lvbnMgbWF5IGhhdmUgbGVmdCBlbmFibGVkIGxhd3MuCiAgICBDaGFuZ2luZyBsYXdiYXIgd2l0aCBhbiB1bmtvd24gZW5hYmxlZCB0Z3RpZCBjb3VsZCBjYXVzZSBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg2YmU1MTBmN2I1NDQzZTdlOTM3ZjY5NmJmYmUwMzdmZGM3NDBiMTUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDkgMDA6Mjk6MjcgMjAwOCAtMDUwMAoKICAgIG1wYzg1NzIgYWRkaXRpb25hbCBlbmQtcG9pbnQgbW9kZQoKICAgIG1wYzg1NzIgc3VwcG9ydHMgYWxsIHBjaWUgY29udHJvbGxlcnMgYXMgZW5kLXBvaW50cyB3aXRoIGNmZ19ob3N0X2FnZW50PTAuCiAgICBJbmNsdWRlIGhvc3RfYWdlbnQgPT0gMCBkZWNvZGUgZm9yIGVuZC1wb2ludCBkZXRlcm1pbmF0aW9uLgoKICAgIFRoaXMgaXMgbm90IG5lZWRlZCBmb3IgdGhlIGRzIHJlZmVyZW5jZSBib2FyZCBzaW5jZSBwY2llMyB3aWxsIGJlIGEgaG9zdAogICAgaW4gb3JkZXIgdG8gY29ubmVjdCB0byB0aGUgdWxpIGNoaXAuICBJbmNsdWRlIGl0IGhlcmUgYXMgYSByZWZlcmVuY2UgZm9yCiAgICBvdGhlciBtcGM4NTcyIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY4NTZiM2QwMjIxYTgzODU4MGU2YmIwNmY2MTQyNWZkNzUyOWJhOTMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDggMjM6Mzc6NTkgMjAwOCAtMDUwMAoKICAgIDg1eHggaWYgTlVNX0NQVVM+MSwgcHJpbnQgY3B1IG51bWJlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjdmZWNjM2UyNTA1MGEwMzZjOWY1MGYwZDJiODViYzMxOTlhOTZlMApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgOCAyMzozODowMSAyMDA4IC0wNTAwCgogICAgcGl4aXMgZG8gbm90IHByaW50IGxvbmcgaGVscCBpZiBub3QgY29uZmlndXJlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGUxN2YwMmE4YTc4ZDg1MjI1YTRkODA1ZjZhMWVhOTVhMGE0NjBiNQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCA3IDA4OjA5OjUwIDIwMDggLTA1MDAKCiAgICBIYXZlIHUtYm9vdCBwYXNzIHN0YXNoaW5nIHBhcmFtZXRlcnMgaW50byBkZXZpY2UgdHJlZQoKICAgIFNvbWUgY29yZXMgZG9uJ3Qgc3VwcG9ydCBldGhlcm5ldCBzdGFzaGluZyBhdCBhbGwsIGFuZCBzb21lCiAgICBpbnN0YW5jZXMgaGF2ZSBlcnJhdGEuICBBZGRzIDMgcHJvcGVydGllcyB0byBnaWFuZmFyIG5vZGVzCiAgICB3aGljaCBzdXBwb3J0IHN0YXNoaW5nLiAgRm9yIG5vdywganVzdCBhZGQgdGhpcyBzdXBwb3J0IHRvCiAgICA4NXh4IFNvQ3MuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMyMTYxN2ZkMjY1YjdjMTI2YzZlMmYyZDhhMjNjZGIwMGQ0ZmFkZTcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTI6Mzc6NTcgMjAwOCAtMDQwMAoKICAgIEFkZCBERFIgb3B0aW9ucyBzZXR0aW5nIG9uIE1QQzg2NDFIUENOIGJvYXJkCgogICAgKiBBZGQgYm9hcmQgc3BlY2lmaWMgcGFyYW1ldGVyIHRhYmxlIHRvIGNob29zZSBjb3JyZWN0IGNwbywgY2xrX2FkanVzdCwKICAgIHdyaXRlX2RhdGFfZGVsYXkgYmFzZWQgb24gYm9hcmQgZGRyIGZyZXF1ZW5jeSBhbmQgbl9yYW5rcy4KCiAgICAqIFNldCBvZHRfcmRfY2ZnIGFuZCBvZHRfd3JfY2ZnIGJhc2VkIG9uIHRoZSBkaW1tIyBhbmQgQ1MjLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNhMDY2MDdkNjBkMGE2Mzc4ODEyZWY1OGZkMWVhYjJhN2Y3NzExMQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMyAxMjozNzo0MSAyMDA4IC0wNDAwCgogICAgQWRkIGRkciBpbnRlcmxlYXZpbmcgc3VwcHBvcnQgZm9yIE1QQzg1NzJEUyBib2FyZAoKICAgICogQWRkIGJvYXJkIHNwZWNpZmljIHBhcmFtZXRlciB0YWJsZSB0byBjaG9vc2UgY29ycmVjdCBjcG8sIGNsa19hZGp1c3QsCiAgICB3cml0ZV9kYXRhX2RlbGF5LCAyVCBiYXNlZCBvbiBib2FyZCBkZHIgZnJlcXVlbmN5IGFuZCBuX3JhbmtzLgoKICAgICogU2V0IG9kdF9yZF9jZmcgYW5kIG9kdF93cl9jZmcgYmFzZWQgb24gdGhlIGRpbW0jIGFuZCBDUyMuCgogICAgKiBTZXQgbWVtb3J5IGNvbnRyb2xsZXIgaW50ZXJsZWF2aW5nIG1vZGUgdG8gYmFuayBpbnRlcmxlYXZpbmcsIGFuZCBkaXNhYmxlCiAgICBiYW5rKGNoaXAgc2VsZWN0KSBpbnRlcmxlYXZpbmcgbW9kZSBieSBkZWZhdWx0LCBiZWNhdXNlIHRoZSBkZWZhdWx0IG9uLWJvYXJkCiAgICBERFIgRElNTXMgYXJlIDJ4NTEyTUIgc2luZ2xlLXJhbmsuCgogICAgKiBDaGFuZ2UgQ09ORklHX0lDUzMwN19SRUZDTEtfSFogZnJvbSAzMzMzMzMzMyB0byAzMzMzMzAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMjkzYjQxN2FjNmFiOGUzMTdjYTJiNzcwMzc3Y2E5M2VkZjIzNzAKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTI6Mzc6MjYgMjAwOCAtMDQwMAoKICAgIEFkZCBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgRERSIGNvbnRyb2xsZXIgcmVnaXN0ZXJzCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOWZmZDgzOWIxYWRhNTAyYzg2Zjg4ZWRhZjE1MzQ0MjZiNjY4OGNlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzIDEyOjM3OjEwIDIwMDggLTA0MDAKCiAgICBDaGVjayBERFIgaW50ZXJsZWF2aW5nIG1vZGUKCiAgICAqIENoZWNrIEREUiBpbnRlcmxlYXZpbmcgbW9kZSBmcm9tIGVudmlyb25tZW50IGJ5IHJlYWRpbmcgbWVtY3RsX2ludGx2X2N0bCBhbmQKICAgIGJhX2ludGx2X2N0bC4KICAgICogUHJpbnQgRERSIGludGVybGVhdmluZyBtb2RlIGluZm9ybWF0aW9uCiAgICAqIEFkZCBkb2MvUkVBRE1FLmZzbC1kZHIgdG8gZGVzY3JpYmUgdGhlIGludGVybGVhdmluZyBzZXR0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZmI0OTEwOGU0Zjg2YzIyMjRlMWYzMDEyNDMyOGIwZGU2NmVmNzJlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzIDEyOjM2OjU1IDIwMDggLTA0MDAKCiAgICBQYXNzIGRpbW0gcGFyYW1ldGVycyB0byBwb3B1bGF0ZSBwb3B1bGF0ZSBjb250cm9sbGVyIG9wdGlvbnMKCiAgICBCZWNhdXNlIHNvbWUgZGltbSBwYXJhbWV0ZXJzIGxpa2Ugbl9yYW5rcyBuZWVkcyB0byBiZSB1c2VkIHdpdGggdGhlIGJvYXJkCiAgICBmcmVxdWVuY3kgdG8gY2hvb3NlIHRoZSBib2FyZCBwYXJhbWV0ZXJzIGxpa2UgY2xrX2FkanVzdCBldGMuIGluIHRoZQogICAgYm9hcmRfc3BlY2lmaWNfcGFyYW1lc3RlcnMgdGFibGUgb2YgdGhlIGJvYXJkIGRkciBmaWxlLCB3ZSBuZWVkIHRvIHBhc3MKICAgIHRoZSBkaW1tIHBhcmFtZXRlcnMgdG8gdGhlIGJvYXJkIGZpbGUuCgogICAgKiBtb3ZlIGRkciBkaW1tIHBhcmFtZXRlcnMgaGVhZGVyIGZpbGUgZnJvbSAvY3B1IHRvIC9pbmNsdWRlIGRpcmVjdG9yeS4KICAgICogYWRkIGRkciBkaW1tIHBhcmFtZXRlcnMgdG8gcG9wdWxhdGUgYm9hcmQgc3BlY2lmaWMgb3B0aW9ucy4KICAgICogRml4IGZzbF9kZHJfYm9hcmRfb3B0aW9ucygpIGZvciBhbGwgdGhlIDh4eHggYm9hcmRzIHdoaWNoIGNhbGwgdGhpcyBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRiYmJiM2FiZWZmMzI1ODU1Y2FlNzZlMzNkNjlkNTY2NTYzMTQ0M2YKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTI6MzY6MzkgMjAwOCAtMDQwMAoKICAgIE1ha2UgRERSIGludGVybGVhdmluZyBtb2RlIHdvcmsgY29ycmVjdGx5CgogICAgRml4IHNvbWUgYnVnczoKICAgICAgMS4gQ29ycmVjdGx5IHNldCBpbnRsdl9jdGwgaW4gY3NfY29uZmlnLgogICAgICAyLiBDb3JyZWN0bHkgc2V0IHNhLCBlYSBpbiBjc19ibmRzIHdoZW4gYmFuayBpbnRlcmxlYXZpbmcgbW9kZSBpcyBlbmFibGVkLgogICAgICAzLiBTZXQgYmFzZV9hZGRyZXNzIGFuZCB0b3RhbCBtZW1vcnkgZm9yIGVhY2ggZGRyIGNvbnRyb2xsZXIgaW4gbWVtb3J5CgkgY29udHJvbGxlciBpbnRlcmxlYXZpbmcgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFjOWFhNzZiZjkwMTMwNjllMjQyNThmNDZmNDY4N2M5Zjk4YTAyZDYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gU2VwIDIyIDIzOjQwOjQyIDIwMDggLTA1MDAKCiAgICA4NXh4OiBFbmFibGUgaW50ZXJydXB0IGFuZCBzZXRleHByIGNvbW1hbmRzIG9uIEZyZWVzY2FsZSA4NXh4IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2MwZDRhNzUwOGQyNTJkMmQ3YzEzN2VlYjM3NjgxNDEzMmRkYTMwZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBTZXAgMjIgMTQ6MTE6MTEgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEltcHJvdmUgZmxhc2ggcmVtYXBwaW5nIG9uIE1QQzg1NzJEUyAmIE1QQzg1MzZEUwoKICAgIENoYW5naW5nIHRoZSBmbGFzaCBmcm9tIGNhY2hlYWJsZSB0byBjYWNoZS1pbmhpYml0ZWQgd2FzIHRha2luZyBhIHNpZ25pZmljYW50CiAgICBhbW91bnQgb2YgdGltZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB3ZSB3ZXJlIGl0ZXJhdGluZyBvdmVyIHRoZSBmdWxsIDI1Nk0gb2YKICAgIGZsYXNoLiAgSW5zdGVhZCB3ZSBjYW4ganVzdCBmbHVzaCB0aGUgTDEgZC1jYWNoZSBhbmQgaW52YWxpZGF0ZSB0aGUgaS1jYWNoZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU0ZTA5MWQzYjYwM2EzMzMyYzYxOTE5OWNhODNhMDdlOTU5NjBkYTQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gU2VwIDIyIDE0OjExOjEwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBFeHBvcnQgaW52YWxpZGF0ZV97aSxkfWNhY2hlIGFuZCBhZGQgZmx1c2hfZGNhY2hlCgogICAgQWRkZWQgdGhlIGFiaWxpdHkgZm9yIEMgY29kZSB0byBpbnZhbGlkYXRlIHRoZSBpL2QtY2FjaGUncyBhbmQKICAgIHRvIGZsdXNoIHRoZSBkLWNhY2hlLiAgVGhpcyBhbGxvd3MgdXMgdG8gbW9yZSBlZmZpY2llbnQgY2hhbmdlIG1hcHBpbmdzCiAgICBmcm9tIGNhY2hlLWFibGUgdG8gY2FjaGUtaW5oaWJpdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNjI1MGYwZjYyOTdjNWJhOWFlY2RlYTYyOTA3OTlhOTVjNWQ0YjFkYQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDE2OjExOjUyIDIwMDggKzAyMDAKCiAgICBtZ2NvZ2UsIG1nc3V2ZDogZXh0cmFjdCBtb3JlIGNvbW1vbiBjb2RlCgogICAgaW4gZnRfYmxvYl91cGRhdGUgKCkgZm9yIGJvdGggYm9hcmRzIHdhcyBhbiB1bm5lY2Nlc3NhcnkKICAgIHJlcGV0aXRpb24gb2YgY29kZSwgd2hpY2ggdGhpcyBwYXRjaCBtb3ZlcyBpbiBhIGNvbW1vbgogICAgZnVuY3Rpb24gZm9yIHRoaXMgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDllMjk5MTkyY2E5ODUwY2Y3MjU0NTYzODgwNDJhNWFhNWE2ZjNlYzcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxNyAxMjoxNTo1NSAyMDA4ICswMjAwCgogICAgbWdjb2dlLCBtZ3N1dmQ6IHVzZSBpbl8qL291dF8qIGFjY2Vzb3JzCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTIxY2E5NWY4YjlkY2EyMjcxNDk1MmIzNDhlNDkwNWFjMTU3YjVjZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDEzOjUyOjUxIDIwMDggKzAyMDAKCiAgICBtZ3N1dmQ6IGZpeCBjb21waWxlciB3YXJuaW5nIHdoZW4gdXNpbmcgc29mdF9pMmMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgY2FjOWNmNzg3NWMyYTAxZDYzNDIyODIwZWQ0NzMyYTliZGY1YWI3YgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDEyOjE1OjA1IDIwMDggKzAyMDAKCiAgICBtZ3N1dmQ6IGZpeCBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ZjRjMzEzN2Y0ZjA1MTc4NzcwN2M1NDgxMzM4MjNmMTY1NmViNTA4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTcgMTI6MTM6MzAgMjAwOCArMDIwMAoKICAgIG1nY29nZTogU2Vjb25kIEZsYXNoIG9uIENTNSBub3Qgb24gQ1MxCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzZkYTE5ZGY1YjhlMTg2ZDI2OWYyOTE5MDY5NmJkMzFmYjZjODM2YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTYgMjE6NTI6MDggMjAwOCAtMDUwMAoKICAgIEFkZGVkIGFyY2hfbG1iX3Jlc2VydmUgdG8gYWxsb3cgYXJjaCBzcGVjaWZpYyBtZW1vcnkgcmVnaW9ucyBwcm90ZWN0aW9uCgogICAgRWFjaCBhcmNoaXRlY3R1cmUgaGFzIGRpZmZlcmVudCB3YXlzIG9mIGRldGVybWluZSB3aGF0IHJlZ2lvbnMgb2YgbWVtb3J5CiAgICBtaWdodCBub3QgYmUgdmFsaWQgdG8gZ2V0IG92ZXJ3cml0dGVuIHdoZW4gd2UgYm9vdC4gIFRoaXMgcHJvdmlkZXMgYQogICAgaG9vayB0byBhbGxvdyB0aGVtIHRvIHJlc2VydmUgYW55IHJlZ2lvbnMgdGhleSBjYXJlIGFib3V0LglDdXJyZW50bHkKICAgIG9ubHkgcHBjLCBtNjhrIGFuZCBzcGFyYyBuZWVkL3VzZSB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTAyZDRhOTkwNGM4ZjM2Mzk1OTk0YzBjODE0NjlkNTUyYjgyZjVlYQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgT2N0IDE2IDE2OjMyOjM1IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2U6IGFkZGVkIENPTkZJR19GSVQgdG8gc3VwcG9ydCB0aGUgbmV3IHUtYm9vdCBpbWFnZSBmb3JtYXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2ZDBmNmJjZjMzN2M1MjYxYzA4ZmFiZTEyOTgyMTc4YzJjNDg5ZDc2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IE9jdCAxNiAxNTowMToxNSAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR18gbWFjcm9zIHRvIENPTkZJR19TWVMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDcxZWRjMjcxODE2ZWM4MmNmMDU1MGRkNjk4MGJlMmRhM2NjMmFkOWUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gT2N0IDEzIDE0OjEyOjU1IDIwMDggLTA1MDAKCiAgICA3NHh4Lzd4eC84Nnh4OiBSZW5hbWUgZmx1c2hfZGF0YV9jYWNoZSB0byBmbHVzaF9kY2FjaGUgdG8gbWF0Y2ggODV4eCB2ZXJzaW9uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiNzk5Y2I0YzBlZWJiMDc2MmU5MWU5NjUzZDhiOWNjOWE5ODQ0MGUzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIFNlcCAyMyAxMDowNTowMiAyMDA4IC0wNTAwCgogICAgRXhwb3NlIGNvbW1hbmQgdGFibGUgc2VhcmNoIGZvciBzdWItY29tbWFuZHMKCiAgICBTdWItY29tbWFuZCBjYW4gYmVuZWZpdCBmcm9tIHVzaW5nIHRoZSBzYW1lIHRhYmxlIGFuZCBzZWFyY2ggZnVuY3Rpb25zCiAgICB0aGF0IHRvcCBsZXZlbCBjb21tYW5kcyBoYXZlLiAgRXhwb3NlIHRoaXMgZnVuY3Rpb25hbGl0eSBieSByZWZhY3RvcmluZwogICAgZmluZF9jbWQoKSBhbmQgaW50cm9kdWNpbmcgZmluZF9jbWRfdGJsKCkgdGhhdCBzdWItY29tbWFuZCBwcm9jZXNzaW5nCiAgICBjYW4gY2FsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY3ZTUxYjI3NTA4NDQ2ZjhjYWUzOTI3OTc1ODE3MTM3OTc5YWQ1ZTgKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTo0MTozMyAyMDA4ICswMjAwCgogICAgbWdzdXZkLCBtZ2NvZ2U6IGFkZGVkIEJPT1RDT1VOVCBmZWF0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDhmNjRkYTdmODNiNTUzODg5YmMwODQwMGM5NzA0Nzk5ODM4MmU5ZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTo0MTowMCAyMDA4ICswMjAwCgogICAgbWdjb2dlLCBtZ3N1dmQ6IGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBJVk0gRUVwcm9tLgoKICAgIFRoZSBFRXByb20gY29udGFpbnMgc29tZSBNYW51ZmFjdHVyZXJpbmZvcm1hdGlvbiwKICAgIHdoaWNoIGFyZSByZWFkIGZyb20gdS1ib290IGF0IGJvb3QgdGltZSwgYW5kIHNhdmVkCiAgICBpbiBzYW1lIGh1c2ggc2hlbGwgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDgxNDczZjY3ODEwYzRjOWI3ZWZhZWQ4ZGVlMjU4ZWQ2YmM0Yzc5ODMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTo0MDoyOCAyMDA4ICswMjAwCgogICAgaHVzaDogYWRkIHNob3d2YXIgY29tbWFuZCBmb3IgaHVzaCBzaGVsbC4KCiAgICBUaGlzIG5ldyBjb21tYW5kIHNob3dzIHRoZSBsb2NhbCB2YXJpYWJsZXMgZGVmaW5lZCBpbgogICAgdGhlIGh1c2ggc2hlbGw6CgogICAgPT4gaGVscCBzaG93dmFyCiAgICBzaG93dmFyCgktIHByaW50IHZhbHVlcyBvZiBhbGwgaHVzaHNoZWxsIHZhcmlhYmxlcwogICAgc2hvd3ZhciBuYW1lIC4uLgoJLSBwcmludCB2YWx1ZSBvZiBodXNoc2hlbGwgdmFyaWFibGUgJ25hbWUnCgogICAgQWxzbyBtYWtlIHRoZSBzZXRfbG9jYWxfdmFyKCkgYW5kIHVuc2V0X2xvY2FsX3ZhciAoKQogICAgbm8gbG9uZ2VyIHN0YXRpYywgc28gaXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIGxvY2FsCiAgICBodXNoIHNoZWxsIHZhcmlhYmxlcyBhdCBib290IHRpbWUuIElmIENPTkZJR19IVVNIX0lOSVRfVkFSCiAgICBpcyBkZWZpbmVkLCB1LWJvb3QgY2FsbHMgaHVzaF9pbml0X3ZhciAoKSwgd2hlcmUKICAgIGJvYXJkc3BlY2lmaWMgY29kZSBjYW4gZGVmaW5lIGxvY2FsIGh1c2ggc2hlbGwKICAgIHZhcmlhYmxlcyBhdCBib290dGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2N2IyM2EzMjI4NDhkODI4YTVlNDVjMDU2N2I3Mjc2MmJmZGU3YWJmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6Mzk6NDcgMjAwOCArMDIwMAoKICAgIEkyQzogYWRkaW5nIG5ldyAiaTJjIGJ1cyIgQ29tbWFuZCB0byB0aGUgSTJDIFN1YnN5c3RlbS4KCiAgICBXaXRoIHRoaXMgQ29tbWFuZCBpdCBpcyBwb3NzaWJsZSB0byBhZGQgbmV3IEkyQyBCdXNzZXMsCiAgICB3aGljaCBhcmUgYmVoaW5kIDEgLi4gbiBJMkMgTXV4ZXMuIERldGFpbHMgc2VlIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjMjQ4NTM2NDRkZGQyZGQyZTQyNDZiNTg1NGE5M2U2MjU0YTE0MDkyCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6Mzk6MDggMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXZkOiBhZGQgYm9hcmQgc3BlY2lmaWMgSTJDIGRlYmxvY2tpbmcgbWVjaGFuaXNtLgoKICAgIEFzIGRvY3VtZW50ZWQgaW4gZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMsIGFkZGluZyBhCiAgICBib2FyZCBzcGVjaWZpYyBkZWJsb2NraW5nIG1lY2hhbmlzbSB2aWEgQ0ZHX0kyQ19JTklUX0JPQVJECiAgICBmb3IgdGhlIG1nY29nZSBhbmQgbWdzdXZkIGJvYXJkLgoKICAgIFRoaXMgY29kZSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IEtleW1pbGUgaW4gYXNzb2NpYXRpb24KICAgIHdpdGggQW5hdGVjaCBhbmQgQXRtZWwgaW4gMTk5OC4gVGhlIENvZGUgdG9nZ2VscyB0aGUgU0NMCiAgICB1bnRpbCB0aGUgU0NBIGxpbmUgZ29lcyB0byBISUdIIChtYXguIDE2IHRpbWVzKS4KICAgIEFuZCBhZnRlciB0aGlzLCBhIHN0YXJ0IGNvbmRpdGlvbiBpcyBzZW50LgoKICAgIFRoaXMgaXMgYW5vdGhlciBhcHByb2FjaCB0byBkZWJsb2NrIHRoZSBJMkMgQnVzLiBUaGUKICAgIHNvZnQgSTJDIGRyaXZlciBhY3R1YWxseSBzZW5kcyA5IGNsb2NrcyB3aXRoIFNEQSBIaWdoLAogICAgYW5kIHRoZW4gYSBzdG9wIGF0IHRoZSBlbmQsIHRvIGRlYmxvY2sgdGhlIEkyQyBCdXMuCgogICAgTWF5YmUgd2Ugc2hvdWxkIHVzZSB0aGUgYXBwcm9hY2ggZnJvbSBLZXltaWxlIGFzCiAgICB0aGUgbmV3IHN0YW5kYXJkPwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDRjYTEwN2VmZmViZmJhYmFjMTA1N2MzOTYzMjEwNWRhY2VmOTU5NTcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozODozOCAyMDA4ICswMjAwCgogICAgc29mdF9pMmM6IEFkZCBDRkdfSTJDX0lOSVRfQk9BUkQgb3B0aW9uCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpb24gZm9yIGEgYm9hcmRzcGVjaWZpYwogICAgSTJDIGRlYmxvY2tpbmcgbWVjaGFuaXNtIGZvciB0aGUgc29mdCBpMmMgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU1ZTRlZGQ5ZjFmNzYyMTBhMDljMzRlZTgzNWY2Y2ZmNjBmZGJiZDEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozODowNyAyMDA4ICswMjAwCgogICAgbWdjb2dlLCBtZ3N1dmQ6IGFkZCBEVFQgKExNNzUpIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOGU0NDJkZjQzOGFiNjc3MDU3NTcxZTNhYzAxODQ2YmZmNzcxOWJjZQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjM3OjM0IDIwMDggKzAyMDAKCiAgICBsbTc1OiBNYWtlIHRoZSBMTTc1IE1VTFRJX0JVUyBjb21wYXRpYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDEyZjE2NzgxMjdjMWRmMmIyODc4YmE5M2M4ODk0OGJlZGMwNjA3NzUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozNzowNCAyMDA4ICswMjAwCgogICAgbG03NTogZml4IENvZGluZ3N0eWxlIGlzc3Vlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBmMjIwMjQ1MGM3NWJhNjkzNGIzNTYwMjQxMDE1MDBkZGNkZTZlMmE2CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6MzY6MzMgMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXZkOiBhZGRlZCBFRXByb20gc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5NjYxYmY5ZDEyMGY3NjAyMzhiMmEwNzNiODRmMmJhZjA1MDEwMDU3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6MzY6MDMgMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXZkOiBhZGQgSTJDIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOThhZWQzNzk1ODZhMTU1MjkyZWZiZjMyMDkzNTY4MzY1ODRiNjAxYwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjM1OjI2IDIwMDggKzAyMDAKCiAgICBzb2Z0X2kyYzogcHJldmVudCBjb21waWxlciB3YXJuaW5ncyBpZiBkcml2ZXIgZG9lcyBub3QgdXNlIENQVSBQaW5zLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGZvbGxvd2luZyB3YXJuaW5ncywgd2hlbiB1c2luZwogICAgdGhlIHNvZnRfaTJjIGRyaXZlciB1c2luZyBubyBDUFUgcGlucyBvbiBNUEM4Mnh4IG9yIE1QQzh4eAogICAgc3lzdGVtczoKCiAgICBzb2Z0X2kyYy5jOiBJbiBmdW5jdGlvbiAnc2VuZF9yZXNldCc6CiAgICBzb2Z0X2kyYy5jOjkzOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2ltbXInCiAgICBzb2Z0X2kyYy5jOiBJbiBmdW5jdGlvbiAnc2VuZF9zdGFydCc6CiAgICBzb2Z0X2kyYy5jOjEyNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwogICAgc29mdF9pMmMuYzogSW4gZnVuY3Rpb24gJ3NlbmRfc3RvcCc6CiAgICBzb2Z0X2kyYy5jOjE0Njogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwogICAgc29mdF9pMmMuYzogSW4gZnVuY3Rpb24gJ3NlbmRfYWNrJzoKICAgIHNvZnRfaTJjLmM6MTcxOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2ltbXInCiAgICBzb2Z0X2kyYy5jOiBJbiBmdW5jdGlvbiAnd3JpdGVfYnl0ZSc6CiAgICBzb2Z0X2kyYy5jOjE5Njogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwogICAgc29mdF9pMmMuYzogSW4gZnVuY3Rpb24gJ3JlYWRfYnl0ZSc6CiAgICBzb2Z0X2kyYy5jOjI0NDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDc5OWI3ODRhYTAwY2IwM2EzNTI4NDdhYjlmOWFjZGRlNzliNzJkMjEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozNDo0NSAyMDA4ICswMjAwCgogICAgaTJjOiBhZGQgQ09ORklHX0kyQ19NVUxUSV9CVVMgZm9yIHNvZnRfaTJjIGFuZCBtcGM4MjYwIGkyYyBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMDgwOWVhMmY0MzQwYWIyMDQ3NDAwYzdkM2QzMDQ3Zjk3OTg3ZDBmZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjM0OjA1IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2U6IGZpeCBDb2RpbmcgU3R5bGUgaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU0M2EyN2M0OTcxMjIwM2ZlODg0OGExNzcxNDMzMDYyM2VkZmIyZWIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozMzozMCAyMDA4ICswMjAwCgogICAgSTJDOiBhZGQgbmV3IGNvbW1hbmQgaTJjIHJlc2V0LgoKICAgIElmIEkyQyBCdXMgaXMgYmxvY2tlZCAoc2VlIGRvYy9JMkNfRWRnZV9Db25kaXRpb25zKSwKICAgIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBnZXQgb3V0IG9mIHRoaXMsIHVudGlsIHRoZQogICAgY29tcGxldGUgSGFyZHdhcmUgZ2V0cyBhIHJlc2V0LiBUaGlzIG5ldyBjb21tYW5kbwogICAgY2FsbHMgYWdhaW4gaTJjX2luaXQgKGFuZCB0aGF0IGNhbGxzIGkyY19pbml0X2JvYXJkCiAgICBpZiBkZWZpbmVkKSwgd2hpY2ggd2lsbCBkZWJsb2NrIHRoZSBJMkMgQnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NmU5Y2RmOGM0MTVjMWE5NzI1ZTlkYWU1MjM3YmExZTdiZDlmNjg2CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6MzI6MjUgMjAwOCArMDIwMAoKICAgIG1nc3V2ZCwgbWdjb2dlOiBtb3ZlIHRoaXMgMiBib2FyZHMgaW4gb25lIGRpci4KCiAgICBUaGVyZSBhcmUgc29tZSBtb3JlIGV4dGVuc2lvbnMsIHdoaWNoIGFyZSBmb3IgYm90aCBib2FyZHMKICAgIGFuZCBzb21lIG1vcmUgYm9hcmRzIGZyb20gdGhpcyBtYW51ZmFjdHVyZXIgd2lsbCBmb2xsb3cgc29vbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWM2ZmU2ZWFjNzVkNjk1ZmRlNjc3YWY4MzMwYzBkYmU3NWZiNmEyYgpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CVdlZCBPY3QgOCAxMzo0NDoyNyAyMDA4ICswMjAwCgogICAgaHdtb246IEFkZCBMTTYzIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIE5hdGlvbmFsIExNNjMgdGVtcGVyYXR1cmUKICAgIHNlbnNvciB3aXRoIGludGVncmF0ZWQgZmFuIGNvbnRyb2wuIEl0J3MgdXNlZCBvbiB0aGUgR0RTeXMKICAgIE5lbyBib2FyZCAoNDA1RVApIHdoaWNoIHdpbGwgYmUgc3VibWl0dGVkIGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdiYTg5MGJmMmYyYjkyODMxNDIwMjQzYzA1ODk1MWFhODMxMTE5ZmQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJV2VkIE9jdCA4IDExOjAxOjE3IDIwMDggKzA5MDAKCiAgICBBZGQgUmVkIEJsYWNrIFRyZWUgc3VwcG9ydAoKICAgIE5vdyBpdCdzIHVzZWQgYXQgVUJJIG1vZHVsZS4gT2YgY291cnNlIG90aGVyIG1vZHVsZXMgY2FuIHVzZSBpdC4KICAgIElmIHlvdSB3YW50IHRvIHVzZSBpdCwgcGxlYXNlIGRlZmluZSBDT05GSUdfUkJUUkVFCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBmYmQ4NWFkNjVkZDljOThmMzZlZDNmYjEyZmU0MWYzODFiN2Q0Nzk0CkF1dGhvcjogcmljaGFyZHJldGFudWJ1biA8cmljaGFyZHJldGFudWJ1bkBydWdnZWRjb20uY29tPgpEYXRlOglNb24gT2N0IDYgMTY6MTA6NTMgMjAwOCAtMDQwMAoKICAgIENPTkZJR19FRklfUEFSVElUSU9OOiBBZGRlZCBzdXBwb3J0IGZvciBFRkkgcGFydGl0aW9uIGluIGNtZF9leHQyZnMuYwoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIENPTkZJR19FRklfUEFSVElUSU9OIHRvIGV4dDIgY29tbWFuZHMuCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KCmNvbW1pdCAwN2YzZDc4OWI5YmViN2NlMzI3OGM5NzRmNGQ1YzhmNTFiNmFiNTY3CkF1dGhvcjogcmljaGFyZHJldGFudWJ1biA8cmljaGFyZHJldGFudWJ1bkBydWdnZWRjb20uY29tPgpEYXRlOglGcmkgU2VwIDI2IDExOjEzOjIyIDIwMDggLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQ09ORklHX0VGSV9QQVJUSVRJT04gKEdVSUQgUGFydGl0aW9uIFRhYmxlKQoKICAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgUGFydGl0aW9uIFRhYmxlIChHUFQpIGlzIGEgcGFydAogICAgb2YgRUZJLiBTZWUgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HVUlEX1BhcnRpdGlvbl9UYWJsZQoKICAgIEJhc2VkIG9uIGxpbnV4L2ZzL3BhcnRpdGlvbnMvZWZpLltjaF0KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KCmNvbW1pdCBmYmM4N2RjMDU0NmRmZjcwOWIzOGYzNThlMmM1ZDVlMzljNGNhMzc0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAxIDE1OjI2OjMyIDIwMDggKzAyMDAKCiAgICBGSVQ6IG91dHB1dCBpbWFnZSBsb2FkIGFkZHJlc3MgZm9yIHR5cGUgJ2Zpcm13YXJlJywgZml4IG1lc3NhZ2Ugd2hpbGUgdGhlcmUKCiAgICBOb3cgdGhhdCB0aGUgYXV0by11cGRhdGUgZmVhdHVyZSB1c2VzIHRoZSAnZmlybXdhcmUnIHR5cGUgZm9yIHVwZGF0ZXMsIGl0IGlzCiAgICB1c2VmdWwgdG8gaW5zcGVjdCB0aGUgbG9hZCBhZGRyZXNzIG9mIHN1Y2ggaW1hZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNGJhZTkwOTA0YjY5Y2UzZGViOWY3YzMzNGVmMTJlZDc0ZTE4YTI3NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBPY3QgMSAxNToyNjozMSAyMDA4ICswMjAwCgogICAgQXV0b21hdGljIHNvZnR3YXJlIHVwZGF0ZSBmcm9tIFRGVFAgc2VydmVyCgogICAgVGhlIGF1dG8tdXBkYXRlIGZlYXR1cmUgYWxsb3dzIHRvIGF1dG9tYXRpY2FsbHkgZG93bmxvYWQgc29mdHdhcmUgdXBkYXRlcwogICAgZnJvbSBhIFRGVFAgc2VydmVyIGFuZCBzdG9yZSB0aGVtIGluIEZsYXNoIG1lbW9yeSBkdXJpbmcgYm9vdC4gVXBkYXRlcyBhcmUKICAgIGNvbnRhaW5lZCBpbiBhIEZJVCBmaWxlIGFuZCBwcm90ZWN0ZWQgd2l0aCBTSEEtMSBjaGVja3N1bS4KCiAgICBNb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGNhbiBiZSBmb3VuZCBpbiBkb2MvUkVBRE1FLnVwZGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDNmMGNmNTFkYWJhY2MyNzI0NzMxYzUwNzlhNjBlYTk4OTEwM2JiOGYKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDEgMTU6MjY6MjcgMjAwOCArMDIwMAoKICAgIGZsYXNoOiBmYWN0b3Igb3V0IGFkanVzdGluZyBvZiBGbGFzaCBhZGRyZXNzIHRvIHRoZSBlbmQgb2Ygc2VjdG9yCgogICAgVGhlIHVwY29taW5nIGF1dG9tYXRpYyB1cGRhdGUgZmVhdHVyZSBuZWVkcyB0aGUgYWJpbGl0eSB0byBhZGp1c3QgYW4KICAgIGFkZHJlc3Mgd2l0aGluIEZsYXNoIHRvIHRoZSBlbmQgb2YgaXRzIHJlc3BlY3RpdmUgc2VjdG9yLiBGYWN0b3Igb3V0CiAgICB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gYSBuZXcgZnVuY3Rpb24gZmxhc2hfc2VjdF9yb3VuZGIoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU4M2NjMDYzNzVhYzJiZWEwODMwYzZlZDBmOWQ4ZmRjM2MxYjI3ZDUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDEgMTU6MjY6MjkgMjAwOCArMDIwMAoKICAgIG5ldDogTWFrZSBURlRQIHNlcnZlciB0aW1lb3V0IGNvbmZpZ3VyYWJsZQoKICAgIFRoZXJlIGFyZSB0d28gYXNwZWN0cyBvZiBhIFRGVFAgdHJhbnNmZXIgaW52b2x2aW5nIHRpbWVvdXRzOgogICAgMS4gdGltZW91dCB3YWl0aW5nIGZvciBpbml0aWFsIHNlcnZlciByZXBseSBhZnRlciBzZW5kaW5nIFJSUQogICAgMi4gdGltZW91dHMgd2hpbGUgdHJhbnNmZXJyaW5nIGFjdHVhbCBkYXRhIGZyb20gdGhlIHNlcnZlcgoKICAgIFNpbmNlIHRoZSB1cGNvbWluZyBhdXRvLXVwZGF0ZSBmZWF0dXJlIGF0dGVtcHRzIGEgVEZUUCBkb3dubG9hZCBkdXJpbmcgZWFjaAogICAgYm9vdCwgaXQgaXMgdW5kZXNpcmFibGUgdG8gaGF2ZSBhIGxvbmcgZGVsYXkgd2hlbiB0aGUgVEZUUCBzZXJ2ZXIgaXMgbm90CiAgICBhdmFpbGFibGUuIFRodXMsIHRoaXMgY29tbWl0IG1ha2VzIHRoZSBzZXJ2ZXIgdGltZW91dCAoMS4pIGNvbmZpZ3VyYWJsZSBieSB0d28KICAgIGdsb2JhbCB2YXJpYWJsZXM6CgogICAgVGZ0cFJSUVRpbWVvdXRNU2VjcwogICAgVGZ0cFJSUVRpbWVvdXRDb3VudE1heAoKICAgIFRmdHBSUlFUaW1lb3V0TVNlY3Mgb3ZlcnJpZGVzIGRlZmF1bHQgdGltZW91dCB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIGEgVEZUUAogICAgc2VydmVyLCBUZnRwUlJRVGltZW91dENvdW50TWF4IG92ZXJyaWRlcyBkZWZhdWx0IG51bWJlciBvZiBjb25uZWN0aW9uIHJldHJpZXMuCiAgICBUaGUgdG90YWwgZGVsYXkgd2hlbiB0cnlpbmcgdG8gZG93bmxvYWQgYSBmaWxlIGZyb20gYSBub24tZXhpc3RpbmcgVEZUUCBzZXJ2ZXIKICAgIGlzIFRmdHBSUlFUaW1lb3V0TVNlY3MgeCBUZnRwUlJRVGltZW91dENvdW50TWF4IG1pbGxpc2Vjb25kcy4KCiAgICBUaW1lb3V0cyBkdXJpbmcgZmlsZSB0cmFuc2ZlcnMgKDIuKSBhcmUgdW5hZmZlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA0OWYzYmRiYmE4MDcxZjU2ZDk1MGE5NDk4YjZjZGI5OThiMzUzNDBhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAxIDE1OjI2OjI4IDIwMDggKzAyMDAKCiAgICBuZXQ6IGV4cHJlc3MgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIE5ldFNldFRpbWVvdXQoKSBpbiBtaWxsaXNlY29uZHMKCiAgICBFbmZvcmNlIG1pbGxpc2Vjb25kIHNlbWFudGljcyBvZiB0aGUgZmlyc3QgYXJndW1lbnQgdG8gTmV0U2V0VGltZW91dCgpIC0tCiAgICB0aGUgY2hhbmdlIGlzIHRyYW5zcGFyZW50IGZvciB3ZWxsLWJlaGF2aW5nIGJvYXJkcyAoQ0ZHX0haID09IDEwMDAgYW5kCiAgICBnZXRfdGltZXIoKSBjb3VudGlpbmcgaW4gbWlsbGlzZWNvbmRzKS4KCiAgICBSYXRpb25hbGUgZm9yIHRoaXMgcGF0Y2ggaXMgdG8gZW5hYmxlIG1pbGxpc2Vjb25kIGdyYW51bGFyaXR5IGZvcgogICAgbmV0d29yay1yZWxhdGVkIHRpbWVvdXRzLCB3aGljaCBpcyBuZWVkZWQgZm9yIHRoZSB1cGNvbWluZyBhdXRvbWF0aWMKICAgIHNvZnR3YXJlIHVwZGF0ZSBmZWF0dXJlLgoKICAgIFN1bW1hcnkgb2YgY2hhbmdlczoKICAgIC0gZG8gbm90IHNjYWxlIHRoZSBmaXJzdCBhcmd1bWVudCB0byBOZXRTZXRUaW1lb3V0KCkgYnkgQ0ZHX0haCiAgICAtIGNoYW5nZSB0aW1lb3V0IHZhbHVlcyB1c2VkIGluIHRoZSBuZXR3b3JraW5nIGNvZGUgdG8gbWlsbGlzZWNvbmRzCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgQ3p1YmFrIDxyY3pAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYzY4YTA1ZmVlYjg4ZGU5ZmNmMTU4ZTY3ZmY2NDIzYzRjYzk4OGY4OApBdXRob3I6IHJpY2hhcmRyZXRhbnVidW4gPHJpY2hhcmRyZXRhbnVidW5AcnVnZ2VkY29tLmNvbT4KRGF0ZToJTW9uIFNlcCAyOSAxODoyODoyMyAyMDA4IC0wNDAwCgogICAgQWRkcyB0d28gbW9yZSBldGhlcm5ldCBpbnRlcmZhY2UgdG8gODN4eAoKICAgIEFkZGVkIGFzIGEgY29udmVuaWVuY2UgZm9yIG90aGVyIHBsYXRmb3JtcyB0aGF0IHVzZXMgTVBDODM2MCAoaGFzIDggVUNDKS4KICAgIFNpeCBldGggaW50ZXJmYWNlIGlzIGNob3NlbiBiZWNhdXNlIHRoZSBwbGF0Zm9ybSBJIGFtIHVzaW5nIGNvbWJpbmVzCiAgICBVQ0MxJjIgYW5kIFVDQzMmNCBhcyAxMDAwIEV0aCBhbmQgdGhlIG90aGVyIGZvdXIgVUNDcyBhcyAxMC8xMDAgRXRoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dnZWRDb20uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA0MTQxMGVlZTQ3MmIwZjQyZTAzYTc3Zjk2MWJiYzU1ZWY1OGYzYzAxCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAyNCAxMTo0MjoxMiAyMDA4IC0wNTAwCgogICAgQ2hhbmdlIFVFQyBQSFkgaW50ZXJmYWNlIHRvIFJHTUlJIG9uIE1QQzg1NjhNRFMKCiAgICBDaGFuZ2UgVUVDIHBoeSBpbnRlcmZhY2UgZnJvbSBHTUlJIHRvIFJHTUlJIG9uIE1QQzg1NjhNRFMgYm9hcmQKCiAgICBCZWNhdXNlIG9uIE1QQzg1NjhNRFMsIEdNSUkgaW50ZXJmYWNlIGlzIG9ubHkgcmVjb21tZW5kZWQgZm9yIDEwMDBNYnBzIHNwZWVkLAogICAgYnV0IFJHTUlJIGludGVyZmFjZSBjYW4gd29yayBhdCAxMC8xMDAvMTAwME1icHMsIGFuZCBSR01JSSBpbnRlcmZhY2Ugd29ya3MgbW9yZSBzdGFibGUuCgogICAgTm93IGJvdGggVUVDMSBhbmQgVUVDMiBjYW4gd29yayBwcm9wZXJseSB1bmRlciB1LWJvb3QuCgogICAgSXQgaXMgYWxzbyBpbiBjb25zaXN0ZW50IHdpdGggdGhlIGtlcm5lbCBzZXR0aW5nIGZvciA4NTY4IFVFQyBwaHkgaW50ZXJmYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGI1OWIxNmNhMjRiYzdlNzdlYzExMzAyMWE2ZDc3YjliMzJmY2YxOTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDE4IDIxOjMwOjMxIDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYyMDA4LjEwIHJlbGVhc2U6IHVwZGF0ZSBDSEFOR0VMT0cgJiBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjdhMzVhNjBjZjQ1NDkxODcxYTVjMjhlOWFkMjRkYjAwNTQ4Nzg1NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDE4OjI0OjA2IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2U6IGFkZCByZWR1bmRhbnQgZW52aXJvbm1lbnQgc2VjdG9yCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGMyNTM3ZWU4NTk1NGFmOWQwMzZiMThiNjQ0ZjNlMThkODM3YmY0YTUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxNyAxODoyMzoyNyAyMDA4ICswMjAwCgogICAgbWdzdXZkOiB1cGRhdGUgc2l6ZSBvZiBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGZhN2IxYzA3ZTkzNzFhZWE4Zjg3ZWU2ZDNjMmVhNTU2NGJkOGNjOGQKQXV0aG9yOiBMZXBjaGEgU3VjaGl0IDxTdWNoaXQuTGVwY2hhQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTYgMTM6Mzg6MDAgMjAwOCAtMDUwMAoKICAgIDgzeHggTkFORCBib290OiB3YWl0IGZvciBMVEVTUltDQ10KCiAgICBBdCBsZWFzdCBzb21lIHJldmlzaW9ucyBvZiB0aGUgODMxMywgYW5kIHBvc3NpYmx5IG90aGVyIGNoaXBzLCBkbyBub3QKICAgIHdhaXQgZm9yIGFsbCBwYWdlcyBvZiB0aGUgaW5pdGlhbCA0SyBOQU5EIHJlZ2lvbiB0byBiZSBsb2FkZWQgYmVmb3JlCiAgICBiZWdpbm5pbmcgZXhlY3V0aW9uOyB0aHVzLCB3ZSB3YWl0IGZvciBpdCBiZWZvcmUgYnJhbmNoaW5nIG91dCBvZiB0aGUKICAgIGZpcnN0IE5BTkQgcGFnZS4KCiAgICBUaGlzIGZpeGVzIHdhcm0gcmVzZXQgcHJvYmxlbXMgd2hlbiBib290aW5nIGZyb20gTkFORCBvbiA4MzEzZXJkYi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMjllMGVhMGFmMDNkNTkzYzY0NjE0MTM2YWNjNzIzYTdhMDIyYTIKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBPY3QgMTcgMTI6NTQ6MTggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUFBDNDR4IE1RIGluaXRpYWxpemF0aW9uCgogICAgU2V0IHRoZSBNUSBSZWFkIFBhc3NpbmcgJiBNQ0lGIEN5Y2xlIGxpbWl0cyB0byB0aGUgcmVjb21tZW5kZWQgYnkgQU1DQwogICAgdmFsdWVzLiBUaGlzIGZpeGVzIHRoZSBvY2Nhc2lvbmFsIDQ0MFNQZSBoYXJkIGxvY2tpbmcgaXNzdWVzIHdoZW4gdGhlIDQ0MFNQZSdzCiAgICBkZWRpY2F0ZWQgRE1BIGVuZ2luZXMgYXJlIHVzZWQgKGUuZy4gYnkgdGhlIGgvdyBhY2NlbGVyYXRlZCBSQUlEIGRyaXZlcikuCgogICAgUHJldmlvdXNseSB0aGUgYXBwcm9wcmlhdGUgaW5pdGlhbGl6YXRpb24gaGFkIGJlZW4gbWFkZSBpbiBMaW51eCwgYnkgdGhlCiAgICBwcGM0NDBzcGUgQURNQSBkcml2ZXIsIHdoaWNoIGlzIHdyb25nIGJlY2F1c2UgbW9kaWZ5aW5nIHRoZSBNUSBjb25maWd1cmF0aW9uCiAgICByZWdpc3RlcnMgYWZ0ZXIgbm9ybWFsIG9wZXJhdGlvbiBoYXMgYmVndW4gaXMgbm90IHN1cHBvcnRlZCBhbmQgY291bGQKICAgIGhhdmUgdW5wcmVkaWN0YWJsZSByZXN1bHRzLgoKICAgIENvbW1lbnQgZnJvbSBTdGVmYW46IFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgdGhlIHJlc3VsdGluZyB2YWx1ZSBvZiB0aGUKICAgIE1RIHJlZ2lzdGVycy4gSXQgZXhwbGljaXRseSBzZXRzL2NsZWFycyBhbGwgYml0cyB0byB0aGUgZGVzaXJlZCBzdGF0ZSB3aGljaAogICAgYmV0dGVyIGRvY3VtZW50cyB0aGUgcmVzdWx0aW5nIHJlZ2lzdGVyIHZhbHVlIGluc3RlYWQgb2YgcmVseWluZyBvbiBwcmUtc2V0CiAgICBkZWZhdWx0IHZhbHVlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWMwODFjMmMxOTAxNDhiMzc0ZTg2YTc5NWZiNmIxYzQ5Y2FlYjU0OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxNyAxMjo1MTo0NiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBQUEM0NHggTVEgaW5pdGlhbGl6YXRpb24KCiAgICBTZXQgdGhlIE1RIFJlYWQgUGFzc2luZyAmIE1DSUYgQ3ljbGUgbGltaXRzIHRvIHRoZSByZWNvbW1lbmRlZCBieSBBTUNDCiAgICB2YWx1ZXMuIFRoaXMgZml4ZXMgdGhlIG9jY2FzaW9uYWwgNDQwU1BlIGhhcmQgbG9ja2luZyBpc3N1ZXMgd2hlbiB0aGUgNDQwU1BlJ3MKICAgIGRlZGljYXRlZCBETUEgZW5naW5lcyBhcmUgdXNlZCAoZS5nLiBieSB0aGUgaC93IGFjY2VsZXJhdGVkIFJBSUQgZHJpdmVyKS4KCiAgICBQcmV2aW91c2x5IHRoZSBhcHByb3ByaWF0ZSBpbml0aWFsaXphdGlvbiBoYWQgYmVlbiBtYWRlIGluIExpbnV4LCBieSB0aGUKICAgIHBwYzQ0MHNwZSBBRE1BIGRyaXZlciwgd2hpY2ggaXMgd3JvbmcgYmVjYXVzZSBtb2RpZnlpbmcgdGhlIE1RIGNvbmZpZ3VyYXRpb24KICAgIHJlZ2lzdGVycyBhZnRlciBub3JtYWwgb3BlcmF0aW9uIGhhcyBiZWd1biBpcyBub3Qgc3VwcG9ydGVkIGFuZCBjb3VsZAogICAgaGF2ZSB1bnByZWRpY3RhYmxlIHJlc3VsdHMuCgogICAgQ29tbWVudCBmcm9tIFN0ZWZhbjogVGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSB0aGUgcmVzdWx0aW5nIHZhbHVlIG9mIHRoZQogICAgTVEgcmVnaXN0ZXJzLiBJdCBleHBsaWNpdGx5IHNldHMvY2xlYXJzIGFsbCBiaXRzIHRvIHRoZSBkZXNpcmVkIHN0YXRlIHdoaWNoCiAgICBiZXR0ZXIgZG9jdW1lbnRzIHRoZSByZXN1bHRpbmcgcmVnaXN0ZXIgdmFsdWUgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHByZS1zZXQKICAgIGRlZmF1bHQgdmFsdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmN2QxOTBiMWMwYjNhYjdmYzUzMDc0YWQyODYyZjdkZTk5ZGUzN2ZmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxNiAyMTo1ODo1MCAyMDA4IC0wNTAwCgogICAgODV4eDogVXNpbmcgcHJvcGVyIEkyQyBzb3VyY2UgY2xvY2sgZGl2aWRlciBmb3IgTVBDODU0NAoKICAgIFRoZSBNUEM4NTQ0IFJNIGluY29ycmVjdCBzaG93cyB0aGUgU0VDX0NGRyBiaXQgaW4gUE9SREVWU1IyIGFzIGJlaW5nCiAgICBiaXQgMjYsIGluc3RlYWQgaXQgc2hvdWxkIGJlIGJpdCAyOC4gIFRoaXMgY2F1c2VkIGluIGluY29ycmVjdAogICAgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGkyY19jbGsgd2hpY2ggaXMgdGhlIHNhbWUgYXMgdGhlIFNFQyBjbGsgb24KICAgIE1QQzg1NDQuICBUaGUgU0VDIGNsayBpcyBjb250cm9sbGVkIGJ5IGNmZ19zZWNfZnJlcSB0aGF0IGlzIHJlcG9ydGVkCiAgICBpbiBQT1JERVZTUjIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0MjY1M2I4MjZhZGIzMTlhMWRmMDZlMjRlZjI2MDk2YjJhNWQ5ZDJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxNiAyMTo1ODo0OSAyMDA4IC0wNTAwCgogICAgUmV2ZXJ0ICI4NXh4OiBVc2luZyBwcm9wZXIgSTJDIHNvdXJjZSBjbG9jayBkaXZpZGVyIGZvciBNUEM4NTQ0IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGZmZDI0NDZmYjA0MWYzOGVmMDM0YjBmY2Y0MWU1MWU1ZTQ4OTE1OS4KCiAgICBUaGUgZml4IGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCBpcyBub3QgY29ycmVjdC4gIFRoZSBwcm9ibGVtIGlzCiAgICB0aGF0IHRoZSBkb2N1bWVudGF0aW9uIGlzIG5vdCBjb3JyZWN0IGZvciB0aGUgTVBDODU0NCB3aXRoIHJlZ2FyZHMKICAgIHRvIHdoaWNoIGJpdCBpbiBQT1JERVZTUjIgaXMgZm9yIHRoZSBTRUNfQ0ZHLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjE3OWM0NzY2YmZmZWVjZTk4ZTVlOTIwNDA2MjlhOTZjOTdlMjMwYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMTUgMTA6MTk6NDEgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBtcGM4NTM2ZHMuYzogSW4gZnVuY3Rpb24gJ2lzX3NhdGFfc3VwcG9ydGVkJzoKICAgIG1wYzg1MzZkcy5jOjYxNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdkZXZkaXNyJwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOTAyOWI2OGYzZjgxYjMwMTMwNDRmMTY3ZWEwMjVlODM2ZTZjOGMwZQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMTUgMTA6NDA6MjQgMjAwOCArMDgwMAoKICAgIEZpeCB0aGUgZnVuY3Rpb24gY29uZmxpY3QgaW4geDg2ZW11IHdoZW4gREVCVUcgaXMgb24KCiAgICBUaGUgZnVuY3Rpb24gcGFyc2VfbGluZSgpIGluIGNvbW1vbi9tYWluLmMgd2FzIGV4cG9zZWQgZ2xvYmFsbHkgYnkgY29tbWl0CiAgICA2NjM2YjYyYTZlZmM3ZjE0ZTZlNzg4Nzg4NjMxYWU3YTdmY2E0NTM3LCBSZXN1bHQgaW4gY29uZmxpY3Qgd2l0aCB0aGUgc2FtZQogICAgbmFtZSBmdW5jaXRvbiBpbiBkcml2ZXJzL2Jpb3NfZW11bGF0b3IveDg2ZW11L2RlYnVnLmMgd2hlbiBkZWZpbmUgdGhlIERFQlVHLgogICAgVGhpcyBwYXRjaCBmaXggdGhpcyBieSByZW5hbWluZyB0aGUgZnVuY3Rpb24gaW4gdGhlIGRlYnVnLmMgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0ZGJhY2Y2OWE2NjlhMTc0ODcwNTQ1NTJmYzI3NjExNDlkZDY3NjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDE1OjUwOjQ1IDIwMDggKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRywgcHJlcGFyZSAyMDA4LjEwLXJjMwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzc0YjkwMzgyOTNkMDFkODc0NGE0NmFmOWI3ODU0YTZmZDk5YjIyOApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjUxOjE5IDIwMDggKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbiBsaWJfcHBjL2JvYXJkLmMKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCAwZjhjYmMxOAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NzI0NTU1NzU1YTZmMTA2NjYzNjQ4MWI0MWY3MDk0ZTBjZTkzYTY5CkF1dGhvcjogU2VsdmFtdXRodWt1bWFyIDxzZWx2YS5tdXRodWt1bWFyQGUtY29uaW5mb3RlY2guY29tPgpEYXRlOglUaHUgT2N0IDkgMTA6Mjk6MTQgMjAwOCArMDUzMAoKICAgIG1wYzgzeHg6IHdhaXQgdGlsbCBVUE0gY29tcGxldGVzIHRoZSB3cml0ZSB0byBhcnJheQoKICAgIFJlZmVyZW5jZSBtYW51YWwgc3RhdGVzIHRoYXQgTXhNUltNQURdIGluY3JlbWVudCBpcyB0aGUgaW5kaWNhdGlvbgogICAgb2Ygd3JpdGUgdG8gVVBNIGFycmF5IGlzIGNvbXBsZXRlLiBIb25vdXIgdGhhdC4gQWxzbywgbWFrZSB0aGUgZHVtbXkKICAgIHdyaXRlIGV4cGxpY2l0LgoKICAgIGFsc28gZml4IHRoZSBjb21tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDNlMmRiYjE4ZTg1OGUyZjdhNmFhYTQzN2YyOTBmMzY5MGQwMmQ1MQpBdXRob3I6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDE4OjEyOjIwIDIwMDggLTA1MDAKCiAgICBSZW1vdmUgdW53YW50ZWQgJzsnIGF0IGVuZCBvZiBkZWZpbmUuCgogICAgQ3VycmVudGx5IHRoaXMgaXMgbm90IGNyZWF0aW5nIGFueSBwcm9ibGVtLiBCdXQgaXQgd2lsbCByZXN1bHQKICAgIGluIGNvbXBpbGF0aW9uIGVycm9yIHdoZW4gdXNlZCBhcyBiZWxvdy4KCiAgICBwcmludGYoIkNGR19TRFJBTV9DRkcyIC0gJTA4eFxuIiwgQ0ZHX1NEUkFNX0NGRzIpOwoKICAgIFNpZ25lZC1vZmYtYnk6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KCiAgICBjb250aW51YXRpb24gb2YgdGhlIHRoZW1lIGJhc2VkIG9uIGdpdCBncmVwICJeI2RlZmluZSBDRkdfLio7JCIgaW5jbHVkZS8KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyOTM0YTU2NjUwZTlhNmM1NDQzMmY5Y2U2ZGMzNjc1Nzk2NzM4NWUKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJTW9uIE9jdCA2IDEwOjUzOjU5IDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogQWRkIG1haW50YWluZXIgaW5mb3JtYXRpb24gZm9yIFNGRlNEUiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCAxMmM2NjcwZjg3M2VkNjMyYzI2NGE2ZjNlOGJmMTI5N2Q1YzNkZGJjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVNhdCBPY3QgNCAxOToyNjoxNiAyMDA4ICswMjAwCgogICAgYXBpOiBmaXggdHlwZSBtaXNtYXRjaAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSB0eXBlIG1pc21hdGNoIGFuZCB0aHVzIHJlbW92ZXMgYSBjb21waWxlcgogICAgd2FybmluZyB3aGVuIGNvbXBpbGluZyB3aXRoIENPTkZJR19BUEkgb24gcG93ZXJwYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA5YmMyZTRlZWUzYmNiOGU2Mzg0N2Q3YTczM2UwYzYwNzgwN2Q2MTQxCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIE9jdCAxIDEyOjI1OjA0IDIwMDggLTA1MDAKCiAgICBjbWRfaTJjOiBGaXggaGVscCBmb3IgQ09ORklHX0kyQ19DTURfVFJFRSAmJiAhQ09ORklHX0kyQ19NVUxUSV9CVVMKCiAgICBPcmlnaW5hbCBjb2RlIGRpc3BsYXllZDoKICAgICA9PiBoZWxwIGkyYwogICAgIGkyYyBpMmMgc3BlZWQgW3NwZWVkXSAtIHNob3cgb3Igc2V0IEkyQyBidXMgc3BlZWQKICAgICBpMmMgbWQgY2hpcCBhZGRyZXNzWy4wLCAuMSwgLjJdIFsjIG9mIG9iamVjdHNdIC0gcmVhZCBmcm9tIEkyQyBkZXZpY2UKICAgICAuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGEwYjFiNjEwZTk4MGUyNTNkNGMyNTE5ZWUxNWJkMDkzN2MzZjhiZTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDE0IDIyOjEzOjQxIDIwMDggKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwZjhjYmMxODI5ZDljN2Q5NjE2ZmQyOWIzNjZhOTlkMDM3ZmFjZGNkCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MTowMSAyMDA4ICswODAwCgogICAgRG8gbm90IGluaXQgU0FUQSB3aGVuIGRpc2FibGVkIG9uIDg1MzZEUy4KCiAgICBTR01JSSBhbmQgU0FUQSBzaGFyZSB0aGUgc2VyZGVzIG9uIE1QQzg1MzYgQ1BVLCBXaGVuIFNBVEEgZGlzYWJsZWQgYW5kIHRoZQogICAgZHJpdmVyIHN0aWxsIHRyeSB0byBhY2Nlc3MgdGhlIFNBVEEgcmVnaXN0ZXJzLCB0aGUgY3B1IHdpbGwgaGFuZ3VwLgogICAgVGhpcyBwYXRjaCB0cnkgdG8gZml4IHRoaXMgYnkgcmVhZGluZyB0aGUgc2VyZGVzIHN0YXR1cyBiZWZvcmUgdGhlIFNBVEEKICAgIGluaXRpYWxpemUuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWRiYzM2Njc0NDk2MDAxMzk2NWZjZTg4NTEwMzViNjE0MWYzYjNhZQpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglGcmkgT2N0IDEwIDEwOjIzOjIyIDIwMDggKzAyMDAKCiAgICBUaGUgUElQRV9JTlRFUlJVUFQgZmxhZyBpcyB1c2VkIHdyb25nCgogICAgQXQgYSBsb3Qgb2YgcGxhY2VzIGluIHRoZSBjb2RlIHRoZSBQSVBFX0lOVEVSUlVQVCBmbGFncyBhbmQgZnJpZW5kcwogICAgYXJlIHVzZWQgd3JvbmcuIFRoZSB3cm9uZyBiaXRzIGFyZSBjb21wYXJlZCB0byB0aGlzIGZsYWcgcmVzdWx0aW5nCiAgICBpbiB3cm9uZyBjb25kaXRpb25zLiBBbHNvIHRoZXJlIGFyZSBtYWNyb3MgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IKICAgIFBJUEVfKiBmbGFncy4KICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZW0gYWxsLCBob3dldmVyLCBJIHdhcyBub3QgYWJsZSB0byB0ZXN0IHRoZQogICAgY2hhbmdlcywgYmVjYXVzZSBJIGRvIG5vdCBoYXZlIGFueSBvZiB0aGVzZSBib2FyZHMuCgogICAgUmV2aWV3IHJlcXVpcmVkIQoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA0ODg2NzIwODQ0NGNiMmE4MmUyYWY5YzMyNDllOTBiN2VkNGExNzUxCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CUZyaSBPY3QgMTAgMTA6MjM6MjEgMjAwOCArMDIwMAoKICAgIGZpeCBVU0IgaW5pdGlhbGlzYXRpb24gcHJvY2VkdXJlCgogICAgVGhlIG1heCBwYWNrZXQgc2l6ZSBpcyBlbmNvZGVkIGFzIDAsMSwyLDMgZm9yIDgsMTYsMzIsNjQgYnl0ZXMuCiAgICBBdCBzb21lIHBsYWNlcyBkaXJlY3RseSA4LDE2LDMyLDY0IHdhcyB1c2VkIGluc3RlYWQgb2YgdGhlIGVuY29kZWQKICAgIHZhbHVlLiBNYWRlIGEgZW51bSBmb3IgdGhlIG9wdGlvbnMgdG8gbWFrZSB0aGlzIG1vcmUgY2xlYXIgYW5kIHRvIGhlbHAKICAgIHByZXZlbnRpbmcgc2ltaWxhciBlcnJvcnMgaW4gdGhlIGZ1dHVyZS4KCiAgICBBZnRlciBmaXhpbmcgdGhpcyBidWcgaXQgYmVjYW1lIGNsZWFyIHRoYXQgYW5vdGhlciBidWcgZXhpc3RlZCB3aGVyZQogICAgdGhlICdwaXBlJyBpcyBhbmQtZWQgd2l0aCBQSVBFXyogZmxhZ3MsIHdoZXJlIGl0IHNob3VsZCBoYXZlIGJlZW4KICAgICd1c2JfcGlwZXR5cGUocGlwZSknLCBvciBldmVuIGJldHRlciB1c2JfcGlwZWludChwaXBlKS4KCiAgICBBbHNvIHJlbW92ZWQgdGhlIHRyaXBsZSAnZ2V0X2RldmljZV9kZXNjcmlwdG9yJyBzZXF1ZW5jZSwgaXQgaGFzIG5vIHVzZSwKICAgIGFuZCBXaW5kb3dzIG5vciBMaW51eCBiZWhhdmVzIHRoYXQgd2F5LgogICAgVGhlcmUgaXMgYWxzbyBhIHBvbGwgZ29pbmcgb24gd2l0aCBhIHRpbWVvdXQgd2hlbiB1c2JfY29udHJvbF9tc2coKSBmYWlscy4KICAgIEhvd2V2ZXIsIHRoZSBwb2xsIGlzIHVzZWxlc3MsIGJlY2F1c2UgdGhlIGZsYWcgd2lsbCBuZXZlciBiZSBzZXQgb24gYSBlcnJvciwKICAgIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29kZSB0aGF0IHJ1bnMgaW4gYSBwYXJhbGxlbCB0aGF0IGNhbiBzZXQgdGhpcyBmbGFnLgogICAgQ2hhbmdlZCB0aGlzIHRvIHNvbWV0aGluZyBtb3JlIGxvZ2ljYWwuCgogICAgVGVzdGVkIG9uIEFUOTFTQU05MjYxZWsgYW5kIGNvbXBhcmVkIHRoZSBmbG93IG9uIHRoZSBVU0IgYnVzIHRvIHdoYXQKICAgIExpbnV4IGlzIGRvaW5nLiBUaGVyZSBpcyBubyBkaWZmZXJlbmNlIGFueW1vcmUgaW4gdGhlIGVhcmx5IGluaXRpYWxpc2F0aW9uCiAgICBzZXF1ZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZWM0ZDhjMWMxZDk0YTc5MGMxNDczYWU4YWFjZTI4MmI4MTdjMzEyMwpBdXRob3I6IE5pa2l0YSBWLiBZb3VzaGNoZW5rbyA8eW91c2hAY3MubXN1LnN1PgpEYXRlOglGcmkgT2N0IDMgMDA6MDM6NTUgMjAwOCArMDQwMAoKICAgIGZzbF9kaXU6IGZpeCBhbGlnbm1lbnQgZXJyb3IgdGhhdCBjYXVzZWQgbWFsbG9jIGNvcnJ1cHRpb24KCiAgICBXaGVuIGFsaWduaW5nIG1hbGxvYygpZWQgc2NyZWVuX2Jhc2UsIGludmFsaWQgb2Zmc2V0IHdhcyBhZGRlZC4KICAgIFRoaXMgbm90IG9ubHkgY2F1c2VkIG1pc2FsaWduZWQgcmVzdWx0ICh3aGljaCBkaWQgbm90IGNhdXNlIGhhcmR3YXJlCiAgICBtaXNiZWhhdmlvdXIpLCBidXQgLSB3b3JzZSAtIGNhdXNlZCBzY3JlZW5fYmFzZSArIHNtZW1fbGVuIHRvCiAgICBiZSBvdXQgb2YgbWFsbG9jKCllZCBzcGFjZSwgd2hpY2ggaW4gdHVybiBjYXVzZWQgYnJlYWthZ2Ugb2YKICAgIGZ1dGhlciBtYWxsb2MoKS9mcmVlKCkgb3BlcmF0aW9uLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgc2NyZWVuX2Jhc2UgYWxpZ25tZW50LgoKICAgIEFsc28gdGhpcyBwYXRjaCBtYWtlcyBtZW1zZXQoKSB0aGF0IGNsZWFucyBmcmFtZWJ1ZmZlciB0byBiZSBleGVjdXRlZAogICAgb24gZmlyc3QgaW5pdGlhbGl6YXRpb24gb2YgZGl1LCBub3Qgb25seSBvbiByZS1pbml0aWFsaXphdGlvbi4gSXQgbG9va3MKICAgIGNvcnJlY3QgdG8gY2xlYW4gdGhlIGZyYW1lYnVmZmVyIGluc3RlYWQgb2YgZGlzcGxheWluZyByYW5kb20gZ2FyYmFnZTsKICAgIEkgYmVsaWV2ZSB0aGF0IHdhcyBkaXNhYmxlZCBvbmx5IGJlY2F1c2UgdGhhdCBtZW1zZXQgY2F1c2VkIGJyZWFrYWdlCiAgICBvZiBtYWxsb2MvZnJlZSBkZXNjcmliZWQgYWJvdmUgLSB3aGljaCBubyBsb25nZXIgaGFwcGVucyB3aXRoIHRoZSBmaXgKICAgIGRlc2NyaWJlZCBhYm92ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtpdGEgVi4gWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+Cgpjb21taXQgM2QwZWEzMTEwZjM0MzFiNmMyYWVlODgyNzg0ZjM5Zjk3YjIwYmNlOQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgU2VwIDI0IDEwOjI5OjM3IDIwMDggKzAyMDAKCiAgICBhcGk6IEZpeCBidWlsZGluZyB3aXRoIENPTkZJR19BUEkKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGJ1aWxkaW5nIHdpdGggQ09ORklHX0FQSSBhbmQgQ09ORklHX1VTQl9TVE9SQUdFLgoKICAgIFVTQl9NQVhfU1RPUl9ERVYgaXMgZGVmaW5lZCBpbiBpbmNsdWRlL3VzYi5oLCBidXQKICAgIG5lZWRlZCBpbiBhcGkvYXBpX3N0b3JhZ2UuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhYmJiOTA2NjZkNWVmMmY1MDBlYmJlZGJiODBmZjYwYWRjNTZiMDQzCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVHVlIFNlcCAyMyAxMjozOTo0MCAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIHVudXNlZCBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFIHJlZmVyZW5jZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDgxZTYxMjAxNGM0MGM5MjJlYzM1NDg4ZDE3YzUwNGQ0ZTkyODZmMDYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgU2VwIDIzIDEyOjM4OjQyIDIwMDggLTA1MDAKCiAgICBSZW1vdmUgQ0ZHX0VFUFJPTV9QQUdFKiBkZXBlbmRlbmNpZXMgZm9yIHRlbXBlcmF0dXJlIHNlbnNvcnMKCiAgICBUaGUgY2hlY2tzIGZvciBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFIGFuZAogICAgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgaW4gdmFyaW91cyB0ZW1wZXJhdHVyZQogICAgc2Vuc29yIGRyaXZlcnMgYXJlIG5vdCBuZWNlc3NhcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGM0Njk4MGY2ZDIxMzVhZGUzNDVkYWRjMWZiMWYxZjRjOGJiZjI1NWEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDc6MDQ6MzggMjAwOCAtMDQwMAoKICAgIGNtZF9zcGk6IHJlbW92ZSBicm9rZW4gc2lnbmVkIGNhc3RpbmcgZm9yIGRpc3BsYXkKCiAgICBTaW5jZSB3ZSdyZSB3b3JraW5nIHdpdGggdW5zaWduZWQgZGF0YSwgeW91IGNhbid0IGFwcGx5IGEgc2lnbmVkIHBvaW50ZXIKICAgIGNhc3QgYW5kIHRoZW4gYXR0ZW1wdCB0byBwcmludCB0aGUgcmVzdWx0LglPdGhlcndpc2UgeW91IGdldCB3cm9uZyBvdXRwdXQKICAgIHdoZW4gdGhlIHNpZ24gYml0IGlzIHNldCBsaWtlICIweEZGIiBpbmNvcnJlY3RseSBleHRlbmRlZCB0byAiMHhGRkZGRkZGRiIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ1ZmQwYjQ5MjEwYzk0MWRlOGExZmNlMzk0N2FjZTkyMjQzYWI1Y2EKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDc6MDU6MjQgMjAwOCAtMDQwMAoKICAgIHN0cmluZ3MgY21kOiBkcm9wIG9sZCBDT05GSUdfQ0ZHX1NUUklOR1MgZGVmaW5lCgogICAgV2UgZG9uJ3QgbmVlZCBDT05GSUdfQ0ZHX1NUUklOR1MgYW55bW9yZSBub3cgdGhhdCB3ZSBoYXZlIHRoZSBkZWZpbmUKICAgIENPTkZJR19DTURfU1RSSU5HUyBhbmQgTWFrZWZpbGUgY29udHJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmVjYjVhZGUzYjM3ZjYyOTgxZjJiMDViNjIxMDA1ODUwMTczYWFhOQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBTZXAgMTkgMTc6MzI6NDkgMjAwOCArMDgwMAoKICAgIEZpeCB0aGUgTkFORCBzaXplIG92ZXJmbG93IGlzc3VlLgoKICAgIFdoZW4gdGhlIHRvdGFsIHNpemUgb2YgYWxsIE5BTkQgZGV2aWNlcyBleGNlZWRzIDQgR2lCLCB0aGUgc2l6ZSAgd2lsbAogICAgb3ZlcmZsb3cuIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoaXMuCgogICAgTm90ZSB0aGF0IHdlIHN0aWxsIGhhdmUgYSBwcm9ibGVtIHdoZW4gYSBzaW5nbGUgTkFORCBkZXZpY2UgaXMgYmlnZ2VyCiAgICB0aGFuIDQgR2lCOiB0aGVuIHRoZSBvdmVyZmxvdyB3b3VsZCBhY3R1YWxseSBoYXBwZW4gZWFybGllciwgaS4gZS4KICAgIHdoZW4gc3RvcmluZyB0aGUgc2l6ZSBpbiBuYW5kX2luZm9bXS5zaXplLCBhcyBuYW5kX2luZm9bXS5zaXplIGlzIGFuCiAgICAidV9pbnQzMl90Ii4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzMGY1NzQ3MTcyNzcyMzhiOTAxNGI4MTM2YzkwZWVhNzcxOTY0OTBmCkF1dGhvcjogTG91aXMgU3UgPGxvdWlzQGFzaXguY29tLnR3PgpEYXRlOglXZWQgSnVsIDkgMTE6MDE6MzcgMjAwOCArMDgwMAoKICAgIEFYODgxODA6IG5ldyBnaWdhYml0IG5ldHdvcmsgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTG91aXMgU3UgPGxvdWlzQGFzaXguY29tLnR3PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjOWQ2YjY5MjUzNDQ3NDBjYTFkYjJmOGE2YmFiNzkyMWZmODIwZGUzCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglUdWUgQXVnIDE5IDE2OjA3OjAzIDIwMDggKzAyMDAKCiAgICBlbmFibGUgMTAvMTAwTSBhdCBWU0M4NjAxIGF0IHRzZWMgZHJpdmVyCgogICAgQ3VycmVudGx5IFZTQzg2MDEgZG9lc24ndCBsaW5rIHdpdGggMTAvMTAwTSBwYXJ0bmVycyBpZiB0aGUKICAgIEVFUFJPTS9TdHJhcHBpbmcgaXMgbm90IHNldCB1cC4KICAgIFNldHRpbmcgdGhlIGF1dG8tbmVnIHJlZ2lzdGVyIGZpeGVzIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA3MDJjODViMGU4NzZkNTg3YzExYWNkYmI1NTczOGVlNTJhY2Q1NGY0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgU2VwIDMwIDE1OjAyOjUzIDIwMDggKzA5MDAKCiAgICBuZXQ6IG5lMjAwMDogRGl2aWRlZCBhIGZ1bmN0aW9uIG9mIE5FMjAwMCBkcml2ZXIKCiAgICBnZXRfcHJvbSBmdW5jdGlvbiB3YXMgdXNlZCBfX2F0dHJpdXRlX18gLCBidXQgaXQgaXMgbm90IGVuYWJsZS4KICAgIGF4ODg3OTYubyBkb2VzIG5vdCBkbyBsaW5rIGJlc2lkZXMgbmUyMDAwLm8uIFdoZW4gbGQgaXMgY2FycmllZAogICAgb3V0LCBnZXRfcHJvbSBmdW5jdGlvbiBvZiBheDg4Nzk2LmMgaXMgaWdub3JlZC4KICAgIFRoaXMgcHJvYmxlbSBpcyBhIHRoaW5nIGJ5IHNwZWNpZmljYXRpb25zIG9mIGxkLgogICAgSSBjaGVja2VkIGFuZCB0ZXN0IHRoaXMgcGF0Y2ggb24gU3VwZXJIIGFuZCBNSVBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDVjN2U5MDcwZmU0ZDc1MWUwMjlmZDk1MjRiZmJiYzkzY2JiMTM5MwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE9jdCAxNCAxMToxMDo1OSAyMDA4ICswOTAwCgogICAgc2g6IHJzazcyMDM6IEFkZCBzbWM5MTF4IGRyaXZlciBzdXBwb3J0IHRvIGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGNhZTZmOTA5YmFmODYzNTdiM2MwYmQwMWFjZmM0MTQzNDhjNGQxNzUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBPY3QgOSAxMzo1NDozMyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCBjYW5ub3QgZXhlY3V0ZSBhIHN0YW5kLWFsb25lIGFwcGxpY2F0aW9uCgogICAgQWRkcmVzcyBjYWxjdWxhdGVkIGluIEVYUE9SVF9GVU5DIGluIFN1cGVySCB3YXMgd3JvbmcsIEkgcmV2aXNlZCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmRmMGVmZDVjODZjYTE2ODlkZWViMjczOGI0NmI3ZDgzY2UyMjhlZgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgOCAyMzozODowMCAyMDA4IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGRvIG5vdCBzY2FuIGJ1cyB3aGVuIGNvbmZpZ3VyZWQgYXMgYW4gZW5kLXBvaW50CgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmYwOTliYmFjMWJhNWRmYjQ2ZWU3YWQyOWRjNTM3MTNmMDUwMWJhNQpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgU2VwIDE2IDE3OjA3OjUzIDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIHJlZHVuZGFudCBzZXR0aW5nIG9mIEdEX0ZMR19SRUxPQyBmb3Igc2Zmc2RyIGJvYXJkLgoKICAgIFRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB0aGUgR0RfRkxHX1JFTE9DIGZsYWcgaXMgc2V0IGZvcgogICAgYWxsIEFSTSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgZDk3N2E1NzM1NjY1N2JhMjQxMjU2MjMxZWZjYTMyODI4YTU4MjJmOQpBdXRob3I6IEx1aWdpICdDb21pbycgTWFudGVsbGluaSA8bHVpZ2kubWFudGVsbGluaUBpZGYtaGl0LmNvbT4KRGF0ZToJU2F0IFNlcCAxMyAxMDowNDozMiAyMDA4ICswMjAwCgogICAgRml4IGx6bWEgdW5jb21wcmVzcyBjYWxsIChpbWFnZV9zdGFydCB3cm9uZ2x5IHVzZWQgaW5zdGVhZCBpbWFnZV9sZW4pCgogICAgU2lnbmVkLW9mZi1ieTogTHVpZ2kgJ0NvbWlvJyBNYW50ZWxsaW5pIDxsdWlnaS5tYW50ZWxsaW5pQGlkZi1oaXQuY29tPgoKY29tbWl0IDM5MjQzODQwNjA0MTQxNWZlNjRhYjg3NDhlYzVhYjVhZDAxZDFjZjcKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxNDowOToxNSAyMDA4IC0wNzAwCgogICAgbXBjODZ4eDogdXNlIHI0IGluc3RlYWQgb2YgcjIgaW4gbG9ja19yYW1faW5fY2FjaGUgYW5kIHVubG9ja19yYW1faW5fY2FjaGUKCiAgICBUaGlzIGlzIG5lZWRlZCBpbiB1bmxvY2tfcmFtX2luX2NhY2hlKCkgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbSBDIGFuZAogICAgd2lsbCBjb3JydXB0IHRoZSBzbWFsbCBkYXRhIGFyZWEgYW5jaG9yIHRoYXQgaXMga2VwdCBpbiBSMi4KCiAgICBsb2NrX3JhbV9pbl9jYWNoZSgpIGlzIG1vZGlmaWVkIHNpbWlsYXJseSBhcyBnb29kIGNvZGluZyBwcmFjdGljZSwgYnV0CiAgICBpcyBub3QgY2FsbGVkIGZyb20gQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YzdjYmNkMzRkMGVlNTY2ODc1YTRmZDBmMmEzZTVhNjJiYmE5MjFjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAxOSAxNTowNTozNCAyMDA4IC0wNTAwCgogICAgODZ4eDogcmVtb3ZlIHJlZHVkYW50IGNvZGUgd2l0aCBsaWJfcHBjL2ludGVycnVwdHMuYwoKICAgIEZvciBzb21lIHJlYXNvbiB3ZSBkdXBsaWNhdGVkIHRoZSBtYWpvcml0eSBvZiBjb2RlIGluIGxpYl9wcGMvaW50ZXJydXB0cy5jCiAgICBOb3Qga25vdyBob3cgdGhhdCBoYXBwZW5lZCwgYnV0IHRoZXJlIGlzIG5vIGdvb2QgcmVhc29uIGZvciBpdC4KCiAgICBVc2UgdGhlIGludGVycnVwdF9pbml0X2NwdSgpIGFuZCB0aW1lcl9pbnRlcnJ1cHRfY3B1KCkgc2luY2UgaXRzIHdoeQogICAgdGhleSBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkMDFmNjZkMjM1MTE4NTE1YjUwODZiODhmODI0OThiYzA2OTVkNmEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDkgMDE6MjY6MzYgMjAwOCAtMDUwMAoKICAgIENGSTogY2ZpX2ZsYXNoIHdyaXRlIGZpeCBmb3IgQU1EIGxlZ2FjeQoKICAgIFRoZSBmbGFzaF91bmxvY2tfc2VxIHJlcXVpcmVzIGEgc2VjdG9yIGZvciBBTURfTEVHQUNZLgogICAgRml4IGEgcmV0Y29kZSBjaGVjayB0eXBlby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU0MmIzODVhNjIwYTE3ODM0NTRhMDA0MjQ5MzBlNTE4OTVmNDUwNzMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCA3IDEzOjEzOjEwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBVU0IgMi4wIHBoeSByZXNldCBzZXF1ZW5jZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgVVNCIDIuMCBjb21tdW5pY2F0aW9uIGlzc3VlcyBvbiBzb21lIERVNDQwIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjhjMWNlMTExMTRjMjI2MGRlZGI1NTQ3MjgxOTQ1ZjdkYjhmYTVjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBPY3QgNyAxMzoxMzowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgc3RyYXBwaW5nIG1vZGUgZm9yIDY2N01IeiBDUFUgZnJlcXVlbmN5IG9uIERVNDQwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmExMzNkNmEwMGIxZmM3YjkyNTdjZDU5MjVkOGNiNjdmNzVlY2RhMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgT2N0IDcgMTM6MTM6MDggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IERVNDQwIEdQSU8gY29uZmlndXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1ZGQwMjVjNzBmY2M0Mzg5MzE3ZGIyZjJhOWQxNDc5NTE3MjEzN2QKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCA3IDEzOjEzOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBEVTQ0MCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmM2JmOTI3MzkzOWZmZTFhNjBhMzJhMmVlZjkwOTA5N2YxNWRmNTZiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE9jdCA4IDE1OjM2OjM5IDIwMDggLTA1MDAKCiAgICBNUEM4NTcyRFM6IEZpeCBjb21waWxlIHdhcm5pbmdzCgogICAgQ29tbWl0IDQ0NWE3YjM4MzA4ZWIwNWI0MWRlNzQxNjViMjA4NTVkYjU4YzdlZTUgaW50cm9kdWNlZCB0aGUgZm9sbG93aW5nCiAgICBjb21waWxlIHdhcm5pbmdzOgoKICAgIGNtZF9pMmMuYzoxMTI6IHdhcm5pbmc6IG1pc3NpbmcgYnJhY2VzIGFyb3VuZCBpbml0aWFsaXplcgogICAgY21kX2kyYy5jOjExMjogd2FybmluZzogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yICdpMmNfbm9fcHJvYmVzWzBdJykKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGRmZmQyNDQ2ZmIwNDFmMzhlZjAzNGIwZmNmNDFlNTFlNWU0ODkxNTkKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVHVlIFNlcCAzMCAxMDo1NTo1NyAyMDA4ICswMjAwCgogICAgODV4eDogVXNpbmcgcHJvcGVyIEkyQyBzb3VyY2UgY2xvY2sgZGl2aWRlciBmb3IgTVBDODU0NAoKICAgIE1lYXN1cmVtZW50cyB3aXRoIG91ciBNUEM4NTQ0IGJvYXJkIHNob3dlZCB0aGF0IHRoZSBJMkMgYnVzIGZyZXF1ZW5jeQogICAgaXMgd3JvbmcgYnkgYSBmYWN0b3Igb2YgMS41LiBPYnZpb3VzbHksIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUKICAgIE1QQzg1eHhfUE9SREVWU1IyX1NFQ19DRkcgYml0IG9mIHRoZSBjZmdfc2VjX2ZyZXEgcmVnaXN0ZXIgaXMgbm90CiAgICBjb3JyZWN0LiBUaGVyZSBzZWVtcyB0byBiZSBhbiBlcnJvciBpbiB0aGUgODU0NCBSTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBlNDZjN2JmYjhiYzNjMzA0Y2VkZDIwZjdhMzY1ZDZlNzhkN2VhZjE3CkF1dGhvcjogUmFmYWwgQ3p1YmFrIDxyY3pAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDggMTM6NDE6MzAgMjAwOCArMDIwMAoKICAgIEZTTDogRml4IGdldF9jcHVfYm9hcmRfcmV2aXNpb24oKSByZXR1cm4gdmFsdWUuCgogICAgZ2V0X2NwdV9ib2FyZF9yZXZpc2lvbigpIHJldHVybmVkIGJvYXJkIHJldmlzaW9uIGJhc2VkIG9uIGluZm9ybWF0aW9uIHN0b3JlZAogICAgaW4gZ2xvYmFsIHN0YXRpYyBzdHJ1Y3QgZWVwcm9tLiBJdCBzaG91bGQgaW5zdGVhZCB1c2Ugb25lIGZyb20gbG9jYWwgc3RydWN0CiAgICBib2FyZF9lZXByb20sIHRvIHdoaWNoIHRoZSBkYXRhIGlzIGFjdHVhbGx5IHJlYWQgZnJvbSBFRVBST00uIFRoZSBidWcgbGVkIHRvCiAgICBzeXN0ZW0gaGFuZyBhZnRlciBwcmludGluZyBMMSBjYWNoZSBpbmZvcm1hdGlvbiBvbiBVLUJvb3Qgc3RhcnR1cC4gVGhlIHByb2JsZW0KICAgIHdhcyBvYnNlcnZlZCBvbiBNUEM4NTU1Q0RTIHN5c3RlbSBhbmQgcG9zc2libHkgYWZmZWN0cyBvdGhlciBGcmVlc2NhbGUgTVBDODV4eAogICAgYm9hcmRzIHVzaW5nIENGR19JMkNfRUVQUk9NX0NDSUQuCgogICAgVGhlIGNoYW5nZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdGVzdGVkIG9uIE1QQzg1NTVDRFMgc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEN6dWJhayA8cmN6QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NDdmMzE2Y2NhNDg0ZWQ2MjdhOTdkZDMzOTFmZWJhYmNlMzg0MTg2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIFNlcCAzMCAyMDowODo0OSAyMDA4ICswMjAwCgogICAgdXBkYXRlIHVJbWFnZSBGSVQgbXVsdGkgZG9jdW1lbnRhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzdhMDM1NWY2MGI4MDFmMjMyY2UwYTViZmJlOTUzMzFmYTNiNmJjMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgMzAgMjA6MDg6MzYgMjAwOCArMDIwMAoKICAgIG1vdmUgUkVBRE1FLmlteDMxIHRvIGRvYy8gYW5kIG1lcmdlIHdpdGggUkVBRE1FLm14MzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFlZDdhN2YwZjU3MWIxM2Q0NjUzMGY4ZjhiOWFmZjM5NTdmMTVhOTYKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMjUgMjA6NTQ6MzcgMjAwOCArMDIwMAoKICAgIGkuTVgzMTogc3dpdGNoIHRvIENGR19IWj0xMDAwCgogICAgU3dpdGNoIHRvIHRoZSBzdGFuZGFyZCBDRkdfSFo9MTAwMCB2YWx1ZSwgd2hpbGUgYXQgaXQsIG1pbm9yIHdoaXRlLXNwYWNlCiAgICBjbGVhbnVwLCByZW1vdmUgQ0ZHX0NMS1NfSU5fSFogZnJvbSBjb25maWctaGVhZGVycy4gVGVzdGVkIG9uIG14MzFhZHMsCiAgICBwcm92aWRlcyAyJSBvciAwLjQlIHByZWNpc2lvbiBkZXBlbmRpbmcgb24gdGhlCiAgICBDT05GSUdfTVgzMV9USU1FUl9ISUdIX1BSRUNJU0lPTiBmbGFnLiBNZWFzdXJlZCB3aXRoIHN0b3Atd2F0Y2ggb24gMTAwcwogICAgYm9vdC1kZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZjQxYjE0NGMxMTM0MWI1NzFlYWI3ZGNlZjZjNGI4ZTAzYzkyZDJiMgpBdXRob3I6IGdudXNlcmNuIDxnbnVzZXJjbkBnbWFpbC5jb20+CkRhdGU6CVdlZCBPY3QgOCAxODo1ODo1OCAyMDA4ICswMjAwCgogICAgRml4IGJ1ZzogaW4gYXJjaC1hcm0sIGVudl9nZXRfY2hhciBkb3NlIG5vdCB3b3JrIGZpbmUKCiAgICBkdWUgdG8gdGhlIGFybSBpbXBsZW1lbnRhdGlvbiB3aGljaCBzdXBwb3NlZCB0aGF0IFUtQm9vdCBpcyBpbiBSQU0KICAgIHdoZW4gd2UganVtcCB0byBzdGFydF9hcm1ib290CgogICAgU2lnbmVkLW9mZi1ieTogZ251c2VyY24gPGdudXNlcmNuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjhhMDBkZWE4NDFkNWQ3NWRlMWY4ZTgxMDdlOTBlZTFiZWVkZGY1ZgpBdXRob3I6IEFkYW0gR3JhaGFtIDxhZ3JhaGFtQGFtY2MuY29tPgpEYXRlOglNb24gT2N0IDYgMTA6MTY6MTMgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogUmVzZXQgYW5kIHJlbG9jayBtZW1vcnkgRExMIGFmdGVyIFNEUkFNX0NMS1RSIGNoYW5nZQoKICAgIEFmdGVyIGNoYW5naW5nIFNEUkFNX0NMS1RSIHBoYXNlIHZhbHVlIHJlcnVuIHRoZSBtZW1vcnkgcHJlbG9hZAogICAgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKElOSVRQTFIpIHRvIHJlc2V0IGFuZCByZWxvY2sgdGhlIG1lbW9yeQogICAgRExMLiBDaGFuZ2luZyB0aGUgU0RSQU1fQ0xLVFIgbWVtb3J5IGNsb2NrIHBoYXNlIGNvYXJzZSB0aW1pbmcKICAgIGFkanVzdG1lbnQgZWZmZWN0cyB0aGUgcGhhc2UgcmVsYXRpb25zaGlwIG9mIHRoZSBpbnRlcm5hbCwgdG8gdGhlCiAgICBQUEMgY2hpcCwgYW5kIGV4dGVybmFsLCB0byB0aGUgUFBDIGNoaXAsIHZlcnNpb25zIG9mIE1FTUNMS19PVVQuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1Mjk3MjQ2YmJhYTk5NDNjMGRhMWVjMmU3MTdiNzJlNGFiNmI4MzBlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzIDExOjQ4OjAzIDIwMDggLTA0MDAKCiAgICBSZW1vdmUgcmVkdW5kYW50ICNkZWZpbmUgZm9yIE1QQzg1MzZEUwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQ1YTdiMzgzMDhlYjA1YjQxZGU3NDE2NWIyMDg1NWRiNThjN2VlNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMyAxMTo0NzozMCAyMDA4IC0wNDAwCgogICAgQWRkIElEIEVFUFJPTSBzdXBwb3J0IGZvciBNUEM4NTcyRFMKCiAgICBUaGUgSUQgRUVQUk9NIG9uIE1QQzg1NzJEUyBib2FyZCBsb2NhdGVzIG9uIEkyQyBidXMgMS4gSXRzIHRoZSBzdG9yYWdlIGZvcgogICAgc3lzdGVtIGluZm9ybWF0aW9uIGxpa2UgbWFjIGFkZHJlc3NlcyBldGMuIFRoaXMgcGF0Y2ggZW5hYmxlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmM2JhMzE3YTVjNWYzYTdhYWJmNTgwZmRkYzIxMWY0YmI1YTQ1NDAKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTE6NDY6NTkgMjAwOCAtMDQwMAoKICAgIE1pbm9yIGZpeGVzIGZvciBJMkMgYWRkcmVzcyBvbiBNUEM4NTcyRFMKCiAgICBNUEM4NTcyRFMgaGFzIHR3byBpMmMgYnVzZXMuIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIEREUiBTUERfRUVQUk9NIHRvIGkyYyBidXMgMQogICAgYWNjb3JkaW5nIHRvIHRoZSBib2FyZCBzcGVjLCBhbmQgYWRkcyB0aGUgMm5kIGkyYyBidXMgb2Zmc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzAzOTExMTFjMzNjMjJmYWJlZGRmOGY0Y2E4MDFlYzc2NDViNGY1YwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBTZXAgMjcgMTQ6NDA6NTcgMjAwOCArMDgwMAoKICAgIEZpeCB0aGUgaW5jb3JyZWN0IEREUiBjbGsgZnJlcSByZXBvcnRpbmcgb24gODUzNkRTCgogICAgT24gODUzNkRTIGJvYXJkLCBXaGVuIHRoZSBERFIgY2xrIGlzIHNldCBhc3luYyBtb2RlKFNXM1s2OjhdICE9IDExMSksCiAgICBUaGUgZGlzcGxheSBpcyBzdGlsbCBzeW5jIG1vZGUgRERSIGZyZXEuIFRoaXMgcGF0Y2ggdHJ5IHRvIGZpeAogICAgdGhpcy4gVGhlIGRpc3BsYXkgRERSIGZyZXEgaXMgbm93IHRoZSBhY3R1YWwgZnJlcSBpbiBib3RoCiAgICBzeW5jIGFuZCBhc3luYyBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmFjNmExZDFmYTFjZDgwYWE1Nzg4MWZhOWMyMTUyYjg1M2NkMGVkNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgNyAxMDoyODo0NiAyMDA4IC0wNTAwCgogICAgODV4eDogUmVtb3ZlIHNldHRpbmcgb2YgKmNhY2hlLWxpbmUtc2l6ZSBpbiBkZXZpY2UgdHJlZXMKCiAgICBlUEFQUiBzYXlzIGlmIHRoZSAqY2FjaGUtYmxvY2stc2l6ZSBpcyB0aGUgc2FtZSBhcyAqY2FjaGUtbGluZS1zaXplCiAgICB0aGFuIHdlIGRvbid0IG5lZWQgdGhlICpjYWNoZS1saW5lLXNpemUgcHJvcGVydHkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhNjlhNDIzMzhkZDI1NDA4ZjlmZDUzOTBhODNiYzUwMTc0OWM3ZTFiCkF1dGhvcjogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+CkRhdGU6CUZyaSBPY3QgMyAxMTo0ODo1NyAyMDA4ICswMTAwCgogICAgTUlNQzIwMCBib2FyZCBub3cgdXNlcyBDT05GSUdfRElTQUJMRV9DT05TT0xFCgogICAgQ2hhbmdlZCBNSU1DMjAwIGJvYXJkIHNldHVwIGFuZCBjb25maWcgdG8gdXNlIENPTkZJR19ESVNBQkxFX0NPTlNPTEUuCiAgICBBbHNvIGZpeGVkIGRlZmF1bHQgdUltYWdlIGxvY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGNkM2NiMGQ5MjY5ZDE1NTI3NmIwMDIwN2UzODE2YTkzNDdmZDFjOTIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgT2N0IDQgMDc6NTY6MDYgMjAwOCAtMDQwMAoKICAgIGxpYmZkdDogRml4IGVycm9yIGluIGRvY3VtZW50YXRpb24gZm9yIGZkdF9nZXRfYWxpYXNfbmFtZWxlbigpCgogICAgT29wcywgc2NyZXdlZCB1cCB0aGUgZnVuY3Rpb24gbmFtZSBpbiB0aGUgZG9jdW1lbnRpbmcgY29tbWVudCBmb3IgdGhpcwogICAgZnVuY3Rpb24uICBUcml2aWFsIGNvcnJlY3Rpb24gaW4gdGhpcyBwYXRjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDlhNmNmNzNhODhkZGFiMmUxYWMzOTA4OGYyODA2MTc3OTgyY2M2MmMKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJV2VkIEF1ZyAyMCAxNjo1NToxNCAyMDA4ICsxMDAwCgogICAgbGliZmR0OiBBZGQgZnVuY3Rpb24gdG8gZXhwbGljaXRseSBleHBhbmQgYWxpYXNlcwoKICAgIEt1bWFyIGhhcyBhbHJlYWR5IGFkZGVkIGFsaWFzIGV4cGFuc2lvbiB0byBmZHRfcGF0aF9vZmZzZXQoKS4KICAgIEhvd2V2ZXIsIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyBpdCBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIHVzZXIgb2YKICAgIGxpYmZkdCB0byBleHBsaWNpdGx5IGdldCB0aGUgc3RyaW5nIGV4cGFuc2lvbiBvZiBhbiBhbGlhcy4JVGhpcyBwYXRjaAogICAgYWRkcyBhIGZ1bmN0aW9uIHRvIGRvIHRoaXMsIGZkdF9nZXRfYWxpYXMoKSwgYW5kIHVzZXMgaXQgdG8gaW1wbGVtZW50CiAgICBmZHRfcGF0aF9vZmZzZXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCAyMjE1OTg3ZTEwMGQyYTg0MWFlNmQ0OGE3Y2M5YmI4M2ZjZjIyNzM3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgT2N0IDIgMDE6NTU6MzggMjAwOCAtMDQwMAoKICAgIGNmaV9mbGFzaDogZG8gbm90IHJlc2V0IGZsYXNoIHdoZW4gcHJvYmUgZmFpbHMKCiAgICBUaGUgQ0ZJIGZsYXNoIGRyaXZlciBzdGFydHMgYXQgZmxhc2hfaW5pdCgpIHdoaWNoIGNhbGxzIGRvd24gaW50bwogICAgZmxhc2hfZ2V0X3NpemUoKS4gIFRoaXMgc3RhcnRzIGJ5IGNhbGxpbmcgZmxhc2hfZGV0ZWN0X2NmaSgpLiAgSWYgc2FpZAogICAgZnVuY3Rpb24gZmFpbHMsIGZsYXNoX2dldF9zaXplKCkgZmluaXNoZXMgYnkgYXR0ZW1wdGluZyB0byByZXNldCB0aGUKICAgIGZsYXNoLiAgVW5mb3J0dW5hdGVseSwgaXQgZG9lcyB0aGlzIHdpdGggYW4gaW5mby0+cG9ydHdpZHRoIHNldCB0byAweDEwCiAgICB3aGljaCBmaWx0ZXJzIGRvd24gaW50byBmbGFzaF9tYWtlX2NtZCgpIGFuZCB0aGF0IGhhcHBpbHkgc21hc2hlcyB0aGUKICAgIHN0YWNrIGJ5IHN0aWNraW5nIGluZm8tPnBvcnR3aWR0aCBieXRlcyBpbnRvIGEgY2Zpd29yZF90IHZhcmlhYmxlIHRoYXQKICAgIGxpdmVzIG9uIHRoZSBzdGFjay4gIE9uIGEgNjRiaXQgc3lzdGVtIHlvdSBwcm9iYWJseSB3b24ndCBub3RpY2UsIGJ1dAogICAga2lsbGluZyB0aGUgbGFzdCA4IGJ5dGVzIG9uIGEgMzJiaXQgc3lzdGVtIHVzdWFsbHkgbGVhZHMgdG8gYSBjb3JydXB0CiAgICByZXR1cm4gYWRkcmVzcy4gIFdoaWNoIGlzIHdoYXQgaGFwcGVucyBvbiBhIEJsYWNrZmluIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2UzODU3NzIwOGU0MjU2OTU2YmMzM2JiOGJjZDBhNmI2ZmFiNTVjMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCAyNiAxNzowMzoyNiAyMDA4ICswMjAwCgogICAgZmR0OiBPdmVyd3JpdGUgL2Nob3NlbiBub2RlIGluIGJvb3RtIGlmIGl0IGFscmVhZHkgZXhpc3RzIGluIHRoZSBkdGIKCiAgICBTZXQgZm9yY2UgcGFyYW1ldGVyIGluIGZkdF9jaG9zZW4oKSBjYWxsIGluIGRvX2Jvb3RtX2xpbnV4KCkgY2FsbC4KICAgIFdpdGhvdXQgdGhpcywgdGhlIGNob3NlbiBub2RlIGlzIG5vdCBvdmVyd3JpdHRlbiBpZiBpdCBhbHJlYWR5CiAgICBleGlzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc0MWE2ZDAxMGQwOWI1YmFmY2E4ZTRjZGZiNmIyZjhhMmMwNzk5NGQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDI1IDExOjAyOjE3IDIwMDggLTA1MDAKCiAgICBGaXggYW4gb3ZlcmZsb3cgY2FzZSBpbiBmZHRfb2Zmc2V0X3B0cigpIGRldGVjdGVkIGJ5IEdDQyA0LjMuCgogICAgVXNpbmcgR2NjIDQuMyBkZXRlY3RlZCB0aGlzIHByb2JsZW06CgoJLi4vZHRjL2xpYmZkdC9mZHQuYzogSW4gZnVuY3Rpb24gJ2ZkdF9uZXh0X3RhZyc6CgkuLi9kdGMvbGliZmR0L2ZkdC5jOjgyOiBlcnJvcjogYXNzdW1pbmcgc2lnbmVkIG92ZXJmbG93IGRvZXMgbm90CglvY2N1ciB3aGVuIGFzc3VtaW5nIHRoYXQgKFggKyBjKSA8IFggaXMgYWx3YXlzIGZhbHNlCgogICAgVG8gZml4IHRoZSBwcm9ibGVtLCB0cmVhdCB0aGUgb2Zmc2V0IGFzIGFuIHVuc2lnbmVkIGludC4KCiAgICBUaGUgcHJvYmxlbSByZXBvcnQgYW5kIHByb3Bvc2VkIGZpeCB3ZXJlIHByb3ZpZGVkCiAgICBieSBTdGV2ZSBQYXBhY2hhcmFsYW1ib3VzIDxzdGV2ZXBAZnJlZXNjYWxlLmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYmRiYzdjYjNhYmVmZGE1YmQ5OThlZGJjZjA1MDhmZTYyNTYzMjdkCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CUZyaSBBdWcgMjkgMTQ6MTk6MTMgMjAwOCArMTAwMAoKICAgIGxpYmZkdDogRml4IGJ1Z3MgaW4gZmR0X2dldF9wYXRoKCkKCiAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBmZHRfZ2V0X3BhdGgoKSBoYXMgYSBjb3VwbGUgb2YgYnVncywKICAgIGZpeGVkIGJ5IHRoaXMgcGF0Y2guCgogICAgRmlyc3QsIGNvbnRyYXJ5IHRvIGl0cyBkb2N1bWVudGF0aW9uLCBvbiBzdWNjZXNzIGl0IHJldHVybnMgdGhlIGxlbmd0aAogICAgb2YgdGhlIG5vZGUncyBwYXRoLCByYXRoZXIgdGhhbiAwLglUaGUgdGVzdGNhc2UgaXMgY29ycmVzcG9uZGluZ2x5CiAgICB3cm9uZywgYW5kIHRoZSBwYXRjaCBmaXhlcyB0aGlzIGFzIHdlbGwuCgogICAgU2Vjb25kLCBpbiBzb21lIGNpcmN1bXN0YW5jZXMsIGl0IHdpbGwgcmV0dXJuIC1GRFRfRVJSX0JBRE9GRlNFVAogICAgaW5zdGVhZCBvZiAtRkRUX0VSUl9OT1NQQUNFIHdoZW4gZ2l2ZW4gaW5zdWZmaWNpZW50IGJ1ZmZlciBzcGFjZS4KICAgIFNwZWNpZmljYWxseSB0aGlzIGhhcHBlbnMgd2hlbiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgc3BhY2UgZXZlbiB0bwogICAgaG9sZCB0aGUgcGF0aCdzIHNlY29uZCBsYXN0IGNvbXBvbmVudC4gIFRoaXMgYmVoYXZpb3VyIGlzIGNvcnJlY3RlZCwKICAgIGFuZCB0aGUgdGVzdGNhc2UgdXBkYXRlZCB0byBjaGVjayBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCAzM2FmM2U2NjU2ZTg0NjYwZDM5N2I1ZGQ5NWFiYWIyZGNjYzM2ZjgzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxIDEyOjM0OjU4IDIwMDggKzAyMDAKCiAgICBUUU01MjAwOiBlbmFibGUgc3VwcG9ydCBmb3IgQVRBUEkgZGV2aWNlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDEzZmYyMzU4ZmY4YzM4NGY1MmVhZjQ2ZjVkNjAyNThhY2Y5NmVhNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgMTUgMDU6NDg6MjUgMjAwOCArMDIwMAoKICAgIFJldmVydCAiQVJNOiBzZXQgR0RfRkxHX1JFTE9DIGZvciBib2FyZHMgc2tpcHBpbmcgcmVsb2NhdGlvbiB0byBSQU0iCgogICAgd2UgbmVlZCB0aGlzIGR1ZSB0byB0aGUgYXJtIGltcGxlbWVudGF0aW9uIHdoaWNoIHN1cHBvc2VkIHRoYXQgVS1Cb290CiAgICBpcyBpbiBSQU0gd2hlbiB3ZSBqdW1wIHRvIHN0YXJ0X2FybWJvb3QKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGY5NmI0NGNlZjg5N2JkMzcyYmViODZkZGUxYjMzNjM3YzExOWQ4NGQuCiAgICBpbiBvcmRlciB0byBkbyBpdCBmb3IgYWxsIGFybSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2ZkMGJlYTJlNGE3OGVhYjdlNjY5MzE0MDk0MGY5ZjlhMDAwOWJjMgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMjQgMDg6NDY6MjUgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGRvbid0IGRpc2FibGUgYXV0b2Jvb3QKCiAgICBib290ZGVsYXkgc2V0IHRvIC0xICdwZXJtYW5lbnRseScgZGlzYWJsZXMgYXV0b2Jvb3RpbmcsIGV2ZW4gaWYKICAgIGJvb3RjbWQgaXMgc3BlY2lmaWVkLiAgQ2hhbmdlIHRvIGEgcG9zaXRpdmUgdmFsdWUgdG8gYWxsb3cKICAgIGF1dG9ib290aW5nIHdoZW4gYSBib290Y21kIGlzIHNldC4KCiAgICBSZXBvcnRlZC1ieTogQ29yYXkgVGF0ZSA8Q29yYXkuVGF0ZUBmcmVlc2NhbGUuY29tPgogICAgQ2M6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZmIyOWM1MjBjNDJiN2JmZWYzM2VhM2ZkMTUyN2ViYTY0MDk5MTY0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgU2VwIDI0IDEwOjQyOjE1IDIwMDggKzA5MDAKCiAgICBtcGM4M3h4OiBGaXggdHlwbyBpbiBpbmNsdWRlL21wYzgzeHguaAoKICAgIEZpeGVkIHR5cG8gZnJvbSBDT05JRkdfTVBDODM3WCB0byBDT05GSUdfTVBDODM3WAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTYyYzQxYzAzMTc5NzI3YTFkMTQyNjJmNzAzYzlhOGJjNDAyMzFmYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMjMgMDk6Mzg6NDkgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGFkZCBoL3cgZmxhc2ggcHJvdGVjdGlvbiB0byBib2FyZCBjb25maWdzCgogICAgdGhlIG9wZXJhdGluZyBzeXN0ZW0gbWF5IGxlYXZlIGZsYXNoIGluIGEgaC93IGxvY2tlZCBzdGF0ZSBhZnRlciB3cml0aW5nLgogICAgVGhpcyBhbGxvd3MgdS1ib290IHRvIGNvbnRpbnVlIHRvIHdyaXRlIGZsYXNoIGJ5IGVuYWJsaW5nIGgvdyB1bmxvY2tpbmcKICAgIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMjYxNTRjOWE2OTI1ODZiNjZlYjZkMWY4ZTFiNjdjNzVlNDBlYTcwCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBTZXAgMTEgMjE6MzU6MzYgMjAwOCArMDQwMAoKICAgIG1wYzgzeHg6IHNwZF9zZHJhbTogZml4IGRkciBzZHJhbSBiYXNlIGFkZHJlc3MgYXNzaWdubWVudCBidWcKCiAgICBUaGUgc3BkX2RyYW0gY29kZSBzaGlmdHMgdGhlIGJhc2UgYWRkcmVzcywgdGhlbiBtYXNrcyAyMCBiaXRzLCBidXQKICAgIGZvcmdldHMgdG8gc2hpZnQgdGhlIGJhc2UgYWRkcmVzcyBiYWNrLiBGaXggdGhpcyBieSBqdXN0IG1hc2tpbmcgdGhlCiAgICBiYXNlIGFkZHJlc3MgY29ycmVjdGx5LgoKICAgIEZvdW5kIHRoaXMgYnVnIHdoaWxlIHRyeWluZyB0byByZWxvY2F0ZSBhIEREUiBtZW1vcnkgYXQgdGhlIGJhc2UgIT0gMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGZkNDE2NmM0NjdhNDY3NzNmODAyMDhiZGExZWMzYjQ3NTc3NDdiYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCAyMiAxNjoxMDo0MyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDYW55b25sYW5kczogUmVtb3ZlIHVubmVjZXNzYXJ5IEZEVCB3YXJuaW5nIHVwb24gRFRCIGZpeHVwCgogICAgRGVwZW5kaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uIGp1bXBlciAiU0FUQSBTRUxFQ1QiLCBVLUJvb3QgZGlzYWJsZWQKICAgIGVpdGhlciBvbmUgUENJZSBub2RlIG9yIHRoZSBTQVRBIG5vZGUgaW4gdGhlIGRldmljZSB0cmVlIGJsb2IuIFRoaXMKICAgIHBhdGNoIHJlbW92ZXMgdGhlIHVubmVjZXNzYXJ5IGFuZCBldmVuIGNvbmZ1c2luZyB3YXJuaW5nLCB3aGVuIHRoZSBub2RlCiAgICBpcyBub3QgZm91bmQgYXQgYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZTI0YTFlYjE0OTBhYTA0Mzc3MGJjZjAwNjFhYzFmYWQwODY0ZmQ5CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CUZyaSBTZXAgMTkgMTM6MzA6MDYgMjAwOCArMDIwMAoKICAgIEFkZCBtaXNzaW5nIGRldmljZSB0eXBlcyB0byBkZXZfcHJpbnQoKSBpbiBwYXJ0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA1ZmRjMjE1ZjBiMzUxYjBjMzZjYzNmOGEwZmE1ODUwZjI0NDU0YmVkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCAyMiAyMjoyMzowNiAyMDA4ICswMjAwCgogICAgRml4IERQUkFNIG1lbW9yeSBsZWFrIHdoZW4gQ0ZHX0FMTE9DX0RQUkFNIGlzIGRlZmluZWQsIHdoaWNoCiAgICBldmVudHVhbGx5IGxlYWRzIHRvIGEgbWFjaGluZSBjaGVjay4gVGhpcyBjaGFuZ2UgYXNzdXJlcyB0aGF0IERQUkFNCiAgICBpcyBhbGxvY2F0ZWQgb25seSBvbmNlIGluIHRoYXQgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTA3ZmFmN2I5YWQ1YTg2NzYzYTU3N2M3OTkyMmM0ZmY5YTcwZWYyMwpBdXRob3I6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnRwQGNzZS1zZW1hcGhvcmUuY29tPgpEYXRlOglXZWQgU2VwIDE3IDE3OjU3OjM0IDIwMDggKzAyMDAKCiAgICBGaXggU3BhcnRhbi0zIGRlZmluaXRpb25zLgoKICAgIEEgZmV3IFNwYXJ0YW4tMyBkZWZpbml0aW9ucyBlcnJvbmVvdXNseSB1c2UgU3BhcnRhbi0zRSBzaXplCiAgICBjb25zdGFudHMuIFRoaXMgcGF0Y2ggZml4ZXMgdGhlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50cEBjc2Utc2VtYXBob3JlLmNvbT4KCmNvbW1pdCAyODExM2UxZjBkYTQxNDZiODIzZmZjZTM3NjgwZDMxZDU2ODVhNjBiCkF1dGhvcjogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudHBAY3NlLXNlbWFwaG9yZS5jb20+CkRhdGU6CVdlZCBTZXAgMTcgMTc6NDE6NTggMjAwOCArMDIwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgU3BhcnRhbi0zRSBkZWZpbml0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnRwQGNzZS1zZW1hcGhvcmUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YzY1ZWNmN2NkOTRkZjI1MGIyOTU2MjFmM2IyNDEzNWNiY2ZlNTc5CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglXZWQgU2VwIDE3IDEzOjQ2OjE3IDIwMDggKzAyMDAKCiAgICBzb2NyYXRlczogY2hhbmdlIGRlZmF1bHQgbXRlc3QgYWRkcmVzcyByYW5nZQoKICAgIFJ1bm5pbmcgbXRlc3QgY29tbWFuZCBvbiBzb2NyYXRlcyB3aXRob3V0IHNwZWNpZnlpbmcKICAgIGFuIGFkZHJlc3MgcmFuZ2UgY3Jhc2hlcyB0aGUgYm9hcmQuIFRoaXMgcGF0Y2ggY2hhbmdlcwogICAgZGVmYXVsdCBtdGVzdCBhZGRyZXNzIHJhbmdlIHRvIHByZXZlbnQgdGhpcyBiZWhhdmlvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZDY2NmIyZDU5Njc0YjVlMDAyYzA4MjFiN2FiODNlYzNmZjkwZDY3MApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIFNlcCAxNyAxMjozNDo0NSAyMDA4ICswMjAwCgogICAgc29jcmF0ZXM6IGZpeCBjcmFzaCBhZnRlciByZWxvY2F0aW9uCgogICAgQ3VycmVudGx5IFUtQm9vdCBjcmFzaGVzIGFmdGVyIHJlbG9jYXRpb24gdG8gUkFNLgogICAgQ2hhbmdpbmcgdGhlIENQTyB2YWx1ZSBvZiB0aGUgRERSIFNEUkFNIFRJTUlOR19DRkdfMgogICAgcmVnaXN0ZXIgdG8gUkVBRF9MQVQgKyAxICh0byB0aGUgdmFsdWUgaXQgd2FzIGJlZm9yZQogICAgY29udmVyc2lvbiBvZiBzb2NyYXRlcyB0byBuZXcgRERSIGNvZGUpIGZpeGVzIHRoZQogICAgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNTYyNzg4YjBhMzAzZjM1MjhiOTIwZDgxZjU0N2Y1Y2E3N2JhNTI4ZQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIFNlcCAxNyAxMTo0NTo1MSAyMDA4ICswMjAwCgogICAgc29jcmF0ZXM6IGZpeCBTUEQgRUVQUk9NIGFkZHJlc3MKCiAgICBDb21taXQgYmUwYmQ4MjM0Yjk3NzdlY2Q2M2M0YzY4NmY3MmFmMDcwZDg4NjUxNwogICAgY2hhbmdlZCBTUEQgRUVQUk9NIGFkZHJlc3MgdG8gMHg1MSBhbmQgRERSIFNEUkFNCiAgICBkZXRlY3Rpb24gc3RvcHBlZCB3b3JraW5nLiBDaGFuZ2UgdGhpcyBhZGRyZXNzCiAgICBiYWNrIHRvIDB4NTAuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDAyMzgyNDU0OWEzNzBiZDE4NWQ3MTI5ZDlhNmM4NmY5YmU3Yjg2YTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMjIgMTE6MDY6NTAgMjAwOCArMDIwMAoKICAgIFJldmVydCAicHBjNHh4OiBGaXggRERSMiBhdXRvIGNhbGlicmF0aW9uIG9uIEtpbGF1ZWEgNjAwTUh6ICgyMDBNSHogUExCKSIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDNlZWMxNjBhM2E0MDViMjljZTljMDY5MjBmNjQyN2I5MDQ3ZGQ4YTguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU1OGM0MWUyNmNmM2M4YWNjZDYwMzExYmU1NzlmNDUyZTM2OGU5N2UKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBTZXAgMTggMjA6MTM6MDggMjAwOCArMDkwMAoKICAgIHVzYjogRml4IGNvbXBpbGUgd2FybmluZyBvZiByOGE2NjU5Ny1oY2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGI1ZDEwYTEzNTI1YzA3ZWM2Mzc0YWRmODQwZDdjODc1NTNiNWYxODkKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBTZXAgMTggMTk6MzQ6MzYgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggY29tcGlsZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDRhMDY1YWJmOTI2ZjEyOGJlYjM2ZDkzNDQ5ZGVmYTBkNjkwZTdmZWYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBTZXAgMTggMTk6MDQ6MjYgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCB3YXRjaGRvZyBmb3IgU0g0QSBjb3JlCgogICAgQWRkIHN1cHBvcnQgd2F0Y2hkb2cgZm9yIFNINEEgY29yZSAoU0g3NzYzLCBTSDc3ODAgYW5kIFNINzc4NSkuCiAgICBBbmQgZml4IHNvbWUgY29tcGlsZSB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBhMDNjMDljNWZkYjg0MzBmZTJhZTZhMDNmODhhMGNmN2JjYzBhYTU3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgU2VwIDE3IDExOjQ1OjI2IDIwMDggKzA5MDAKCiAgICBzaDogRml4IHR5cG8gaW4gU0ggc2VyaWFsIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2YjQ0YTQzOTIxNWJhN2M2M2Y2NjZmODA5OTIxM2VhNGYwNWYyYjA3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgU2VwIDE3IDExOjA4OjM2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgYW55IHBhZ2Ugc2l6ZSBhbmQgZW1wdHlfemVyb19wYWdlIHRvIFNIIExpbnV4IHVJbWFnZQoKICAgIE9sZCBVLUJvb3Qgc3VwcG9ydGVkIDRLQiBwYWdlIHNpemUgb25seS4gSWYgdGhpcyB2ZXJzaW9uLCBMaW51eAogICAga2VybmVsIGNhbiBub3QgZ2V0IGNvbW1hbmQgbGluZSBmcm9tIFUtQm9vdC4KICAgIFNIIExpbnV4IGtlcm5lbCBjYW4gY2hhbmdlIHBhZ2Ugc2l6ZSBhbmQgZW1wdHlfemVyb19wYWdlLgogICAgVGhpcyBwYXRjaCBzdXBwb3J0IHRoaXMgZnVuY3Rpb24gYW5kIGZpeCBwcm9tbGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjZTlmOTlkZGI1OTYyOGY0MWRjNTM0ZTg5MjM2OGE3ZDY2ZGZjNzc0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUaHUgQXVnIDI4IDEzOjQwOjUyIDIwMDggKzA5MDAKCiAgICBzaDogcnNrNzIwMzogQWRkIHN1cHBvcnQgcGt0X2RhdGFfcHVsbCBhbmQgcGt0X2RhdGFfcHVzaCBmdW5jdGlvbgoKICAgIEFkZCBmdW5jdGlvbiBvZiBzbWM5MTF4LCBwa3RfZGF0YV9wdWxsIGFuZCBwa3RfZGF0YV9wdXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkZDgyMGIwM2EyZjQ1ZTg2ZTc5NjBlMjY3MjlhM2I1OGUzZGRhNDRhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IFNlcCAxOCAxMzo1NzozMiAyMDA4ICswMjAwCgogICAgQURTNTEyMTogZml4IHR5cG8gaW4gInJvb3RwYXRoIiBkZWZhdWx0IHNldHRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM5ZTg0MzZiMTBjY2E1M2ZjYTQ5MDRlY2JhZGNkNjIzMWFkNzJjMzgKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIFNlcCAxNiAxNDo1NTo0NCAyMDA4ICswMjAwCgogICAgVVNCIGxheWVyIG9mIFUtQm9vdCBjYXVzZXMgVVNCIHByb3RvY29sIGVycm9ycyB3aGlsZSB1c2luZyBVU0IgbWVtb3J5IHN0aWNrcwoKICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVuY2VzIGJldHdlZW4gTGludXgsIFdpbmRvd3MgYW5kIFUtYm9vdCBmb3IgaW5pdGlhbGlzaW5nIHRoZQogICAgVVNCIGRldmljZXMuIFdoaWxlIGFuYWx5c2luZyB0aGUgYmVoYXZpb3VyIG9mIFUtYm9vdCBpdCB0dXJuZWQgb3V0IHRoYXQgVS1ib290IGRvZXMKICAgIHRoaW5ncyByZWFsbHkgZGlmZmVyZW50LCBhbmQgc29tZSBhcmUgd3JvbmcgKGNvbXBhcmVkIHRvIHRoZSBVU0Igc3RhbmRhcmQpLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgc29tZSBlcnJvcnM6CiAgICAqIFRoZSBORVdfaW5pdCBwcm9jZWR1cmUgdGhhdCB3YXMgYWxyZWFkeSBpbiB0aGUgY29kZSBpcyBnb29kLCB3aGlsZSB0aGUgb2xkIHByb2NlZHVyZQogICAgICBpcyB3cm9uZy4gU2VlIGNvZGUgY29tbWVudHMgZm9yIG1vcmUgaW5mby4KICAgICogT24gYSBDb250cm9sIHJlcXVlc3QgdGhlIGRhdGEgcmV0dXJuZWQgYnkgdGhlIGRldmljZSBjYW4gYmUgbW9yZSB0aGFuIDggYnl0ZXMsIHdoaWxlCiAgICAgIHRoZSBob3N0IGxpbWl0cyBpdCB0byA4IGJ5dGVzLiBUaGlzIGNhdXNlZCB0aGUgaG9zdCB0byBnZW5lcmF0ZSBhIERhdGFPdmVycnVuIGVycm9yLgogICAgICBUaGlzIHJlc3VsdHMgaW4gYSBsb3Qgb2YgVVNCIHN0aWNrcyBub3QgYmVpbmcgcmVjb2duaXNlZCwgYW5kIHRoZSB0cmFuc21pc3Npb24gZW5kZWQKICAgICAgZnJlcXVlbnRseSB3aXRoIGEgQ1RMOlRJTUVPVVQgRXJyb3IuCiAgICAqIEFkZGVkIGEgZmxhZyBDT05GSUdfTEVHQUNZX1VTQl9JTklUX1NFUSB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlIG9sZCBpbml0IHByb2NlZHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgNmY1Nzk0YTZmNzhiMzEzMjMxMjU2OTU4ZmQ3MzY3M2M2YWFjYzExNgpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglUdWUgU2VwIDE2IDE0OjU1OjQzIDIwMDggKzAyMDAKCiAgICBSZWZhY3RvcmluZyBwYXJ0cyBvZiB0aGUgY29tbW9uIFVTQiBPSENJIGNvZGUKCiAgICBUaGlzIHBhdGNoIHJlZmFjdG9ycyBzb21lIGxhcmdlIHJvdXRpbmVzIG9mIHRoZSBVU0IgT0hDSSBjb2RlIGJ5CiAgICBtYWtpbmcgc29tZSByb3V0aW5lcyBzbWFsbGVyIGFuZCBtb3JlIHJlYWRhYmxlIHdoaWNoIGhlbHBzCiAgICBkZWJ1Z2dpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGNvZGUuIChNYWtlcyB0aGUgY29kZSBsb29rcwogICAgc29tZXdoYXQgbW9yZSBsaWtlIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbi4pCgogICAgQWxzbyBtYWRlIGVudGlyZSBmaWxlIGNvbXBsaWFudCB0byBMaW51eCBDb2RpbmcgUnVsZXMgKGNoZWNrcGF0Y2gucGwgY29tcGxpYW50KQoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBiZTE5ZDMyNGVkYzFhMWQ3ZjM5M2QyNGUxMGQxNjRjZDk0YzkxYTAwCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBTZXAgMTYgMTQ6NTU6NDIgMjAwOCArMDIwMAoKICAgIEZpeCBmb3IgVVNCIHN0aWNrcyBub3Qgd29ya2luZyBvbiBBUk0gd2hpbGUgdXNpbmcgR0NDIDQueCBjb21waWxlcnMKCiAgICBUaGUgR0NDLWNvbXBpbGVyIG1ha2VzIGFuIG9wdGltaXNhdGlvbiBlcnJvciB3aGlsZSBvcHRpbWlzaW5nIHRoZSByb3V0aW5lCiAgICB1c2Jfc2V0X21heHBhY2tldCgpLiBUaGlzIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgY29tcGlsZXIgaW4gdGhlIGZpcnN0IHBsYWNlLAogICAgYnV0IHRoZXJlIGxvdHMgb2YgY29tcGlsZXJzIG91dCB0aGVyZSB0aGF0IG1ha2VzIHRoaXMgZXJyb3IsIHRoYXQgaXQgaXMKICAgIHByb2JhYmx5IHdpc2VyIHRvIHdvcmthcm91bmQgaXQgaW4gVS1ib290IGl0c2VsZi4KCiAgICBXaGF0IGhhcHBlbnMgaXMgdGhhdCB0aGUgcmVnaXN0ZXIgcjMgaXMgdXNlZCBhcyBsb29wLWNvdW50ZXIgJ2knLCBidXQgZ2V0cwogICAgb3ZlcndyaXR0ZW4gbGF0ZXIgb24uIEZyb20gdGhlcmUgaXQgc3RhcnRzIHVzaW5nIHJlZ2lzdGVyIHIzIGZvciBzZXZlcmFsIG90aGVyCiAgICB0aGluZ3MgYW5kIHRoZSBhc3NlbWJsZXIgY29kZSBpcyBiZWNvbWluZyBhIGJpZyBtZXNzLiBUaGlzIGlzIGNsZWFybHkgYSBjb21waWxlciBidWcuCgogICAgVGhpcyBlcnJvciBvY2N1cnMgb24gYXQgbGVhc3Qgc2V2ZXJhbCB2ZXJzaW9ucyBvZiBDb2RlIFNvdXJjZXJ5IExpdGUgY29tcGlsZXJzCiAgICBmb3IgQVJNLiBMaWtlIHRoZSBFZGl0aW9uIDIwMDhxMSwgYW5kIDIwMDhxMywgSXQgaGFzIGFsc28gYmVlbiBzZWVuIG9uIG90aGVyCiAgICBjb21waWxlcnMsIHdoaWxlIGNvbXBpbGluZyBmb3IgYXJtdjR0LCBvciBhcm12NXRlIHdpdGggT3MsIE8xIGFuZCBPMi4KCiAgICBXZSB3b3JrIGFyb3VuZCBpdCBieSBzcGxpdHRpbmcgdXAgdGhpcyByb3V0aW5lIGluIDIgcGFydHMsIGFuZCBtYWtpbmcgc3VyZSB0aGF0CiAgICB0aGUgc3BsaXQgb3V0IHBhcnQgaXMgTk9UIGlubGluZWQgYW55IGxvbmdlci4gVGhpcyB3aWxsIG1ha2UgR0NDIHNwaXQgb3V0IGFzc2VtYmxlcgogICAgdGhhdCBkbyBub3Qgc2hvdyB0aGlzIHByb2JsZW0uIEFub3RoZXIgcG9zc2liaWxpdHkgaXMgdG8gYWRhcHQgdGhlIE1ha2VmaWxlIHRvIHN0b3AKICAgIG9wdGltaXNhdGlvbiBmb3IgdGhlIGNvbXBsZXRlIGZpbGUuIEkgdGhpbmsgdGhpcyBzb2x1dGlvbiBpcyBuaWNlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODdiNGVmNTYwY2YyZGE0Y2NjOWU1OTcxMWFkMWZmN2ZhZmU5NjY3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBTZXAgMTcgMTA6MTc6NTUgMjAwOCArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkVHTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzZWVjMTYwYTNhNDA1YjI5Y2U5YzA2OTIwZjY0MjdiOTA0N2RkOGE4CkF1dGhvcjogVmljdG9yIEdhbGxhcmRvIDx2Z2FsbGFyZG9AYW1jYy5jb20+CkRhdGU6CVR1ZSBTZXAgMTYgMDY6NTk6MTMgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogRml4IEREUjIgYXV0byBjYWxpYnJhdGlvbiBvbiBLaWxhdWVhIDYwME1IeiAoMjAwTUh6IFBMQikKCiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFkYW0gR3JhaGFtIDxhZ3JhaGFtQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNlNDdlYjQwMmM1ZTI5YTAyNTM5OWRjMjgyMjQ2NDE0ZmM0OTI5NDAKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgU2VwIDE2IDEwOjA0OjQ3IDIwMDggLTA1MDAKCiAgICBTdXBwb3J0IGZvciBtdWx0aXBsZSBTR01JSS9UQkkgaW50ZXJmYWNlcyBmb3IgVFNFQyBldGhlcm5ldAoKICAgIEZpeCBUQkkgUEhZIGFjY2Vzc2VzIHRvIHVzZSB0aGUgcHJvcGVyIG9mZnNldCBpbiBDUFUgcmVnaXN0ZXIgc3BhY2UuIFRoZQogICAgcHJldmlvdXMgY29kZSB3b3VsZCBpbmNvcnJlY3RseSBhY2Nlc3MgdGhlIFRCSSBQSFkgYnkgcmVhZGluZy93cml0aW5nIHRvIENQVQogICAgcmVnaXN0ZXIgc3BhY2UgYXQgdGhlIHNhbWUgbG9jYXRpb24gYXMgd291bGQgYmUgdXNlZCB0byBhY2Nlc3MgZXh0ZXJuYWwgUEhZcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YzgwM2JlMmViM2NhZTI0NWRlZGRhNDM4Nzc2ZTA4ZmIxMjIyNTBmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxNiAxODowMjoxOSAyMDA4ICswMjAwCgogICAgVFFNOHh4OiBGaXggQ0ZJIGZsYXNoIGRyaXZlciBzdXBwb3J0IGZvciBhbGwgVFFNOHh4IGJhc2VkIGJvYXJkcwoKICAgIEFmdGVyIHN3aXRjaGluZyB0byB1c2luZyB0aGUgQ0ZJIGZsYXNoIGRyaXZlciwgdGhlIGNvcnJlY3QgcmVtYXBwaW5nCiAgICBvZiB0aGUgZmxhc2ggYmFua3Mgd2FzIGZvcmdvdHRlbi4KCiAgICBBbHNvLCBzb21lIGJvYXJkcyB3ZXJlIG5vdCBhZGFwdGVkLCBhbmQgdGhlIG9sZCBsZWdhY3kgZmxhc2ggZHJpdmVyCiAgICB3YXMgbm90IHJlbW92ZWQgeWV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzBkMmY4N2Q2YzQ1MDEyOGI4OGU3M2VlYTcxNWZhMzY1NGY2NWI2YwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgMTQgMDA6NTk6MzUgMjAwOCArMDIwMAoKICAgIFByZXBhcmUgdjIwMDguMTAtcmMyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMTJlNDU0OWI2ZmIwMWNkMjY1NDM0OGFmOTVhM2M3YTZhYzE2MWU3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IFNlcCAxMyAwMjoyMzowNSAyMDA4ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDBjMzI1NjVmNTM2NjA5ZDc4ZmVlZjM1Yzg4YmJjMzlkM2FjNTNhNzMKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglXZWQgU2VwIDEwIDA5OjE4OjM0IDIwMDggLTA1MDAKCiAgICBVcGRhdGUgbWFpbGluZyBsaXN0IGVtYWlsIGFuZCBhcmNoaXZlIGFkZHJlc3NlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZmI2NjFlYTQ0NGFlNjFkZTYwNTIwZjY2YWU4NGNkYjVkZDVhMzI0NgpBdXRob3I6IHUtYm9vdEBidWdzLmRlbnguZGUgPHUtYm9vdEBidWdzLmRlbnguZGU+CkRhdGU6CVRodSBTZXAgMTEgMTU6NDA6MDEgMjAwOCArMDIwMAoKICAgIDg1eHg6IHNvY3JhdGVzOiBhdXRvcHJvYmUgTGltZSBjaGlwCgogICAgVGhpcyBwYXRjaCBpcyBhbiBhdHRlbXB0IHRvIGltcGxlbWVudCBhdXRvcHJvYmluZyBmb3IgdGhlIExpbWUKICAgIHByZXNlbmNlIG9uIHRoZSBidXMuCiAgICBDb25maWd1cmUgR1BDTSBmb3IgTGltZSBDUzIgYW5kIHRyeSB0byBhY2Nlc3MgY2hpcCBJRCByZWdpc3RlcnMuCiAgICBTZWNvbmQgcmVhZCBhdGVtcHQgZGVsaXZlcnMgcmVnaXN0ZXIgdmFsdWVzIGlmIHRoZSBjaGlwIGlzIHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGU5OWI2MDdhNWVjNTZjZTY2ZTBiY2NjYjc4NDgwZDVlMTZmYjdiYzUKQXV0aG9yOiB1LWJvb3RAYnVncy5kZW54LmRlIDx1LWJvb3RAYnVncy5kZW54LmRlPgpEYXRlOglUaHUgU2VwIDExIDE1OjQwOjAxIDIwMDggKzAyMDAKCiAgICA4NXh4OiBzb2NyYXRlczogQWRkIHN1cHBvcnQgZm9yIG5ldyBpbWFnZSBmb3JtYXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgM2MwOTRiNjUyZDQxMDdiMzQ2NDFmMzAwYThlOWZlMTZjYTE1ZTNkOApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IFNlcCAxMSAxNzoyODoxOCAyMDA4ICswOTAwCgogICAgc2g6IEZpeCBjb21waWxlIGVycm9yIGZvciByMmRwbHVzCgogICAgbmV0ZGV2Lmggd2FzIG5vdCBpbmNsdWRlIGJ5IHIyZHBsdXMuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgoKY29tbWl0IDU2ODQ0YTIyYjc2YzcxOWU2MDAwNDdlMjNiODA0NjVhNDRkNzZhYmQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IFNlcCAxMSAwODoxMToyMyAyMDA4ICswMjAwCgogICAgcG93ZXJwYzogRml4IGJvb3RtIHRvIGJvb3QgdXAgYWdhaW4gd2l0aCBhIFJhbWRpc2sKCiAgICBDb21taXQgMmExYTJjYjYgZGlkbnQgcmVtb3ZlIHRoZSBkdW1teSBtZW0gcmVzZXJ2YXRpb24gaW4gZmR0X2Nob3NlbiwKICAgIGFuZCB0aGlzIHN0b3BwZWQgTGludXggZnJvbSBib290aW5nIHdpdGggYSBSYW1kaXNrLiBUaGlzIHBhdGNoIGZpeGVzCiAgICB0aGlzLCBieSBkZWxldGluZyB0aGUgdXNlbGVzcyBkdW1teSBtZW0gcmVzZXJ2YXRpb24uCgogICAgV2hlbiBib290aW5nIHdpdGggYSBSYW1kaXNrLCBhIGZpeCBvZmZzZXQgRkRUX1JBTURJU0tfT1ZFUkhFQUQgaXMgbm93CiAgICBhZGRlZCB0byBvZl9zaXplLCBzbyB3ZSBkb250IG5lZWQgYW55bW9yZSBhIGR1bW15IG1lbSByZXNlcnZhdGlvbi4KCiAgICBJIG1lYXN1cmVkIHRoZSB2YWx1ZSBvZiBGRFRfUkFNRElTS19PVkVSSEVBRCBvbiBhIE1QQzgyNzAgYmFzZWQKICAgIHN5c3RlbSAoPTB4NDQgYnl0ZXMpIGFuZCByb3VuZGVkIGl0IHVwIHRvIDB4ODApLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZmM5YzE3MjdiNWIzNDgzY2U0OWMzY2I2NjhlODMzMmZiMDAxYjhhNwpBdXRob3I6IEx1aWdpICdDb21pbycgTWFudGVsbGluaSA8bHVpZ2kubWFudGVsbGluaUBpZGYtaGl0LmNvbT4KRGF0ZToJTW9uIFNlcCA4IDAyOjQ2OjEzIDIwMDggKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgTFpNQSB1bmNvbXByZXNzaW9uIGFsZ29yaXRobS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMdWlnaSAnQ29taW8nIE1hbnRlbGxpbmkgPGx1aWdpLm1hbnRlbGxpbmlAaWRmLWhpdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDAwMDhiNmQ5NjgxNjBhYmUyYmZkOTM2NDkzZjNhNTE2YTdjOGRhMjAKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJRnJpIEp1biAyNyAyMzowNDoyMCAyMDA4ICswNDAwCgogICAgZnNsX2VsYmNfbmFuZDogZWNjbGF5b3V0IGNsZWFudXBzCgogICAgVGhpcyBwYXRjaCBkZWxldGVzIG9vYmF2YWlsIGFzc2lnbm1lbnRzLCB0aGV5J3JlIGNhbGN1bGF0ZWQgYnkgdGhlIG5hbmQKICAgIGNvcmUgY29kZSBpbiBuYW5kX3NjYW5fdGFpbCwgcGx1cyBjdXJyZW50IG9vYmF2YWlsIHZhbHVlcyBhcmUgd3JvbmcgZm9yCiAgICB0aGUgTFAgTkFORHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXb29kaG91c2UgPERhdmlkLldvb2Rob3VzZUBpbnRlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjQyYmYxYzM5M2Q1M2E3MGMyNTQ1ZTlmMzI5ZDExYzQ2ZDc0Nzk0CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBKdW4gMjcgMjM6MDQ6MTMgMjAwOCArMDQwMAoKICAgIGZzbF9lbGJjX25hbmQ6IGltcGxlbWVudCBzdXBwb3J0IGZvciBmbGFzaC1iYXNlZCBCQlQKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgZmxhc2gtYmFzZWQgQkJUIGZvciBjaGlwcyB3b3JraW5nCiAgICB0aHJvdWdoIEVMQkMgTkFORCBjb250cm9sbGVyLCBzbyB0aGF0IE5BTkQgY29yZSB3aWxsIG5vdCBoYXZlIHRvIHJlLXNjYW4KICAgIGZvciBiYWQgYmxvY2tzIG9uIGV2ZXJ5IGJvb3QuCgogICAgQmVjYXVzZSBFTEJDIGNvbnRyb2xsZXIgbWF5IHByb3ZpZGUgSFctZ2VuZXJhdGVkIEVDQ3Mgd2Ugc2hvdWxkIGFkanVzdAogICAgYmJ0IHBhdHRlcm4gYW5kIGJidCB2ZXJzaW9uIHBvc2l0aW9ucyBpbiB0aGUgT09CIGZyZWUgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFdvb2Rob3VzZSA8RGF2aWQuV29vZGhvdXNlQGludGVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3YWUwMjM2NDhlNzY0Zjc5NGZmYjljNTJkYTEwOWQ2Y2FmMDljNDcKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJRnJpIEp1biAyNyAyMzowNDowNCAyMDA4ICswNDAwCgogICAgZnNsX2VsYmNfbmFuZDogZml4IE9PQiB3b3JrYWJpbGl0eSBmb3IgbGFyZ2UgcGFnZSBOQU5EIGNoaXBzCgogICAgRm9yIGxhcmdlIHBhZ2UgY2hpcHMsIG5hbmRfYmJ0IGlzIGxvb2tpbmcgaW50byBPT0IgYXJlYSwgYW5kIGNoZWNraW5nCiAgICBmb3IgIjB4ZmYgMHhmZiIgcGF0dGVybiBhdCBPT0Igb2Zmc2V0IDAuIFRoYXQgaXMsIHR3byBieXRlcyBzaG91bGQgYmUKICAgIHJlc2VydmVkIGZvciBiYnQgbWVhbnMuCgogICAgQnV0IEVMQkMgZHJpdmVyIGlzIHNwZWNpZnlpbmcgZWNjbGF5b3V0IHNvIHRoYXQgb29iZnJlZSBhcmVhIHN0YXJ0cyBhdAogICAgb2Zmc2V0IDEsIHNvIG9ubHkgb25lIGJ5dGUgbGVmdCBmb3IgdGhlIGJidCBwdXJwb3Nlcy4KCiAgICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aXRoIGFueSBPT0IgdXNlcnMsIG5hbWVseSBKRkZTMjogYWZ0ZXIgZmlyc3QgbW91bnQKICAgIEpGRlMyIHdpbGwgZmlsbCBhbGwgT09CcyB3aXRoICJlcmFzZWQgbWFya2VyIiwgc28gT09CcyB3aWxsIGNvbnRhaW46CgogICAgICBPT0IgRGF0YTogZmYgMTkgODUgMjAgMDMgMDAgZmYgZmYgZmYgMDAgMDAgMDggZmYgZmYgZmYgZmYKICAgICAgT09CIERhdGE6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCiAgICAgIE9PQiBEYXRhOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZgogICAgICBPT0IgRGF0YTogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKCiAgICBBbmQgb24gdGhlIG5leHQgYm9vdCwgTkFORCBjb3JlIHdpbGwgcmVzY2FuIGZvciBiYWQgYmxvY2tzLCB0aGVuIHdpbGwKICAgIHNlZSAiMHhmZiAweDE5IiBwYXR0ZXJuLCBhbmQgd2lsbCBtYXJrIGFsbCBibG9ja3MgYXMgYmFkIG9uZXMuCgogICAgVG8gZml4IHRoZSBpc3N1ZSB3ZSBzaG91bGQgaW1wbGVtZW50IG91ciBvd24gYmFkIGJsb2NrIHBhdHRlcm46IGp1c3Qgb25lCiAgICBieXRlIGF0IE9PQiBzdGFydC4gVGhvdWdoLCB0aGlzIHdpbGwgd29yayBvbmx5IGZvciB4OCBjaGlwcy4gRm9yIHgxNgogICAgY2hpcHMgdHdvIGJ5dGVzIG11c3QgYmUgY2hlY2tlZC4gU2luY2UgRUxCQyBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCB4MTYKICAgIE5BTkRzICh5ZXQpLCB3ZSdyZSBzYWZlIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXb29kaG91c2UgPERhdmlkLldvb2Rob3VzZUBpbnRlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MjM4YWRhMzEzMDU3YTg1NDA5NDg1YjhlZTIxNTE1ZGMxMGMwN2E1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCAxMiAxMzo1MjoyMSAyMDA4ICswMjAwCgogICAgTVBDNTEyeDogcmVkdWNlIHRpbWVvdXQgd2FpdGluZyBmb3IgRXRoZXJuZXQgYXV0b25lZ290aWF0aW9uIHRvIDIuNXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGIxODQxMGU1MDhhMTJiYTBhMTc3ZGZjMmEzODY4NTdjODA2ZmE5NmQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMTEgMTM6MDU6NTYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRW5hYmxlIGRldmljZSB0cmVlIChGRFQpIHN1cHBvcnQgaW4gemV1cyBib2FyZCBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdiZjVlY2ZhNTA3MjJhOWZlYjQ1ZWE4ZjA0ZGE3NWY1ZDQwNmYyMGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBTZXAgMTAgMTY6NTM6NDcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IFNEUkFNIGluaXRpdGlhbGl6YXRpb24gb2YgbXVsdGlwbGUgNDA1IGJhc2VkIGJvYXJkIHBvcnRzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gaW50cm9kaWNlZCB3aXRoIHBhdGNoCiAgICBiYmVmZjMwYyBbcHBjNHh4OiBSZW1vdmUgc3VwZXJmbHVvdXMgZHJhbV9pbml0KCkgY2FsbCBvciByZXBsYWNlIGl0IGJ5CiAgICBpbml0ZHJhbSgpXS4KCiAgICBUaGUgYm9hcmRzIGFmZmVjdGVkIGFyZToKICAgIC0gUENJNDA1CiAgICAtIFBQQ2hhbWVsZW9uRVZCCiAgICAtIHF1YWQxMDBoZAogICAgLSB0YWlodQogICAgLSB6ZXVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYxNzM3YzU5YTMyODVmNmZhZGY5NmE1ODM2ODc5ODk4YzA0ZWMyOGQKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJVGh1IFNlcCAxMSAxOTo0MToyNiAyMDA4IC0wNDAwCgogICAgcHBjNHh4OiBBZGQgLmdpdGlnbm9yZSBmaWxlIHRvIHhpbGlueC1wcGM0NDAgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmJlYzQ5OGVkMTE2NGE1OGNkODQzN2I1NjFiZGM0NTUxZDY5ZjliZgpBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglUaHUgU2VwIDExIDE5OjQxOjI1IDIwMDggLTA0MDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiBvZiB2NWZ4MzB0ZXZhbF9mbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRiZWQ5ZGVlYmJkN2VlNmYwYmE3NDZiNDRkNDdhOTIyMTU2Zjc0MDQKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJV2VkIFNlcCAxMCAxNzo0NDozMCAyMDA4IC0wNDAwCgogICAgcHBjNHh4OiBGaXggaW4tdHJlZSBidWlsZCBmb3IgcHBjNDQwLWdlbmVyaWMgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDZjNGFiNTBmNWNjZmI1NWVhMmRkMzI0YWEyOGIyYjA2MTAyZTQxNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBTZXAgMTIgMDI6MjA6NDcgMjAwOCArMDIwMAoKICAgIEFSTTogc3luY2hyb25pemUgbWFjaC10eXBlcy5oIHdpdGggbGludXggMi42LjI3LXJjNgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgM2VlOWYwM2Y1ODhhZDYwNWUzZmQxMDUzMDIzN2Y5ZTNlMmU3YWI0YwpBdXRob3I6IEplbnMgU2NoYXJzaWcgPGVzd0BidXMtZWxla3Ryb25pay5kZT4KRGF0ZToJRnJpIFNlcCAxMiAwMjoyMDo0NyAyMDA4ICswMjAwCgogICAgYXQ5MXJtOTIwMDogZml4IGVycm9ycyB3aXRoIENPTkZJR19DTURfSTJDX1RSRUUKCiAgICBUaGlzIHBhdGNoIHByZXZlbnRzIGxpbmtlciBlcnJvciBvbiBBVDkxUk05MjAwIGJvYXJkcywgaWYKICAgIENPTkZJR19DTURfSTJfVFJFRSBpcyBzZXQuCiAgICBJdCBpbXBsZW1lbnRzIGkyY19zZXRfYnVzX3NwZWVkIGFuZCBpMmNfZ2V0X2J1c19zcGVlZCBhcyBhIGR1bW15IGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgU2NoYXJzaWcgPGVzd0BidXMtZWxla3Ryb25pay5kZT4KCmNvbW1pdCBiNWIwMzQ0OTU3ZDMyZTNkMDdhOGRkNzJmY2U2NGZiNDhlNjgwYmE0CkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CUZyaSBTZXAgMTIgMDI6MjA6NDcgMjAwOCArMDIwMAoKICAgIEFSTSBEYVZpbmNpOiBSZW1vdmUgZHVwbGljYXRlIGNvZGUgaW4gY3B1L2FybTkyNmVqcy9kYXZpbmNpL2RwODM4NDguYwoKICAgIEFSTSBEYVZpbmNpOiBSZW1vdmUgZHVwbGljYXRlIGNvZGUgaW4gY3B1L2FybTkyNmVqcy9kYXZpbmNpL2RwODM4NDguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgoKY29tbWl0IDAzZGI1MzMzNWM4ZWJhNjU2YTdjNDRkMTU1NWIxYTQ1MTQzODNlMzMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQ2IDIwMDggKzAyMDAKCiAgICBtYWtlOiBSZW1vdmUgcmVkdW5kYW50IF9fQVJNX18gYWRkaXRpb24gd2hlbiBjcm9zcy1jb21waWxpbmcgb24gKkJTRAoKICAgIF9fQVJNX18gaXMgZ2l2ZW4gYnkgYXJtX2NvbmZpZy5tayBhdXRvbWF0aWNhbGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgOGNjNjJhN2Q5Yzc3ZjhlZjUxNjZmYjU3MzIyYzRhNmRkYWMzMjBiNApBdXRob3I6IENsYXVkaW8gU2NvcmRpbm8gPGNsYXVkaW9AZXZpZGVuY2UuZXUuY29tPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQ2IDIwMDggKzAyMDAKCiAgICBGaXggTUFDSF9UWVBFIGZvciB0aGUgQVQ5MVJNOTIwMERLIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IENsYXVkaW8gU2NvcmRpbm8gPGNsYXVkaW9AZXZpZGVuY2UuZXUuY29tPgoKY29tbWl0IDI3NDczN2U1ZWIyNWIyYmNkM2FmM2E5NmRhOTIzZWZmZDU0MzI4NGYKQXV0aG9yOiBBbmRyZXcgRHllciA8YWR5ZXJAcmlnaHRoYW5kdGVjaC5jb20+CkRhdGU6CUZyaSBTZXAgMTIgMDI6MjA6NDYgMjAwOCArMDIwMAoKICAgIGkubXggY2hhbmdlIGdldF90aW1lcihiYXNlKSB0byByZXR1cm4gdGltZSBzaW5jZSBiYXNlCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIGdldF90aW1lcigpIGZvciBpLk1YIHRvIHJldHVybiB0aGUgdGltZSBzaW5jZQogICAgJ2Jhc2UnIGluc3RlYWQgb2YgdGhlIHRpbWUgc2luY2UgdGhlIGNvdW50ZXIgd2FzIGF0IHplcm8uCgogICAgU3ltcHRvbSBzZWVuIGlzIGZsYXNoIHRpbWVvdXQgZXJyb3JzIHdoZW4gZXJhc2luZyBvciBwcm9ncmFtbWluZyBhCiAgICBzZWN0b3IgdXNpbmcgdGhlIGNvbW1vbiBjZmkgZmxhc2ggY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRHllciA8YWR5ZXJAcmlnaHRoYW5kdGVjaC5jb20+Cgpjb21taXQgNDhmZWQ0MDU3NWIzZThlYWU5NjBlYjAxNDE1MDlkZGQ5YTczMDEyYQpBdXRob3I6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KRGF0ZToJRnJpIFNlcCAxMiAwMjoyMDo0NiAyMDA4ICswMjAwCgogICAgaS5NWCB1c2UgdS1ib290IGJhdWQgcmF0ZSBhbmQgZG9uJ3QgYXNzdW1lIFVBUlQgbWFzdGVyIGNsb2NrCgogICAgMSkgQ2hhbmdlIHRoZSBpLk1YIHNlcmlhbCBkcml2ZXIgdG8gdXNlIHRoZSBiYXVkIHJhdGUgc2V0IGluIHRoZQogICAgIHUtYm9vdCBlbnZpcm9ubWVudAoKICAgIDIpIGRvbid0IGFzc3VtZSBhIDE2TUh6IHZhbHVlIGZvciBQRVJDTEsxIGluIGJhdWQgcmF0ZSBjYWxjdWxhdGlvbnMKCiAgICAzKSBkb24ndCB3cml0ZSBhIDEgdG8gdGhlIFJEUiBiaXQgaW4gdGhlIFVTUjIgcmVnLiAoYml0IGlzIG5vdCAid3JpdGUKICAgICBvbmUgdG8gY2xlYXIiIGxpa2Ugb3RoZXIgc3RhdHVzIGJpdHMgaW4gdGhlIHJlZy4pCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgoKY29tbWl0IDZlMTU1MWE4NzBkMzYwODA1YjlkMTcyZGM1NmQ5MzUwNjRhYmU3MWQKQXV0aG9yOiBBbmRyZXcgRHllciA8YWR5ZXJAcmlnaHRoYW5kdGVjaC5jb20+CkRhdGU6CUZyaSBTZXAgMTIgMDI6MjA6NDYgMjAwOCArMDIwMAoKICAgIGFybTkyMHQgZml4IGNvbnN0YW50IGVycm9yIGluIHN0YXJ0LlMKCiAgICBDb2RlIGluIGNwdS9hcm05MjB0L3N0YXJ0LlMgd2lsbCBkaWUgd2l0aCBhIGNvbXBpbGF0aW9uIGVycm9yIGlmCiAgICBDT05GSUdfU1RBQ0tTSVpFICsgQ0ZHX01BTExPQ19MRU4gd29ya3Mgb3V0IHRvIGFuIGludmFsaWQgY29uc3RhbnQgZm9yCiAgICB0aGUgQVJNIHN1YiBpbnN0cnVjdGlvbi4gIENoYW5nZSB0aGUgY29kZSBzbyB0aGF0IGVhY2ggaXMgc3VidHJhY3RlZAogICAgaW5kZXBlbmRlbnRseSB0byBhdm9pZCB0aGUgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgoKY29tbWl0IGIyMzI1MzgzNWY4NzFjZDliZDhlOTU1YjlhOTcxZDE4YTdkNGZmNTYKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQwIDIwMDggKzAyMDAKCiAgICBBUk0gT01BUCA6IENvcnJlY3QgSW52YWxpZCBUaW1lciBSZWdpc3RlciBGaWVsZCBEZWNsYXJhdGlvbiBpbiBvbWFwMTUxMC5oICYgb21hcDczMC5oCgogICAgLSBDb3JyZWN0IEludmFsaWQgI2RlZmluZSBvZiBNUFVUSU1fUFRWX01BU0sgZm9yCiAgICAgICBvbWFwMTUxMCAmIG9tYXA3MzAgcmVnaXN0ZXIgZGVmaW5pdGlvbgoKICAgICBNUFVUSU1fUFRWX01BU0sgaXMgZGVmaW5lZCBhcwogICAgICNkZWZpbmUgTVBVVElNX1BUVl9NQVNLCQkoMHg3PDxQVFZfQklUKQoKICAgICB3aGlsZSBpdCBzaG91bGQgaGF2ZSBiZWVuCiAgICAgI2RlZmluZSBNUFVUSU1fUFRWX01BU0sJCSgweDc8PE1QVVRJTV9QVFZfQklUKQoKICAgIC0gQmVsb3cgUGF0Y2ggY29ycmVjdHMgdGhlIHNhbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgYzQ1NWQwNzM5NmRkZGM5ODY0ZmQ4ZGJiOTY1ZWUxMGZlOTVjZThjZgpBdXRob3I6IEFkcmlhbiBGaWxpcGkgPGFkcmlhbi5maWxpcGlAZXVyb3RlY2guY29tPgpEYXRlOglGcmkgSnVsIDE4IDExOjUyOjAyIDIwMDggLTA0MDAKCiAgICBTZXQgdXAgU0QvTU1DIE9DUiBhcyBjb21tZW50IGRlc2NyaWJlcy4gaS5lLiAzLjItMy40di4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZHJpYW4gRmlsaXBpIDxhZHJpYW4uZmlsaXBpQGV1cm90ZWNoLmNvbT4KCmNvbW1pdCBlYjE2MTM1ZGYyMDUzNWIwZDE5OTY5ZjUwZmI1YmQxN2Y5NWU5YzI1CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDI4IDEyOjI1OjExIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IGRvY3VtZW50IHRpbWVyIHByZWNpc2lvbiBvcHRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMWE2MzM3YjAxMzUxYjgyYTQ1YjBkZWZhNzZmMDg3NDQ1MTFjNTgwYgpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAxMDozNjoxOCAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBNYWtlIHRoZSBTUEkgYnVzIGFuZCBjaGlwIHNlbGVjdCBjb25maWd1cmFibGUgZm9yIE1DMTM3ODMKCiAgICBUaGUgaS5NWDMxIGhhcyB0aHJlZSBTUEkgYnVzZXMgYW5kIGVhY2ggYnVzIGhhcyBzZXZlcmFsIGNoaXAgc2VsZWN0cwogICAgYW5kIHRoZSBNQzEzNzgzIGNoaXAgY2FuIGJlIGNvbm5lY3RlZCB0byBhbnkgb2YgdGhlc2UuIFRoZSBjdXJyZW50CiAgICBSVEMgZHJpdmVyIGZvciBNQzEzNzgzIGlzIGhhcmRjb2RlZCBmb3IgQ1NQSTIvU1MyLgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgbWFrZSBNQzEzNzgzIFNQSSBidXMgYW5kIGNoaXAgc2VsZWN0IGNvbmZpZ3VyYWJsZQogICAgdmlhIENPTkZJR19NQzEzNzgzX1NQSV9CVVMgYW5kIENPTkZJR19NQzEzNzgzX1NQSV9DUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgOGM0ZWJlYzI1YjIxZTM1NWI4NDg4Njk4ZWMxNTk0ZGE5NzAxZmZmNApBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAxMDozNjoxNyAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBBZGQgcmVzZXRfdGltZXIoKSBhbmQgbW9kaWZ5IGdldF90aW1lcl9tYXNrZWQoKS4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHJlc2V0X3RpbWVyKCkgZnVuY3Rpb24gKG5lZWRlZCBieSBuYW5kX2Jhc2UuYykgYW5kCiAgICBtb2RpZmllcyB0aGUgZ2V0X3RpbWVyX21hc2tlZCgpIHRvIHdvcmsgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSBvbWFwMjR4eAogICAgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IGRlZWVjNDk5MWE1NWRlMjQzNzg3MDAyZWRlMjRkMjMzMWQyMzRmYzgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA5IDIwMDggKzAyMDAKCiAgICBhcDMyNXJ4YTogcmVtb3ZlIGR1cGxpY2F0ZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTNhMDhjMGNlZGQzMjllZGY1MjU2ZTFkNmIyYmFkMGZjYTAwMjcyNQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDkgMjAwOCArMDIwMAoKICAgIGJvb3RtIGFybS9hdnIzMi9ibGFja2Zpbi9taWNyb2JsYXplL25pb3MyL3NoOiByZW1vdmUgbm8gbW9yZSBuZWVkICdlcnJvcicgbGFiZWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBlOGQxNTg2NjRhOTEzMzkyY2IwMWZiMTFhOTQ4ZDgzZjcyZTEwNWUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA2IDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOViBtYWNyb3MgdG8gQ09ORklHX0VOVgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMWVkZTc4NzEwYzNiZjlhZDZmNGE1M2FhZGRjM2JjYzg2ZmVkZDlkZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDUgMjAwOCArMDIwMAoKICAgIG52ZWRpdDogcmVuYW1lIGVycm9yIGNvbW1lbnQgdG8gQ09ORklHX0VOVl9JU19JTl8KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGI2NGI3NzVlNzU0NmVkMTM4ZGYzNjBjZWIzYTcxZWUzNThjYjlhMDEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA1IDIwMDggKzAyMDAKCiAgICBjbWRfbWVtOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4YTQwZmIxNDhlZmE0NDJkNjUyNmVhYzQ2YTIwMDFlNGM2NGQyOGZmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowNSAyMDA4ICswMjAwCgogICAgbW92ZSBjbWRfZ2V0X2RhdGFfc2l6ZSB0byBjb21tYW5kLmMKCiAgICBhZGQgQ01EX0RBVEFfU0laRSBtYWNybyB0byBlbmFibGUgaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDUwNzY0MWQyNDkxOTgwNTMxOTMyYjlmMjVkYWIzN2ZlNWU2YzNhMWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA0IDIwMDggKzAyMDAKCiAgICBlbnZfZmxhc2g6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDVhMWFjZWIwNjg5ZTJmNzMxNDkxODM4OTcwODg0YTY3M2VmN2U3ZDMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA0IDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19JTl9GTEFTSCBpbiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3ZDliNWJhZTViYTU1OGM3NDY0ZDg5ZDAzM2FjYTA0YWNhZjAxMTcyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowMyAyMDA4ICswMjAwCgogICAgY2xlYW51cCB1c2Ugb2YgQ0ZHX0VOVl9JU19JTl9GTEFTSAoKICAgIC0gI2lmIENGR19FTlZfSVNfSU5fRkxBU0gKICAgIC0gI2lmIChDRkdfRU5WX0lTX0lOX0ZMQVNIID09IDEpCiAgICAtICNkZWZpbmUgQ0ZHX0VOVl9JU19JTl9GTEFTSCAwCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwY2Y0ZmQzY2Y4ZDBlMDA2MDViZWM1ZmM1NmY4OWM2NDE1MDE1YTQ2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowMSAyMDA4ICswMjAwCgogICAgcmVuYW1lIGVudmlyb25tZW50LmMgaW4gZW52X2VtYmVkZGVkLmMgdG8gcmVmbGVjdCBpcyBmdW5jdGlvbmFsaXR5CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjMDg3OGFmNmUzMmYwZmQ4ZTEzYTZjYTMxNWI5YWRkNjQ0NDExMTVhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowMSAyMDA4ICswMjAwCgogICAgZW52X25vd2hlcmU6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkzZjZkNzI1NDRkYTQ1MTBhMTQ2YmM0YzkzZDYwOWIwMTE2Y2RlMzcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjAwIDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19OT1dIRVJFIGluIENPTkZJR19FTlZfSVNfTk9XSEVSRQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjU1NmVmNzgxMTNiNWYwODlkZmNhYzVkYTkwYmYzMWRkNTY4Mzk3YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDAgMjAwOCArMDIwMAoKICAgIGVudl9zZjogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGI1MDk5YTg0MTliZjljODI4ZGY1ZTNlMmM2ODc4ZGMzMDBkOThlMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDAgMjAwOCArMDIwMAoKICAgIHJlbmFtZSBDRkdfRU5WX0lTX0lOX1NQSV9GTEFTSCBpbiBDT05GSUdfRU5WX0lTX0lOX1NQSV9GTEFTSAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTVjNWY0OTkxMGVjODIyNTM0N2FhMWQyMTEzNTJhODRkZTY2NDliNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDAgMjAwOCArMDIwMAoKICAgIGVudl9vbmVuYW5kOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5NjU2MTM4ZmYxYTM0ZDRjNDc2OGRiNmI0OTBkZWZmYzQwZWU2NzRiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1OSAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfSU5fT05FTkFORCBpbiBDT05GSUdfRU5WX0lTX0lOX09ORU5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk1N2EwZTY5NTc1NjgzZWZkNzBhY2UxNDc3NDZiYmIzZDhlN2M1MDEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ3OjU5IDIwMDggKzAyMDAKCiAgICBlbnZfbnZyYW06IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkzMTRjZWU2OTE3NDQ0YWI4OGJkNGU3NThkYTdhMzA5NzUxMjAxODcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ3OjU5IDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19JTl9OVlJBTSBpbiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwNmY2MTM1NDM5NzkxMWE0YzEyMWRmYTUxYjZjY2JmN2UzMDBkNDhiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1OSAyMDA4ICswMjAwCgogICAgZW52X25hbmQ6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDUxYmZlZTE5MjA5OTIwNmE0Mzk3ZjE1ZjNiOTM1MTZlMDFmNThhYjAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ3OjU4IDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19JTl9OQU5EIGluIENPTkZJR19FTlZfSVNfSU5fTkFORAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDhjYzA0ZDBhYzljN2MwZDEyNDU0NzA4YWFmNTQ4OWY4NTMyYmJmOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDc6NTggMjAwOCArMDIwMAoKICAgIGVudl9kYXRhZmxhc2g6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA1N2M4NDljNDViOWVlMTlkZjhmZjNhY2RlZWU2NmJlNTI4MTk5NjIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ3OjU4IDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19JTl9EQVRBRkxBU0ggaW4gQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQxMDM0YmM4ZGI2MGZhNmJkNDE5MzI4YmFmNmE3NWNiMDY0NWNlZTgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ3OjUyIDIwMDggKzAyMDAKCiAgICBjbWRfZWVwcm9tOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiZjVhNzcxMGVjNzBlOTBlOThmNDUxYjRiYTBlYjY1ZjlmZmMzNGViCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIFNlcCA1IDA5OjE5OjU0IDIwMDggKzAyMDAKCiAgICBlbnZfZWVwcm9tOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiYjFmOGI0ZjhiYjBiZmNlNTJlMGZhYTQ2MzdiOTc1Yjc0NTgyNGIzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIFNlcCA1IDA5OjE5OjMwIDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19JTl9FRVBST00gaW4gQ09ORklHX0VOVl9JU19JTl9FRVBST00KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDMyNjI4YzUwMDgxMDVhNzMyMjEyMDAzZDgzYjc1ZjA1ZTUyNDNiYjIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXVnIDMwIDIzOjU0OjU4IDIwMDggKzAyMDAKCiAgICBjbWRfbWFjOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgZmluaXNoIHJlbWFuaW5nIENGR19JRF9FRVBST00gaW4gQ09ORklHX0lEX0VFUFJPTQogICAgc3RhcnQgaW4gY29tbWl0IGFkOGY4Njg3Yjc4YzNlOTE3YjE3M2YwMzg5MjY2OTUzODNjNTU1NTUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU1NjQ4YWNhYjE1M2YwZjQyOWJmYzcxNDkwMmM1YWFhNzg3OWY3MWIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXVnIDMwIDIzOjQ3OjQxIDIwMDggKzAyMDAKCiAgICBjbWRfZmRjOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyZDAyZDkxZDUzMGU4MzFmMmRhYjIyODA4NTk2M2ZjMWQ1YjcxY2IwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAzMCAyMzo0NzozOCAyMDA4ICswMjAwCgogICAgY29tbW9uL01ha2VmaWxlOiBhZGQgY29yZSBjb21tYW5kIHNlY3Rpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBkOTJkNGE2OTlmYjFhMzkzODFkOTg1NzFkYzUxZmI5N2U1YmNmOWUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXVnIDMwIDIzOjI5OjU3IDIwMDggKzAyMDAKCiAgICBjbWRfdmZkOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2NjQ0NjQxZDA3MmFlZTMwODdkYTEyOWQ4NDQzMTg3MTk2YTRkOGE5CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMTE6NDg6NDkgMjAwOCAtMDUwMAoKICAgIGRlbHRhLCB6eWxvbml0ZTogVXBkYXRlIG5hbmRfb29iaW5mbyB0byBuYW5kX2VjY2xheW91dC4KCiAgICBUaGlzIGlzIHBhcnQgb2YgdGhlIHN3aXRjaCB0byBuZXdlciB1cHN0cmVhbSBNVEQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YjA1YWE3ODhiZmRkMzI2NGZmMWJjOTQxOGNiMTk1NTBhNzIzNGU0CkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVNhdCBBdWcgMzAgMTc6MDY6NTUgMjAwOCAtMDQwMAoKICAgIEFSTSBEYVZpbmNpOiBGaXggYnJva2VuIEhXIEVDQyBmb3IgbGFyZ2UgcGFnZSBOQU5ELgoKICAgIEJhc2VkIG9uIG9yaWdpbmFsIHBhdGNoIGJ5IEJlcm5hcmQgQmxhY2toYW0gPGJlcm5hcmRAbGFyZ2VzdHByaW1lLm5ldD4KCiAgICBVLWJvb3QncyBIVyBFQ0Mgc3VwcG9ydCBmb3IgbGFyZ2UgcGFnZSBOQU5EIG9uIERhdmluY2kgaXMgY29tcGxldGVseQogICAgYnJva2VuLiAgU29tZSBrZXJuZWxzLCBzdWNoIGFzIHRoZSAyLjYuMTAgb25lIHN1cHBvcnRlZCBieQogICAgTW9udGFWaXN0YSBmb3IgRGFWaW5jaSwgcmVseSB1cG9uIHRoaXMgYnJva2VuIGJlaGF2aW91ciBhcyB0aGV5CiAgICBzaGFyZSB0aGUgc2FtZSBjb2RlIGZvciBFQ0NzLiBJbiB0aGUgZXhpc3Rpbmcgc2NoZW1lLCBlcnJvcgogICAgZGV0ZWN0aW9uICptaWdodCogd29yayBvbiBsYXJnZSBwYWdlLCBidXQgZXJyb3IgY29ycmVjdGlvbgogICAgZGVmaW5pdGVseSBkb2VzIG5vdC4gIFNtYWxsIHBhZ2UgRUNDIGNvcnJlY3Rpb24gd29ya3MsIGJ1dCB0aGUKICAgIGZvcm1hdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBtYWlubGluZSBnaXQga2VybmVsLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBFQ0MgY29kZSB0aGF0IG1hdGNoZXMgd2hhdCBpcyBjdXJyZW50bHkgaW4gdGhlCiAgICBEYXZpbmNpIGdpdCByZXBvc2l0b3J5IChzaW5jZSBOQU5EIHN1cHBvcnQgd2FzIGFkZGVkIGluIDIuNi4yNCkuCiAgICBUaGlzIG1ha2VzIHRoZSBFQ0MgYW5kIE9PQiBsYXlvdXQgd3JpdHRlbiBieSB1LWJvb3QgY29tcGF0aWJsZSB3aXRoCiAgICBMaW51eCBmb3IgYm90aCBzbWFsbCBwYWdlIGFuZCBsYXJnZSBwYWdlIGRldmljZXMgYW5kIGZpeGVzIEVDQwogICAgY29ycmVjdGlvbiBmb3IgbGFyZ2UgcGFnZSBkZXZpY2VzLgoKICAgIFRoZSBvbGQgYmVoYXZpb3VyIGNhbiBiZSByZXN0b3JlZCBieSBkZWZpbmluZyB0aGUgbWFjcm8KICAgIENGR19EQVZJTkNJX0JST0tFTl9FQ0MsIHdoaWNoIGlzIHVuZGVmaW5lZCBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgogICAgQWNrZWQtYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGI3YzU2Mzk4OTFmNDEwM2EwZTMxZWM3YWUwYmViM2U5N2VkMzgzNgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgU2VwIDEwIDExOjE1OjI4IDIwMDggKzAyMDAKCiAgICBtdWFzMzAwMTogdXBkYXRlIEJSNCBzZXR0aW5ncwoKICAgIEFsc28gc2V0IHVwIHRoZSBwb3J0IHBpbnMgZm9yIHVzaW5nIEkyQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzNTkxMjkzNTA5ZTBjMGJjZjI0NGIwZjk3NDc3NWJmZjJlMjU2OTdlCkF1dGhvcjogUGV0cmkgTGVodGluZW4gPHBldHJpLmxlaHRpbmVuQGlub2kuZmk+CkRhdGU6CVdlZCBTZXAgMTAgMDk6NDM6NDkgMjAwOCArMDMwMAoKICAgIGF1dG9zY3I6IEZpeCBvbmUtY2hhcmFjdGVyIGxpbmVzIGFuZCBub24tbmV3bGluZSB0ZXJtaW5hdGVkIHNjcmlwdHMKCiAgICBXaGVuIG5vdCB1c2luZyBodXNoLCB0aGUgYXV0b3NjciBjb21tYW5kIG5vdyBleGVjdXRlcyBsaW5lcyB0aGF0IGFyZQogICAgb25seSBvbmUgY2hhcmFjdGVyIGxvbmcuIEl0IGFsc28gcnVucyB0aGUgbGFzdCBsaW5lIG9mIHNjcmlwdHMgZXZlbiBpZgogICAgaXQgZG9lcyBub3QgZW5kIGluIGEgbmV3bGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRyaSBMZWh0aW5lbiA8cGV0cmkubGVodGluZW5AaW5vaS5maT4KCmNvbW1pdCA5ZWJiYjU0ZjdhMjUwNTUwMTBmYTY2NjhlYmE0MGM3MmE0YzRmOTg1CkF1dGhvcjogVmljdG9yIEdhbGxhcmRvIDx2Z2FsbGFyZG9AYW1jYy5jb20+CkRhdGU6CVR1ZSBTZXAgOSAxNToxMzoyOSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBbGxvdyBEVFRfSTJDX0RFVl9DT0RFIGNvbmZpZ3VyZWQgYnkgQ0ZHX0kyQ19EVFRfQUREUgoKICAgIE9uIEFNQ0MgQXJjaGVzIGJvYXJkIERUVF9JMkNfREVWX0NPREUgaXMgZGlmZmVyZW50IHRoZW4gY2FueW9ubGFuZHMKICAgIGFuZCBnbGFjaWVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgoKY29tbWl0IDI0NWY2ZWYzZTExODI4Y2I0NjE4OGUzOTZmYjFlNjdmN2IwN2NkMDMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDEwOjIxOjExIDIwMDggKzAyMDAKCiAgICBtdWFzMzAwMTogYWRkZWQgc3VwcG9ydCBmb3IgdGhlIExNNzUgc2Vuc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDRhMDJhMmRjYTgyYWVhYjhmODM5ZGI5ZGQzNWZkYTlkNTQxMmRhY2IKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDEwOjIwOjE5IDIwMDggKzAyMDAKCiAgICBtdWFzMzAwMTogYWN0aXZhdGUgV0RUIGZvciB0aGUgbXVhczMwMDEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTU1ZDA3NGRhYzI0ZGM5NDFmMWFmYjViNGU5NGIxNTA5YmZkZGE0ZQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglNb24gU2VwIDggMTA6MTk6MzYgMjAwOCArMDIwMAoKICAgIG11YXMzMDAxOiBhZGRlZCA2NE1CIFNEUkFNIGF1dG9kZXRlY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNTI1MTQ2OTk0Mzg5NWRlNGJiOWEwNGQ1MDUzMzUyY2MyMmFjYjdkNQpBdXRob3I6IEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CkRhdGU6CVRodSBBdWcgMjEgMDc6MTI6MjYgMjAwOCAtMDcwMAoKICAgIEZpeCBwcmludGYgZXJyb3JzIHVuZGVyIC1EREVCVUcKCiAgICBGaXggcHJpbnRmIGZvcm1hdC1zdHJpbmcvYXJnIG1pc21hdGNoZXMgdW5kZXIgLURERUJVRy4KCiAgICBUaGVzZSB3YXJuaW5ncyBvY2N1ciB3aXRoIERFQlVHIGRlZmluZWQgZm9yIGEgcGxhdGZvcm0gdXNpbmcKICAgIGNwdS9tcGM4NXh4LiAgVXNlcnMgb2Ygb3RoZXIgYXJjaGl0ZWN0dXJlcyBjYW4gdW5lYXJ0aCBzaW1pbGFyCiAgICBwcm9ibGVtcyBieSBhZGRpbmcgdGhlIGxpbmUgIkNGTEFHUyArPSAtRERFQlVHPTEiIGluIGNvbmZpZy5tayByaWdodAogICAgYWZ0ZXIgIkNGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1mbm8tc3RhY2stcHJvdGVjdG9yKSIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YjllNDc4NzY0MTcxOWQ3MDliZmEyZWJlYjcyZThiZDQ5NTJiZWU3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCA5IDIzOjU1OjE4IDIwMDggKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCBwcmVwYXJlIDIwMDgtMTAtcmMxIHJlbGVhc2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUwZmYzZDM1MGQ2Yjc5NjBkZWI1YTg4MWRmYzVhY2YzYTYzZWY2NzYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gU2VwIDggMDg6NTE6MjkgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEVuc3VyZSB0aW1lYmFzZSBpcyB6ZXJvIG9uIHNlY29uZGFyeSBjb3JlcwoKICAgIFRoZSBlNTAwdW0gc2F5cyB0aGUgdGltZWJhc2UgaXMgdm9sYXRpbGUgb3V0IG9mIHJlc2V0LiAgVG8gZW5zdXJlCiAgICBUQiBzeW5jIHdvcmtzIHdlIG5lZWQgdG8gbWFrZSBzdXJlIGl0cyB6ZXJvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTRiNGFiM2M5NjFhMjAxMmExYzJhMDljMjU5YTYzNDMzMjNlYzU1MQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgOSAyMjoxODoyNCAyMDA4ICswMjAwCgogICAgYm9vdG1fbG9hZF9vczogZml4IGxvYWRfZW5kIGRlYnVnIG1lc3NhZ2UKCiAgICBwcmludCBsb2FkX2VuZCB2YWx1ZSBub3QgcG9pbnRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMWQ5YWYwYmU3NjQ5NjBlNmNjMWMwOTNlOTcxNzZjMzU0Mjc5NjgyMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgOSAyMjoxODoyMyAyMDA4ICswMjAwCgogICAgYm9vdG06IGVuYWJsZSBmZHQgc3VwcG9ydCBvbmx5IG9uIHBwYywgbTY4ayBhbmQgc3BhcmMKCiAgICAuLi5hcyBkb25lIGluIGltYWdlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDc0OGI1Mjc0ZTc2ZjgxZGY4NWNmY2ZmYWZmZWRjMzIzNjc4ZDA2MjMKQXV0aG9yOiBNYXJrdXMgSGVpZGVsYmVyZyA8bWFya3VzLmhlaWRlbGJlcmdAd2ViLmRlPgpEYXRlOglUdWUgU2VwIDkgMTg6NTE6MDUgMjAwOCArMDIwMAoKICAgIGNvbW1vbi9jbWRfbWVtLmM6IHJlbW92ZSBuZXN0ZWQgI2lmIGRlZmluZWQoQ09ORklHX0NNRF9NRU1PUlkpCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEhlaWRlbGJlcmcgPG1hcmt1cy5oZWlkZWxiZXJnQHdlYi5kZT4KCmNvbW1pdCA2NTA2MzJmZTRjYTA5Y2ZkMGU1ZTZhNTkzZjJlZmMwMmVmODdhNThjCkF1dGhvcjogTWFya3VzIEhlaWRlbGJlcmcgPG1hcmt1cy5oZWlkZWxiZXJnQHdlYi5kZT4KRGF0ZToJVHVlIFNlcCA5IDE3OjMxOjQ2IDIwMDggKzAyMDAKCiAgICBnaXRpZ25vcmU6IGFkZCB0YWdzIGZpbGVzIGFuZCBWaW0gc3dhcCBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEhlaWRlbGJlcmcgPG1hcmt1cy5oZWlkZWxiZXJnQHdlYi5kZT4KCmNvbW1pdCAxZDliNjdiMjNmY2E2YTI1MTU0MzMzNzMzMjA0MzM5ODAyNTEwNzIwCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgU2VwIDkgMTc6NTI6NDcgMjAwOCArMDkwMAoKICAgIGFkZCBib2FyZF9ldGhfaW5pdCgpIGZvciBzaDc3ODVsY3IgYm9hcmQKCiAgICBGaXggdGhlIHByb2JsZW0gdGhhdCBjYW5ub3Qgd29yayBSVEw4MTY5IG9uIHNoNzc4NWxjciBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+Cgpjb21taXQgN2I3YTg2OWE4YmEzYmQ2ZDliZmZiNzQ4YzkxMjMyMTQxMzMwZjUxNApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgNiAxNjowODo0MSAyMDA4IC0wNTAwCgogICAgbXRkOiBTUEkgRmxhc2g6IFN1cHBvcnQgdGhlIFNUTWljcm8gRmxhc2gKCiAgICBBZGQgTVREIFNQSSBGbGFzaCBzdXBwb3J0IGZvciBNMjVQMTYsIE0yNVAyMCwgTTI1UDMyLAogICAgTTI1UDQwLCBNMjVQNjQsIE0yNVA4MCwgTTI1UDEyOC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGJjMDdjMzY4MDc2NTYwZWQ3ZmE0YzlmOTg3YzcxYTg1MjE0ODhhOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgOSAxNzo1NTozMSAyMDA4ICswMjAwCgogICAgdHJhYjogZml4IGJ1aWxkIHByb2JsZW0gYWZ0ZXIgY2hhbmdlIHRvIHVzZSBkb19kaXYoKQoKICAgIFdlIG11c3QgbGluayB3aXRoIGxpYmdlbmVyaWMgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2IyMGZkODNjNzNjMjJhY2ZjYjBjNjY2M2JlNzQ3YmQ1YzhiNzAxMQpBdXRob3I6IFJ5YW4gQ0hFTiA8cnlhbi5jaGVuQHN0LmNvbT4KRGF0ZToJV2VkIEF1ZyAyMCAxMzowMDoxNyAyMDA4IC0wNDAwCgogICAgQ29ycmVjdCBkcnZfdXNiX2tiZF9pbml0IGZ1bmN0aW9uCgogICAgVGhlIHBhdGNoIGlzIHRoYXQgY2hlY2sgaWYgdXNiX2dldF9kZXZfaW5kZXgoKSBmdW5jdGlvbiByZXR1cm4gdmFsaWQKICAgIHBvaW50ZXIuIElmIHZhbGlkLCBjb250aW51ZS4gT3RoZXJ3aXNlIHJldHVybiAtMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSeWFuIENoZW4gPHJ5YW4uY2hlbkBzdC5jb20+CiAgICBBY2tlZC1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBlYmExZjJmYzc1ZjEyOGE5YTZjMTMyOGQ3ODY5OTZhOTNmZDdhNzA3CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVdlZCBBdWcgMjAgMTE6MjI6MDIgMjAwOCArMDIwMAoKICAgIE1ha2UgdXNiLXN0b3AoKSBzYWZlIHRvIGNhbGwgbXVsdGlwbGUgdGltZXMgaW4gYSByb3cuCgogICAgQSByZWNlbnQgY29tbWl0ICg5MzY4OTdkNGQxMzY1NDUyYmJiZGY4NDMwZGI1ZTc3NjllZjA4ZDM4KQogICAgZW5hYmxlZCB0aGUgdXNiX3N0b3AoKSBjb21tYW5kIGluIGNvbW1vbi9jbWRfYm9vdG0uYyB3aGljaCB3YXMKICAgIG5vdCBlbmFibGVkIGZvciBzb21lIHRpbWUsIGJlY2F1c2Ugbm8gYm9hcmQgZGlkIGFjdHVhbGx5IHNldCB0aGUKICAgIENGR19DTURfVVNCIGZsYWcuIFNvLCBub3cgdGhlIHVzYl9zdG9wKCkgaXMgZXhlY3V0ZWQgYmVmb3JlCiAgICBsb2FkaW5nIHRoZSBsaW51eCBrZXJuZWwuCgogICAgSG93ZXZlciwgdGhlIHVzYl9vaGNpIGRyaXZlciBoYW5ncyB1cCAoYXQgbGVhc3Qgb24gQVQ5MVNBTSkgaWYgdGhlCiAgICBkcml2ZXIgaXMgc3RvcHBlZCB0d2ljZSAoZS5nLiB0aGUgcGVyaXBoZXJhbCBjbG9jayBpcyBzdG9wcGVkIG9uIEFUOTEpLgogICAgSWYgc29tZSBvdGhlciBwaWVjZSBvZiBjb2RlIGNhbGxzIHVzYl9zdG9wKCkgYmVmb3JlIHRoZSBib290bSBjb21tYW5kLAogICAgdGhpcyBjb21tYW5kIHdpbGwgaGFuZ3VwIHRoZSBzeXN0ZW0gZHVyaW5nIGJvb3QuCiAgICAodXNiIHN0YXJ0IGFuZCBzdG9wIGlzIHR5cGljYWxseSB1c2VkIHdoaWxlIGJvb3RpbmcgZnJvbSB1c2IgbWVtb3J5IHN0aWNrKQoKICAgIEJ1dCwgc3RvcHBpbmcgdGhlIHVzYiBzdGFjayB0d2ljZSBpcyB1c2VsZXNzIGFueXdheSwgYW5kIGEgZmxhZyBhbHJlYWR5CiAgICBleGlzdGVkIHRoYXQga2VwdCB0cmFjayBvbiB0aGUgdXNiX2luaXQoKS91c2Jfc3RvcCgpIGNhbGxzLgogICAgU28sIHdlIG5vdyBjaGVjayBpZiB0aGUgdXNiIHN0YWNrIGlzIHJlYWxseSBzdGFydGVkIGJlZm9yZSB3ZSBzdG9wIGl0LgoKICAgIFRoaXMgcHJvYmxlbSBpcyBub3cgZml4ZWQgaW4gYm90aCB0aGUgdXBwZXIgYXMgbG93LWxldmVsIGxheWVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMmM4Y2NmMjcyOGY1ZTY3ZDk5MWNlY2Y3NmM0MDU3ZGI3NWE4N2I2NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgOSAxNjo1NTo0NyAyMDA4ICswMjAwCgogICAgTWFrZWZpbGU6IGZpeCBidWcgaW50cm9kdWNlZCBieSBjb21taXQgNDdmZmQ2YzIKCmNvbW1pdCA4ODBmNmE1ZDc1OTZmNDJkYjVmZjg4MDNiNzk3Yjc4ZWM1YjE0NmUwCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVR1ZSBTZXAgOSAxMDowMDozMyAyMDA4IC0wNDAwCgogICAgcHBjNHh4OiBwcGM0NDAtZ2VuZXJpYy1BTEw6IEZpeCBvdXQgb2YgdHJlZSBidWlsZCB2MgoKICAgIFRoaXMgcGF0Y2ggc29sdmVzIHRoZSBwcm9ibGVtcyBjb21waWxpbmcgbWw1MDcsIHY1ZngzMHRldmFsIGFuZAogICAgcHBjNDQwLWdlbmVyaWMgb3V0IG9mIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+Cgpjb21taXQgNDdiZWJlMzRjYTRlMzNiYWIwZTgyMmU0Y2VlYmJlYzI1OTBjY2JjYgpBdXRob3I6IE7DrWNvbGFzIENhcm5laXJvIExlYmVkZW5jbyA8bmljb2xhcy5sZWJlZGVuY29AdGFza3Npc3RlbWFzLmNvbS5icj4KRGF0ZToJVGh1IFNlcCA0IDE1OjM1OjQ2IDIwMDggLTAzMDAKCiAgICBGaXggZGV2X3ByaW50IHdoZW4gY2FsbGVkIGZyb20gdXNiX3N0b3JfaW5mbyAodXNiIHN0b3JhZ2UgY29tbWFuZCkKCiAgICBGaXggb3V0cHV0IG9mIHRoZSB1c2Igc3RvcmFnZSBjb21tYW5kLiBJdCB3YXMgcHJpbnRpbmcgIkRldmljZSAwOiBub3QKICAgIGF2YWlsYWJsZSIgYmVjYXVzZSBJRl9UWVBFX1VTQiB3YXMgbm90IGluY2x1ZGVkIGludG8gdGhlIHN3aXRjaAogICAgc3RhdGVtZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgTGViZWRlbmNvIDxuaWNvbGFzLmxlYmVkZW5jb0B0YXNrc2lzdGVtYXMuY29tLmJyPgoKY29tbWl0IGE0ZjI0MzQ1MmNjOGNlMGMyYzliNTFhMjUyMGRiNGJkZTVmNDcyZGUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDkgMTI6NTg6MTYgMjAwOCArMDIwMAoKICAgIEZJVDogbWFrZSBpbWluZm8gY2hlY2sgaGFzaGVzIG9mIGFsbCBpbWFnZXMgaW4gRklULCByZXR1cm4gMSBvbiBmYWlsZWQgY2hlY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkxOWY1NTBkYzExYTEzYWJmMDFjNmJjNzEzYzk2OGRlNzkwYjhkN2MKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDkgMTI6NTg6MTUgMjAwOCArMDIwMAoKICAgIEZJVDogYWRkIGFiaWxpdHkgdG8gY2hlY2sgaGFzaGVzIG9mIGFsbCBpbWFnZXMgaW4gRklULCBpbXByb3ZlIG91dHB1dAoKICAgIC0gYWRkIGZ1bmN0aW9uIGZpdF9hbGxfaW1hZ2VfY2hlY2tfaGFzaGVzKCkgdGhhdCB2ZXJpZmllcyBpZiBhbGwKICAgICAgaGFzaGVzIG9mIGFsbCBpbWFnZXMgaW4gdGhlIEZJVCBhcmUgdmFsaWQKICAgIC0gaW1wcm92ZSBvdXRwdXQgb2YgZml0X2ltYWdlX2NoZWNrX2hhc2hlcygpIHdoZW4gdGhlIGhhc2ggY2hlY2sgZmFpbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFkZTFmYTQwODk2N2NlZjY4MDRiYjA0NmI5MDQxMTQ1MTliYjM2ZjAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gU2VwIDggMjA6NTQ6MzkgMjAwOCArMDIwMAoKICAgIHFlbXVfbWlwczogVXBkYXRlIGxpbnV4IGJvb3RtIHRvIHN1cHBvcnQgZHluYW1pYyBjbWRsaW5lCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmNWVkOWUzOTA4OGVjZmE1YTVmM2VmNDdiMDhlNWJkYTc4OTBkNzY0CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIFNlcCA4IDE0OjU2OjQ5IDIwMDggLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgYm9vdGluZyBvZiBJTlRFR1JJVFkgb3BlcmF0aW5nIHN5c3RlbSB1SW1hZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA3MmYxYjY1ZjFiNjhiYzZlZDBkMTgyZWRhMWYzZDZjZjUxYjY0MTRhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIFNlcCA4IDIxOjAxOjI5IDIwMDggKzAyMDAKCiAgICBtaXBzL2Jvb3RtOiBGaXggdHlwbyBpbiBjb21taXQgYzRmOTQxOWMsICJpbml0cmRfc3RhcnQiIHJlcGxhY2VkIGJ5ICJpbWFnZXMtPnJkX3N0YXJ0IgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOWJhMmUyYzgxOTEzNTNkNzViMmQ1MzVlNjcyYTEyNWJlN2I4NGMwMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBTZXAgOCAxMzo1NzoxMiAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGJvb3RpbmcgQVJUT1MgaW1hZ2VzCgogICAgUGFudGVsaXMgQW50b25pb3Ugc3RhdGVkOgoJQUZBSUssIGl0IGlzIHN0aWxsIHVzZWQgYnV0IHRoZSBwcm9kdWN0cyB1c2luZyBQUEMgYXJlIGxvbmcgZ29uZS4KCU51a2UgaXQgcGx6IChmcm9tIG9yYml0KS4KCiAgICBTbyByZW1vdmUgaXQgc2luY2UgaXQgY2xlYW5zIHVwIGEgdXNhZ2Ugb2YgZW52X2dldF9jaGFyIG91dHNpZGUgb2YKICAgIHRoZSBlbnZpcm9ubWVudCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDdmZmQ2YzJmYzcyYjQ2ZGFhOWQ1ZDU5ZWVkYjg5NGZhYjJiN2VlMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgOSAxNTo0NToxOCAyMDA4ICswMjAwCgogICAgTWFrZWZpbGU6IGNvbXBpbGUgYW5kIGxpbmsgZWFjaCBtb2R1bGUganVzdCBvbmNlCgogICAgU2V2ZXJhbCBzb3VyY2UgZmlsZXMgbmVlZCB0byBiZSBjb21waWxlZCBhbmQgbGlua2VkIHdoZW4gb25lIG9yIG1vcmUKICAgIGNvbmZpZyBvcHRpb25zIGFyZSBzZWxlY3RlZC4gVG8gYWxsb3cgZm9yIGVhc3kgc2VsZWN0aW9uIGluIHRoZQogICAgTWFrZWZpbGVzIHlldCB0byBhdm9pbGQgbXVsdGlwbGUgY29tcGlsYXRpb24gKHdoaWNoIGNvc3RzIGJ1aWxkIHRpbWUpCiAgICBhbmQgZXNwZWNpYWxseSBtdWx0aXBsZSBsaW5raW5nICh3aGljaCBjYXVzZXMgZXJyb3JzKSwgd2UgdXNlCiAgICAiQ09CSlMgPSAkKHNvcnQgQ09CSlMteSkiIHdoaWNoIGVsaW1pbmF0ZXMgZHVwbGljYXRlcy4KCiAgICBCeSBjb3VydGVzeSBvZiBEZXRsZXYgWnVuZGVsIHdobyBzdWdnZXN0ZWQgdGhpcyBhcHByb2FjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ4ZDAxOTJmZTg2OTk0OGZlZjE0YjQ2MGI1ZjBjODViY2E5MzM2OTMKQXV0aG9yOiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KRGF0ZToJTW9uIFNlcCA4IDE0OjMwOjUzIDIwMDggKzAyMDAKCiAgICBNb3ZlZCBjb25kaXRpb25hbCBjb21waWxlIGludG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KCmNvbW1pdCAyMGM5MjI2Y2I4Y2FiMDhhMTExZWU3M2RiMDRlNjJkOTQzZWUwYzk3CkF1dGhvcjogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+CkRhdGU6CU1vbiBTZXAgOCAxMDoxNzozMSAyMDA4ICswMjAwCgogICAgTWVyZ2VkIHNlcmlhbF9wbDAxMC5jIGFuZCBzZXJpYWxfcGwwMTEuYy4KCiAgICBUaGV5IG9ubHkgZGlmZmVyIGluIHRoZSBpbml0IGZ1bmN0aW9uLgogICAgVGhpcyBhbHNvIGFkZHMgdGhlIG1pc3Npbmcgd2F0Y2hkb2cgc3VwcG9ydCBmb3IgdGhlIFBMMDExLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgoKY29tbWl0IDA4MTdkNjg4ZjMwN2VlMmMwNTk4ZTc5MTc1Yzk0YTQwY2U5MDMzN2IKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJU3VuIFNlcCA3IDE3OjEwOjI3IDIwMDggLTA0MDAKCiAgICBSZW1vdmUgZ2FwIGZpbGwgaW4gc3JlYyBvYmplY3QgdjIKCiAgICBTUkVDIGZpbGVzIGRvIG5vdCBuZWVkIGdhcCBmaWxsOiBUaGUgbG9hZCBhZGRyZXNzIGlzIHNwZWNpZmllZCBpbiB0aGUKICAgIGZpbGUuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCBjYW4ndCBiZSBhdm9pZGVkIGluIGEgLmJpbiBvYmplY3QuIEl0IGhhcwogICAgbm8gaW5mb3JtYXRpb24gYWJvdXQgbWVtb3J5IGxvY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgoKY29tbWl0IDFkYzMwNjkzMWNhNWNlODdmMTM5MTZmYTcxNjViMDUyZDNhYTcxNGYKQXV0aG9yOiBNYXJrdXMgSGVpZGVsYmVyZyA8bWFya3VzLmhlaWRlbGJlcmdAd2ViLmRlPgpEYXRlOglTdW4gU2VwIDcgMjA6MTg6MjcgMjAwOCArMDIwMAoKICAgIFJFQURNRTogZml4IG1pc3Npbmcgc3ViZGlyZWN0b3J5IGluIHRoZSBkb2N1bWVudGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEhlaWRlbGJlcmcgPG1hcmt1cy5oZWlkZWxiZXJnQHdlYi5kZT4KCmNvbW1pdCAzZWY5NmRlZDM4YThkMzNiNThiOWZhYjljZDg3OWQ1MWRkYWM0Y2JkCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIFNlcCA3IDA3OjA4OjQyIDIwMDggKzEwMDAKCiAgICBVcGRhdGUgaTM4NiBjb2RlIChzYzUyMF9jZHApCgogICAgQXR0ZW1wdCB0byBicmluZyBpMzg2IC8gc2M1MjAgaW5saW5lIHdpdGggbWFzdGVyCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCA1NjA4NjkyMTA0ZWZhOGQ1NmRmODAzZGM3OWVhNDFhYzM2MDdlZWU1CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgU2VwIDQgMTM6MDE6NDkgMjAwOCArMDIwMAoKICAgIGZ3X2VudjogYWRkIE5BTkQgc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciBlbnZpcm9ubWVudCBpbiBOQU5EIHdpdGggYXV0b21hdGljIE5PUiAvIE5BTkQgcmVjb2duaXRpb24sCiAgICBpbmNsdWRpbmcgdW5hbGlnbmVkIGVudmlyb25tZW50LCBiYWQtYmxvY2sgc2tpcHBpbmcsIHJlZHVuZGFudCBlbnZpcm9ubWVudAogICAgY29weS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZGQ3OTQzMjNhMmExZWQ2YThhNWRmNTE3ODVjMzFiY2RlNjBhZDdjYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDkgMDk6NTA6MjQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IG91dC1vZi10cmVlIGJ1aWxkaW5nIG9mIENQQ0k0MDUgdmFyaWFudHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTlmNjMwNTg4ZTNmZGJkNjk4YTBhMjc5OGU1MmE4OTI0ZTg5OTU2MwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTU6NDI6MTEgMjAwOCArMDIwMAoKICAgIFJlbW92ZWQgaGFyZGNvZGVkIE14TVIgbG9vcCB2YWx1ZSBmcm9tIHVwbWNvbmZpZygpIGZvciBNUEM4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgZTY0OTg3YTg5MjM1M2YzZDQ5ZWIyNDJkOTk3ODIwZWY4ZjUzODkxMgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTo0MjoxMyAyMDA4ICswMjAwCgogICAgODV4eDogc29jcmF0ZXM6IEVuYWJsZSBMaW1lIHN1cHBvcnQuCgogICAgVGhpcyBwYXRjaCBhZGRzIExpbWUgR0RDIHN1cHBvcnQgdG9nZXRoZXIgd2l0aCBzdXBwb3J0IGZvciB0aGUgUFdNCiAgICBiYWNrbGlnaHQgY29udHJvbCB0aHJvdWdoIHRoZSB3ODM3ODJkIGNoaXAuICBUaGUgcmVzZXQgcGluIG9mIHRoZQogICAgbGF0dGVyIGlzIGF0dGFjaGVkIHRvIEdQSU8sIHNvIHdlIG5lZWQgdG8gcmVzZXQgaXQgaW4KICAgIGVhcmx5X2JvYXJkX2luaXRfci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgM2U3OWI1ODhiNTE5OWYzNTAxNmYxNzhmYzBkNWQxMjY2MzgyMDk3ZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDE1IDE1OjQyOjEyIDIwMDggKzAyMDAKCiAgICA4NXh4OiBTb2NyYXRlczogTWFqb3IgY29kZSB1cGRhdGUuCgogICAgLSBVcGRhdGUgdGhlIGxvY2FsIGJ1cyByYW5nZXMgaW4gdGhlIEZEVCBmb3IgTGludXggZm9yIHRoZSB2YXJpb3VzCiAgICAgIGRldmljZXMgY29ubmVjdGVkIHRvIHRoZSBsb2NhbCBidXMgdmlhIGNoaXAtc2VsZWN0LgoKICAgIC0gU2V0IHRoZSBMQ1JSX0RCWVAgYml0IGluIHRoZSBMQ1JSIGZvciBsb2NhbCBidXMgZnJlcXVlbmNpZXMKICAgICAgbG93ZXIgdGhhbiA2NiBNSHogYW5kIHVzZXMgSS9PIGFjY2Vzc29yIGZ1bmN0aW9ucyBjb25zZXF1ZW50bHkuCgogICAgLSBVUE0gZGF0YSB1cGRhdGUuCgogICAgLSBVcGRhdGUgb2YgZGVmYXVsdCBlbnZpcm9ubWVudCBhbmQgY29uZmlndXJhdGlvbi4JVXNlIEkyQyBtdWx0aWJ1cwogICAgICBhcyB3ZSBkbyBoYXZlIHR3byBJMkMgYnVzZXMuICBBbHNvIGVuYWJsZSBzZHJhbSBhbmQgZXh0MiBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBlOGQxODU0MWM2Y2VhYjgyMWY3NWZhYWIwMzE3NDBiMzNmZGJmYTRiCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxOCAxNjo1MjoyMyAyMDA4ICswMjAwCgogICAgVXBkYXRlIEZyZWVzY2FsZSA4NXh4IGJvYXJkcyB0byBzeXNfZWVwcm9tLmMKCiAgICBUaGUgbmV3IHN5c19lZXByb20uYyBzdXBwb3J0cyBib3RoIHRoZSBvbGQgQ0NJRCBFRVBST00gZm9ybWF0IGFuZCB0aGUgbmV3IE5YSUQKICAgIGZvcm1hdCwgYW5kIHNvIGl0IG9ic29sZXRlcyBib2FyZC9mcmVlc2NhbGUvY29tbW9uL2Nkc19lZXByb20uYy4gIEZyZWVzY2FsZQogICAgODZ4eCBib2FyZHMgYWxyZWFkeSB1c2Ugc3lzX2VlcHJvbS5jLCBzbyB0aGlzIHBhdGNoIG1pZ3JhdGVzIHRoZSByZW1haW5pbmcKICAgIEZyZWVzY2FsZSA4NXh4IGJvYXJkcyB0byB1c2UgaXQgYXMgd2VsbC4gIGNkc19lZXByb20uYyBpcyBkZWxldGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWFiMmJmMDIwMmM4NjIyN2UzZGNjOGE1YjU4OTQ2MDg3ZWJjYzFhZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgOSAxMDowODowMiAyMDA4ICswMjAwCgogICAgbGliX3BwYy9pbnRlcnJ1cHRzLmM6IG1ha2UgYm9hcmRfc2hvd19hY3Rpdml0eSgpIGEgd2VhayBmdW5jdGlvbgoKICAgIFRoaXMgYWxsb3dzIHRvIHVzZSBzaG93X2FjdGl2aXR5KCkgd2l0aG91dCBoYXZpbmcgdG8KICAgIGRlZmluZSBhbiBlbXB0eSBib2FyZF9zaG93X2FjdGl2aXR5KCkgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZTg3Njc4N2Y4NzQzODgzY2U1OGZlZDYxNTI1ZWFhMmYzNGRhNGM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCA5IDEwOjA2OjQ0IDIwMDggKzAyMDAKCiAgICBzdHh4dGM6IHJlbW92ZSBlbXB0eSBDT05GSUdfU0hPV19BQ1RJVklUWSBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk2NWRlMTA2YmE4OTAwMzcyYzhiMTZkYzYwZDVhY2FiN2Y5MjVlMzgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDkgMTA6MDM6NDcgMjAwOCArMDIwMAoKICAgIE5FVFRBMjogcmVtb3ZlIGVtcHR5IENPTkZJR19TSE9XX0FDVElWSVRZIGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmNjNjRmOWI1ZjY5MjM5YzhiMTk2OTU3MmI1YTNhNGFhYjdkZTViOQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTU6NDI6MTEgMjAwOCArMDIwMAoKICAgIFJlbW92ZWQgaGFyZGNvZGVkIE14TVIgbG9vcCB2YWx1ZSBmcm9tIHVwbWNvbmZpZygpIGZvciBNUEM4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgMzYyNDFjYTI5ZDQ4MDRhMTAwNmZiM2YyNjA2OWVmZmRhNTIwMjU4MQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTo0MjoxMyAyMDA4ICswMjAwCgogICAgODV4eDogc29jcmF0ZXM6IEVuYWJsZSBMaW1lIHN1cHBvcnQuCgogICAgVGhpcyBwYXRjaCBhZGRzIExpbWUgR0RDIHN1cHBvcnQgdG9nZXRoZXIgd2l0aCBzdXBwb3J0IGZvciB0aGUgUFdNCiAgICBiYWNrbGlnaHQgY29udHJvbCB0aHJvdWdoIHRoZSB3ODM3ODJkIGNoaXAuICBUaGUgcmVzZXQgcGluIG9mIHRoZQogICAgbGF0dGVyIGlzIGF0dGFjaGVkIHRvIEdQSU8sIHNvIHdlIG5lZWQgdG8gcmVzZXQgaXQgaW4KICAgIGVhcmx5X2JvYXJkX2luaXRfci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgN2E0Nzc1M2RkY2FlYmJmMjE0MjgwOTg0MmY3MGM1ZjcyM2JkOWRkYgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDE1IDE1OjQyOjEyIDIwMDggKzAyMDAKCiAgICA4NXh4OiBTb2NyYXRlczogTWFqb3IgY29kZSB1cGRhdGUuCgogICAgLSBVcGRhdGUgdGhlIGxvY2FsIGJ1cyByYW5nZXMgaW4gdGhlIEZEVCBmb3IgTGludXggZm9yIHRoZSB2YXJpb3VzCiAgICAgIGRldmljZXMgY29ubmVjdGVkIHRvIHRoZSBsb2NhbCBidXMgdmlhIGNoaXAtc2VsZWN0LgoKICAgIC0gU2V0IHRoZSBMQ1JSX0RCWVAgYml0IGluIHRoZSBMQ1JSIGZvciBsb2NhbCBidXMgZnJlcXVlbmNpZXMKICAgICAgbG93ZXIgdGhhbiA2NiBNSHogYW5kIHVzZXMgSS9PIGFjY2Vzc29yIGZ1bmN0aW9ucyBjb25zZXF1ZW50bHkuCgogICAgLSBVUE0gZGF0YSB1cGRhdGUuCgogICAgLSBVcGRhdGUgb2YgZGVmYXVsdCBlbnZpcm9ubWVudCBhbmQgY29uZmlndXJhdGlvbi4JVXNlIEkyQyBtdWx0aWJ1cwogICAgICBhcyB3ZSBkbyBoYXZlIHR3byBJMkMgYnVzZXMuICBBbHNvIGVuYWJsZSBzZHJhbSBhbmQgZXh0MiBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA0ZDJhZTcwZThjMzFjMjJlNTcxMGRmNWZmMjM2YjU1NjVlYTJjZjJjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIFNlcCA5IDAxOjIyOjM5IDIwMDggKzAyMDAKCiAgICBkaXNrLW9uLWNoaXA6IHJlbW92ZSBkdXBsaWNhdGUgZG9jX3Byb2JlIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzMjIxYjA3NGEwYWIxOTlmNmFlNDdjMTljYzIyZjQyZGRmM2VmODE5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIFNlcCA5IDAwOjU5OjQwIDIwMDggKzAyMDAKCiAgICBvbmVuYW5kX3Vib290OiBmaXggd2FybmluZzogJ3N0cnVjdCBtdGRfb29iX29wcycgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxM2I0ZGIwZTIxMDcxNzVhODYyMmViYjQ4NTI5ZmEzYWQ4ZTEyYzc1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIFNlcCA5IDAwOjU5OjM5IDIwMDggKzAyMDAKCiAgICByczVjMzcyOiBmaXggcnRjX3NldCBwcm90b3R5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFiYjhiMmVmMjcyMmJiYWVhM2NjNWQ0NjMyMWNlMWQ5OWY5YjU2ZjcKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUaHUgQXVnIDE0IDE0OjA4OjI4IDIwMDggKzAyMDAKCiAgICBBUk06IGZpeCB3YXJuaW5nOiB0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nCgogICAgVGhpcyBwYXRjaCBmaXhlcyB3YXJuaW5ncyBsaWtlIHRoaXM6CgogICAgc3RhcnQuUzowOiB3YXJuaW5nOiB0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nCgogICAgd2hpY2ggY29tZSBmcm9tIHNvbWUgQVJNIGNyb3NzIGNvbXBpbGVycyBhbmQgYXJlIGNhdXNlZCBieSBoYXJkLWNvZGVkCiAgICAod2l0aCAiLS13aXRoLWNwdT1hcm05IiBjb25maWd1cmF0aW9uIG9wdGlvbikgQVJNIHRhcmdldHMgKHdoaWNoCiAgICBzdXBwb3J0IEFSTSBUaHVtYiBpbnN0cnVjdGlvbnMpLCB3aGlsZSB0aGUgQVJNIHRhcmdldCBzZWxlY3RlZCBmcm9tCiAgICB0aGUgY29tbWFuZCBsaW5lICh3aXRoICItbWFyY2g9YXJtdjQiKSBkb2Vzbid0IHN1cHBvcnQgVGh1bWIKICAgIGluc3RydWN0aW9ucy4KCiAgICBUaGlzIHdhcm5pbmcgaXMgaXNzdWVkIGJ5IHRoZSBjb21waWxlciByZWdhcmRsZXNzIG9mIHRoZSByZWFsIHVzZSBvZgogICAgdGhlIFRodW1iIGluc3RydWN0aW9ucyBpbiBjb2RlLgoKICAgIFRvIGZpeCB0aGlzIHByb2JsZW0sIHdlIHVzZSBvcHRpb25zIGFjY29yZGluZyB0byBjb21waWxlciB2ZXJzaW9uCiAgICBiZWluZyB1c2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQyNjVjMzVmYmNiMjQ4ZTU4MTc5MDA3NjIxZDYxZDMyZDBiM2I4MmEKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUaHUgQXVnIDE0IDE0OjA4OjI4IDIwMDggKzAyMDAKCiAgICBBUk06IFVzZSBkb19kaXYoKSBpbnN0ZWFkIG9mIGRpdmlzaW9uIGZvciAibG9uZyBsb25nIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZmViZDEzYzY5Y2I2ODY1MjU3N2QxYTlmY2JkZTk1NGJmNzg0MTU1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxOCAxNjo1MjoyMyAyMDA4ICswMjAwCgogICAgVXBkYXRlIEZyZWVzY2FsZSA4NXh4IGJvYXJkcyB0byBzeXNfZWVwcm9tLmMKCiAgICBUaGUgbmV3IHN5c19lZXByb20uYyBzdXBwb3J0cyBib3RoIHRoZSBvbGQgQ0NJRCBFRVBST00gZm9ybWF0IGFuZCB0aGUgbmV3IE5YSUQKICAgIGZvcm1hdCwgYW5kIHNvIGl0IG9ic29sZXRlcyBib2FyZC9mcmVlc2NhbGUvY29tbW9uL2Nkc19lZXByb20uYy4gIEZyZWVzY2FsZQogICAgODZ4eCBib2FyZHMgYWxyZWFkeSB1c2Ugc3lzX2VlcHJvbS5jLCBzbyB0aGlzIHBhdGNoIG1pZ3JhdGVzIHRoZSByZW1haW5pbmcKICAgIEZyZWVzY2FsZSA4NXh4IGJvYXJkcyB0byB1c2UgaXQgYXMgd2VsbC4gIGNkc19lZXByb20uYyBpcyBkZWxldGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTA1NTE3MWVkMDViN2M0ODg1NzM3NDYzZDUyYjhkNmMwMTNiY2I1ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAyMzoyNjoyMiAyMDA4ICswMjAwCgogICAgbGliX2FybS9ib290bS5jOiBmaXggY29tcGlsZSB3YXJuaW5ncwoKICAgIGJvb3RtLmM6MTI4OiB3YXJuaW5nOiBsYWJlbCAnZXJyb3InIGRlZmluZWQgYnV0IG5vdCB1c2VkCiAgICBib290bS5jOjY1OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJlM2M4NjdkMGE2M2M1NjNhNTFlNjViNzc2OTczYjAwOGYxNmNlYzUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gU2VwIDggMjI6NDY6NDIgMjAwOCArMDIwMAoKICAgIG1sNTA3OiBmaXggb3V0IG9mIHRyZWUgYnVpbGQgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTg2M2ExNWE5OGYyM2I3OWYzNGEwZTRmOWU0NjViYzZkZjVkNTA0ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAyMjoxMDoyOCAyMDA4ICswMjAwCgogICAgY29tbW9uL2NtZF9ib290bS5jOiBmaXggcHJpbnRmKCkgZm9ybWF0IHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0Mzk0ZjlhOGM0MmJiMWIwYWJjNGZjMDRiZDU4MmQ0ZGI1ZjhiNzI2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDIyOjM3OjQ1IDIwMDggKzAyMDAKCiAgICBCTVcsIFBDSVBQQzIsIFBDSVBQQzYsIFJCQzgyOiBmaXggY29tcGlsZSB3YXJuaW5ncwoKICAgIG1pc3NpbmcgZG9jX3Byb2JlKCkgcHJvdG90eXBlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmM1ZTNjYzQ5OTQ4OTdkMzY0YjE0ODk0MmZmMjNlNDc3ODMxOThmNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAyMToyODoxNCAyMDA4ICswMjAwCgogICAgbWs0OHQ1OTogZml4IGNvbXBpbGUgcHJvYmxlbSBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBkMWUyMzE5NAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWZmODg5MzQ5ZDJhY2UxM2YxMGM5MzM1ZTA5MzY1ZmNlYzgyNDdjYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDE0OjExOjEyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IE1vdmUgcHBjNHh4IHNwZWNpZmljIHByb3RvdHlwZXMgdG8gcHBjNHh4IGhlYWRlcgoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgc29tZSA0eHggc3BlY2lmaWMgcHJvdG90eXBlcyBvdXQgb2YgaW5jbHVkZSBjb21tb24uaAogICAgdG8gYSBwcGM0eHggc3BlY2lmaWMgaGVhZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhYzUzZWU4MzE4Njc4MTkwYmYzYzY4ZGE0NzdhODRhNjU3ZDg2ZmIwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBTZXAgNSAxNTozNDowNCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQ1BDSTQwNShBQikgY29uZmlndXJhdGlvbgoKICAgIFRoaXMgcGF0Y2ggYWRkIEZEVCBzdXBwb3J0IGFuZCBjb21tYW5kIGxpbmUgZWRpdGluZyBjYXBhYmlsaXRpZXMKICAgIGZvciBDUENJNDA1IGFuZCBDUENJNDA1QUIgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdiMWZiY2FkZjczYTgzYjNiZWI5NGFiY2NkYTFjMzVlMmMwNzVhOTQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIFNlcCA1IDE1OjM0OjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgQ1BDSTQwNSBsaW5rZXIgc2NyaXB0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzY3ZjkxNTljNWM5NGNkMGNiMzEzNWI1YjgyODE0YWQxMjgxNmRkZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgU2VwIDUgMTU6MzQ6MDIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIENQQ0k0MDUgdmFyaWFudHMgaGFuZGxpbmcKCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBCT0FSRF9SRVZJU0lPTiB2YXJpYWJsZSBpbiBpbmNsdWRlL2NvbmZpZy5tawogICAgYnkgYSB1c2luZyBhIHRlbXBvcmFyeSBpbmNsdWRlIGZpbGUgaW4gdGhlIHBsYXRmb3JtIGRpcmVjdG9yeS4KCiAgICBUaGUgZm9ybWVyIHdheSBkb2VzIG5vdCB3b3JrIGFueW1vcmUgYW5kIHRoZSBsYXR0ZXIgaXMgYWxzbyB1c2VkIGJ5CiAgICBzb21lIG90aGVyIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMDcxZjAxZmQwOWU5YmYxY2YwOWRlMzdhNzQxNmFhY2NlNzFiYWUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gU2VwIDggMTA6MDE6NDggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIENPTkZJR19DUzg5NTJfUEhZIGRlZmluZQoKICAgIFNpbmNlIHRoaXMgZGVmaW5lIGlzIG9ubHkgdXNlZCBvbiBvbmUgYm9hcmQgdGhhdCB3YXMgbmV2ZXIgcmVhbGx5IGluCiAgICBwcm9kdWN0aW9uLCByZW1vdmluZyB0aGlzIGNvbXBpbGUgdGltZSBvcHRpb24gZG9lc24ndCBodXJ0IGFuZCBtYWtlcwogICAgdGhlIGNvZGUgbW9yZSByZWFkYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmNhODY0NmMxODYwYmJhNzQzMjZiZjkxNmE1YTMzODlhNWMwZDNiNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCA1IDE0OjExOjQwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGZvciBQSVA0MDUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgY29tcGlsYXRpb24gd2FybmluZyBmb3IgdGhlIFBJUDQwNSBib2FyZC4gSXQgbW92ZXMgdGhlCiAgICAjaWZuZGVmIENPTkZJR19DUzg5NTJfUEhZIGRlZmluZSBhIGxpdHRsZSBzbyB0aGF0IHRoZSB3YXJuaW5nIGRvZXNuJ3QKICAgIG9jY3VyIGFueW1vcmUuIEkgYW0gYSBsaXR0bGUgdW5zdXJlIGlmIHRoaXMgI2lmZGVmIGlzIGF0IHRoZSBjb3JyZWN0CiAgICBwbGFjZSBub3cgb3IgaWYgaXQgY291bGQgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5LiBUaGlzIG5lZWRzIHRvIGdldAogICAgdGVzdGVkIG9uIHRoZSBQSVA0MDUgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcyNWI1M2FjNjFmNGRmMzAyNmI4ZjY0ODllZjAwODBmZDI3ZDM4MTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNSAxNDowOTowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gd2FybmluZyBmb3IgY2FueW9ubGFuZHMgJiBnbGFjaWVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMwMmU1MmUwYjFkNGM3Zjk5NDk5MTcwOWQwY2I2YzNlYTYxMmNkYjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgU2VwIDUgMTQ6NDA6MjkgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5nIGluIG1wYzh4eHggZGRyIGNvZGUKCiAgICBjdHJsX3JlZ3MuYzogSW4gZnVuY3Rpb24gJ2NvbXB1dGVfZnNsX21lbWN0bF9jb25maWdfcmVncyc6CiAgICBjdHJsX3JlZ3MuYzo1MjM6IHdhcm5pbmc6ICdjYXNsYXQnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgogICAgY3RybF9yZWdzLmM6NTIzOiBub3RlOiAnY2FzbGF0JyB3YXMgZGVjbGFyZWQgaGVyZQoKICAgIEFkZCBhIHdhcm5pbmcgaW4gRERSMSBjYXNlIGlmIGNhc19sYXRlbmN5IGlzbid0IGEgdmFsdWUgd2Uga25vdyBhYm91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDFlMjMxOTQxNGVhNTIxOGJhODAxMTYzZTQ1MzBlY2YyZGZjYmYzNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgMSAyMzowNjoyMyAyMDA4ICswMjAwCgogICAgcnRjOiBhbGxvdyBydGNfc2V0IHRvIHJldHVybiBhbiBlcnJvciBhbmQgdXNlIGl0IGluIGNtZF9kYXRlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlZTk1MzZhMjhjYjE0OWJjYjZjNWRlZTlkMDhjNjJjOTFmNGM3MmQyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIFNlcCAxIDAxOjE2OjMzIDIwMDggKzAyMDAKCiAgICBhcDMyNXJ4YS9mYXZyLTMyLWV6a2l0OiBVc2UgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZiOTcxYzczZjE4MjI0OGNlMTAzNTAzZDc0ZmJjMDEwMGJiOGM4YjcKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTdW4gQXVnIDMxIDA1OjM3OjA0IDIwMDggKzA5MDAKCiAgICBjb25maWcubWs6IE1vdmUgYXJjaC1zcGVjaWZpYyBjb25kaXRpb24gdG8gJChBUkNIKV9jb25maWcubWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGVhODZiOWU2NGI4MTE3NTNkOWVhYmUwZjU2MGVlMTg5ZmJlNWQwYzEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDI5IDE5OjA4OjI5IDIwMDggLTA1MDAKCiAgICBQcmV2ZW50IGNyYXNoIGlmIHJhbmRvbS9pbnZhbGlkIHJhbWRpc2tzIGFyZSBwYXNzZWQgdG8gYm9vdG0KCiAgICBBZGRzIHJldHVybmluZyBhbiBlcnJvciBmcm9tIHRoZSByYW1kaXNrIGRldGVjdGlvbiBjb2RlIGlmCiAgICBpdHMgbm90IGEgcmVhbCByYW1kaXNrIChpbnZhbGlkKS4gIFRoZXJlIGlzIG5vIHJlYXNvbiB3ZSBjYW4ndAogICAganVzdCByZXR1cm4gYmFjayB0byB0aGUgY29uc29sZSBpZiB3ZSBkZXRlY3QgYW4gaW52YWxpZAogICAgcmFtZGlzayBvciBDUkMgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4ZTAyNDk0ZThmODZjOGYyZDczMjRiNWViOWU3NTI3MTEwNGEwMWVmCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDI5IDIxOjA0OjQ1IDIwMDggKzAyMDAKCiAgICBQcmV2ZW50IGNyYXNoIGlmIHJhbmRvbSBEVEIgYWRkcmVzcyBpcyBwYXNzZWQgdG8gYm9vdG0KCiAgICBUaGlzIHBhdGNoIGFkZHMgYm9vdG1fc3RhcnQoKSByZXR1cm4gdmFsdWUgY2hlY2suIElmCiAgICBlcnJvciBzdGF0dXMgaXMgcmV0dXJuZWQsIHdlIGRvIG5vdCBwcm9jZWVkIGZ1cnRoZXIgdG8KICAgIHByZXZlbnQgYm9hcmQgcmVzZXQgb3IgY3Jhc2ggYXMgd2Ugc3RpbGwgY2FuIHJlY292ZXIKICAgIGF0IHRoaXMgcG9pbnQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGNjMzQ3ODAxYWRkMjY4OWIxZWU1NGQyMWY2MmJjMTRlY2Y2ZTFkZDgKQXV0aG9yOiBBbmRyZXcgRHllciA8YWR5ZXJAcmlnaHRoYW5kdGVjaC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMTI6MzA6MzkgMjAwOCAtMDUwMAoKICAgIGNsZWFuIHVwIHNvbWUgI2lmICFkZWZpbmVkKCkgaW4gZHJpdmVycy92aWRlby9jZmJfY29uc29sZS5jCgogICAgcmVhcnJhbmdlIHNvbWUgI2lmICFkZWZpbmVkKCkgLyAjZWxzZSAvICNlbmRpZiBzdGF0ZW1lbnRzIHRvIHJlbW92ZQogICAgdGhlIG5lZ2F0aXZlIGxvZ2ljLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KCmNvbW1pdCBjODNmNGMyZDc3ZjA3MTc0ZGNkNmJlZjdlODdhMGY3MDE3YmU3YzMzCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CUZyaSBBdWcgMjkgMDk6MDI6MjAgMjAwOCArMDkwMAoKICAgIGFwb2xsb246IHVzZSB0aGUgbGFzdCBtZW1vcnkgYXJlYSBmb3IgdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBhNmYyZTQ1NWI3NzRkMGM1ZDU2ZTQ0ZTU2NjFkZjlhZGI2OWI2ZTA3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMjggMTM6NTA6NDIgMjAwOCArMDIwMAoKICAgIFRRTTgyNzI6IG1vdmUgTkFORCBwYXJ0IGluIHNlcGVyYXRlIEZpbGUKCiAgICBJIGRpZG4ndCB0cnkgdG8gdXNlIGRyaXZlcnMvbXRkL25hbmQvZnNsX3VwbS5jIGZvciB0aGUgTkFORCBkcml2ZXIsCiAgICBiZWNhdXNlIEkgaGF2ZSBubyBsb25nZXIgYWNjZXNzIHRvIHRoZSBoYXJkd2FyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ODRmOTc5ZjdlZTkxNGUzMmQ0MDg3MzljYmRkMmM0NDU3ZWMxOGI4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMjggMTM6NDg6MzYgMjAwOCArMDIwMAoKICAgIFRRTTgyNzI6IEZpeCBjb21waWxpbmcgZXJyb3IgZm9yIHRoZSBUUU04MjcyIGJvYXJkLgoKICAgIEZpeCBjb21waWxlIHByb2JsZW1zIGNhdXNlZCBieQogICAgY29tbWl0ICBjZmE0NjBhZGZkZWZjYzMwZDEwNGUxYTllZTQ0OTk0ZWUzNDliYjdiCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMWE3ZjhjY2VjOTgxNjQ4Y2NkMzhmY2EyNTM1NDkwNTgyZWVlMDhlNgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglXZWQgQXVnIDI3IDE0OjQ1OjIwIDIwMDggKzA5MDAKCiAgICBBZGQgSkZGUzIgY29tbWFuZCBzdXBwb3J0IG9uIE9uZU5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGY1YzNiYTc5Nzg4YjBlMzliYWFiNzAyNmQzNzRmZTM3NWRkMWE0M2YKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KRGF0ZToJTW9uIEF1ZyAyNSAxOToyMTozMCAyMDA4ICswMTAwCgogICAgQWxsb3cgY29uc29sZSBpbnB1dCB0byBiZSBkaXNhYmxlZAoKICAgIEFkZGVkIG5ldyBDT05GSUdfRElTQUJMRV9DT05TT0xFIGRlZmluZSBhbmQgR0RfRkxHX0RJU0FCTEVfQ09OU09MRS4KCiAgICBXaGVuIENPTkZJR19ESVNBQkxFX0NPTlNPTEUgaXMgZGVmaW5lZCwgc2V0dGluZwogICAgR0RfRkxHX0RJU0FCTEVfQ09OU09MRSBkaXNhYmxlcyBhbGwgY29uc29sZSBpbnB1dCBhbmQgb3V0cHV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgoKY29tbWl0IDJiMjJkNjA4ZjM3MDU2NWM4N2Y1NTkyOGI1MjQyMDcwMzE0MTljMTEKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJV2VkIEp1bCAzMCAxMjozOToyOSAyMDA4ICswMjAwCgogICAgbG9hZHM6IGFsbG93IG5lZ2F0aXZlIG9mZnNldHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KCmNvbW1pdCBlOTBmYjZhZmFiMmMwYzA3NGRmYjY3YmFjYjRkZTE3OWViMTg4YTI0CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgU2VwIDQgMTE6MTk6MDUgMjAwOCArMDIwMAoKICAgIFVTQiBFSENJOiByZXNldCByb290IGh1YgoKICAgIFNvbWUgb2YgbXVsdGktZnVuY3Rpb24gVVNCIGNvbnRyb2xsZXJzIChlLmcuIElTUDE1NjIpIGFsbG93IHJvb3QgaHViCiAgICByZXNldHRpbmcgb25seSB2aWEgRUhDSSByZWdpc3RlcnMuIFNvLCB0aGlzIHBhdGNoIGFkZHMgdGhlCiAgICBjb3JyZXNwb25kaW5nIGtpbmQgb2YgcmVzZXQgdG8gT0hDSSdzIGhjX3Jlc2V0KCkgaWYgdGhlIG5ld2x5CiAgICBpbnRyb2R1Y2VkIENPTkZJR19QQ0lfRUhDSV9ERVZOTyBvcHRpb24gaXMgc2V0IChlLmcuIGZvciBTb2NyYXRlcwogICAgYm9hcmQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDU4NzVkMzU4ZjAyNWMxYjA0MmQ4YTBmMDgzODRiNzU2ZGU3MjU2YzkKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTU6NDI6MDkgMjAwOCArMDIwMAoKICAgIFJYIDgwMjUgUlRDOiBhbmFseXplIDEyLzI0LWhvdXIgbW9kZSBmbGFnIGluIHJ0Y19nZXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgM2UzYzAyNmVkNzQ2YTI4NGM2ZjBlZjEzOWIyNmQ4NTk5MzlkZTdlOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCA1IDEwOjQ3OjQ2IDIwMDggKzAyMDAKCiAgICBkZXZpY2VzOiBVc2UgbGlzdF9hZGRfdGFpbCgpIGluc3RlYWQgb2YgbGlzdF9hZGQoKSB0byByZWdpc3RlciBhIGRldmljZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHNwb3R0ZWQgb24gR2xhY2llci9DYW55b25sYW5kcyAoYW5kIG1vc3QKICAgIGxpa2VseSBsb3RzIG9mIG90aGVyIGJvYXJkIHBvcnRzKSwgdGhhdCBubyBzZXJpYWwgb3V0cHV0IHdhcyBzZWVuCiAgICBhZnRlciBjb25zb2xlIGluaXRpYWxpemF0aW9uIGluIGNvbnNvbGVfaW5pdF9yKCkuIFRoaXMgaXMgYmVjYXVzZSB0aGUKICAgIGxhc3QgYWRkZWQgY29uc29sZSBkZXZpY2Ugd2FzIHVzZWQgaW5zdGVhZCBvZiB0aGUgZmlyc3QgYWRkZWQuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0gYnkgdXNpbmcgbGlzdF9hZGRfdGFpbCgpIGluc3RlYWQgb2YKICAgIGxpc3RfYWRkKCkgdG8gcmVnaXN0ZXIgYSBkZXZpY2UuIFRoaXMgd2F5IHRoZSBmaXJzdCBhZGRlZCBjb25zb2xlCiAgICBpcyB1c2VkIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OGQ3ODIzNjg5NmQ2MmJiOGNhNzMwMmFmMzhkOGYxNDkzZWIyNjUxCkF1dGhvcjogVmljdG9yIEdhbGxhcmRvIDx2Z2FsbGFyZG9AYW1jYy5jb20+CkRhdGU6CVRodSBTZXAgNCAyMzo0OTozNiAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgc3VwcG9ydCBmb3IgR1BDUywgU0dNSUkgYW5kIE04OEUxMTEyIFBIWQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBHUENTLCBTR01JSSBhbmQgTTg4RTExMTIgUEhZIHN1cHBvcnQKICAgIGZvciB0aGUgQU1DQyBQUEM0NjBHVC9FWCBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY2YjZjNDU4NDBmOWI0NjcxZDJkOTcyNDNhMTJhMWYzZmZiNjQ3NjUKQXV0aG9yOiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KRGF0ZToJV2VkIFNlcCAzIDEyOjI2OjU5IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLaWxhdWVhIHRvIHVzZSBQUEM0eHggRERSIGF1dG9jYWxpYnJhdGlvbiByb3V0aW5lcwoKICAgIFNpZ25lZC1vZmYtYnk6IEFkYW0gR3JhaGFtIDxhZ3JhaGFtQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3NWQwYjgxZTg5NmU4NzM1YWUyNjM3MmNkMzg0Zjg3Y2JkMjRlNDEKQXV0aG9yOiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KRGF0ZToJV2VkIFNlcCAzIDEyOjI2OjI4IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IElCTSBNZW1vcnkgQ29udHJvbGxlciBERFIgYXV0b2NhbGlicmF0aW9uIHJvdXRpbmVzCgogICAgQWx0ZXJuYXRlIFNEUkFNIEREUiBhdXRvY2FsaWJyYXRpb24gcm91dGluZSB0aGF0IGNhbiBiZSBnZW5lcmljYWxseSB1c2VkCiAgICBmb3IgYW55IFBQQzR4eCBjaGlwcyB0aGF0IGhhdmUgdGhlIElCTSBTRFJBTSBDb250cm9sbGVyIGNvcmUgYWxsb3dpbmcgZm9yCiAgICBzdXBwb3J0IG9mIG1vcmUgRElNTS9tZW1vcnkgY2hpcCB2ZW5kb3JzIGFuZCBnZXRzIHRoZSBERFIgYXV0b2NhbGlicmF0aW9uCiAgICB2YWx1ZXMgd2hpY2ggZ2l2ZSB0aGUgYmVzdCByZWFkIGxhdGVuY3kgcGVyZm9ybWFuY2UgKFNEUkFNMF9SRENDLltSRFNTXSkuCgogICAgVHdvIGFsdGVybmF0ZSBTRFJBTSBERFIgYXV0b2NhbGlicmF0aW9uIGFsZ29yaXRtIGFyZSBwcm92aWRlZCBpbiB0aGlzIHBhdGNoLAogICAgIk1ldGhvZF9BIiBhbmQgIk1ldGhvZF9CIi4JRERSIGF1dG9jYWxpYnJhdGlvbiBNZXRob2RfQSBzY2FucyB0aGUgZnVsbCByYW5nZQogICAgb2YgcG9zc2libGUgUFBDNHh4CVNEUkFNIENvbnRyb2xsZXIgRERSIGF1dG9jYWxpYnJhdGlvbiB2YWx1ZXMgYW5kIHRha2VzIGEKICAgIGxvdCBsb25nZXIgdG8gcnVuIHRoYW4gTWV0aG9kX0IuICBNZXRob2RfQiBleGVjdXRlcyBpbiB0aGUgc2FtZSBhbW91bnQgb2YgdGltZQogICAgYXMgdGhlIGN1cnJlbnRseSBleGlzdGluZyBERFIgYXV0b2NhbGlicmF0aW9uIHJvdXRpbmUsIGkuZS4gMSBzZWNvbmQgb3Igc28uCiAgICBOb3JtYWxseSBNZXRob2RfQiBpcyB1c2VkIGFuZCBpdCBpcyBzZXQgYXMgdGhlIGRlZmF1bHQgbWV0aG9kLgoKICAgIFRoZSBjdXJyZW50IFUtQm9vdCBQUEM0eHggRERSIGF1dG9jYWxpYnJhdGlvbiBjb2RlIGNhbGlicmF0ZXMgdGhlIElCTSBTRFJBTQogICAgQ29udHJvbGxlciByZWdpc3RlcnMuW2JpdC1maWVsZF06CiAgICAxKQlTRFJBTTBfUlFEQy5bUlFGRF0KICAgIDIpCVNEUkFNMF9SRkRDLltSRkZEXQoKICAgIFRoaXMgYWx0ZXJuYXRlIFBQQzR4eCBERFIgYXV0b2NhbGlicmF0aW9uIGNvZGUgY2FsaWJyYXRlcyB0aGUgZm9sbG93aW5nCiAgICBJQk0gU0RSQU0gQ29udHJvbGxlciByZWdpc3RlcnMuW2JpdC1maWVsZF06CgogICAgMSkJU0RSQU0wX1dSRFRSLltXRFRSXQogICAgMikJU0RSQU0wX0NMS1RSLltDS1RSXQogICAgMykJU0RSQU0wX1JRREMuW1JRRkRdCiAgICA0KQlTRFJBTTBfUkZEQy5bUkZGRF0KCiAgICBhbmQgd2lsbCBhbHNvIHVzZSB0aGUgY2FsaWJyYXRlZCBzZXR0aW5ncyBvZiB0aGUgYWJvdmUgZm91ciByZWdpc3RlcnMgdGhhdAogICAgcHJvZHVjZSB0aGUgYmVzdCAiUmVhZCBTYW1wbGUgQ3ljbGUgU2VsZWN0IiB2YWx1ZSBpbiB0aGUgU0RSQU0wX1JEQ0MuW1JEU1NdCiAgICByZWdpc3Rlci5bYml0LWZpZWxkXS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMDdmNGE4MDMzYjYyNzBiODEwMzA0OWFkYjY0NTZmNjYwZmY0YTg5CkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CU1vbiBTZXAgMSAxMzowOTozOSAyMDA4IC0wNDAwCgogICAgcHBjNDR4OiBVbmlmaWNhdGlvbiBvZiB2aXJ0ZXg1IHBwNDQwIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcHJvdmlkZXMgYW4gdW5pZmljYXRlZCB3YXkgb2YgaGFuZGxpbmcgeGlsaW54IHY1IHBwYzQ0MCBib2FyZHMuCgogICAgSXQgdW5pZmljYXRlcyAzIGRpZmZlcmVudCB0aGluZ3M6CgogICAgMSkgU291cmNlIGNvZGUKICAgIEEgbmV3IGJvYXJkIGNhbGxlZCBwcGM0NDAtZ2VuZXJpYyBoYXMgYmVlbiBjcmVhdGVkLiBUaGlzIGJvYXJkIGluY2x1ZGVzCiAgICBhIGdlbmVyaWMgdGxiIGluaXRpYWxpemF0aW9uIChNYXBzIHRoZSB3aG9sZSBtZW1vcnkgaW50byB2aXJ0dWFsKSBhbmQKICAgIGRlZmluZXMgYm9hcmRfcHJlX2luaXQsIGNoZWNrYm9hcmQsIGluaXRkcmFtIGFuZCBnZXRfc3lzX2luZm8gd2Vha2x5LAogICAgc28sIHRoZXkgY2FuIGJlIHJlcGxhY2VkIGJ5IHNwZWNpZmljIGZ1bmN0aW9ucy4KCiAgICBJZiBhIG5ldyBib2FyZCBuZWVkcyB0byByZWRlZmluZSBhbnkgb2YgdGhlIHByZXZpb3VzIGZ1bmN0aW9ucwogICAgKHNwZWNpZmljIGluaXRpYWxpemF0aW9uKSBpdCBjYW4gY3JlYXRlIGEgbmV3IGRpcmVjdG9yeSB3aXRoIHRoZQogICAgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb25zIG5lZWRlZC4gKHNlZSB0aGUgZXhhbXBsZSBtbDUwNyBib2FyZCkuCgogICAgMikgQ29uZmlndXJhdGlvbiBmaWxlCiAgICBDb21tb24gY29uZmlndXJhdGlvbnMgYXJlIGxvY2F0ZWQgdW5kZXIgY29uZmlncy94aWxpbngtcHBjNDQwLmgsIHRoaXMKICAgIGhlYWRlciBmaWxlIGludGVycHJldGVzIHRoZSB4cGFyYW1ldGVycyBmaWxlIGdlbmVyYXRlZCBieSBFREsgYW5kCiAgICBjb25maWd1cmF0ZXMgdS1ib290IGluIGNvcnJlc3BvbmRlbmNlLiBFeGFtcGxlOiBpZiB0aGVyZSBpcyBhIFRlbWFjLAogICAgYWxsb3dzIENNRF9DT05GSUdfTkVUCiAgICBTcGVjaWZpYyBjb25maWd1cmF0aW9uIGFyZSBsb2NhdGVkIHVuZGVyIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZS4KICAgIChzZWUgdGhlIGV4YW1wbGUgbWw1MDcgYm9hcmQpCgogICAgMykgTWFrZWZpbGUKICAgIFNvbWUgd29yayBoYXMgYmVlbiBkb25lIGluIG9yZGVyIHRvIG5vdCBkdXBsaWNhdGUgd29yayBpbiB0aGUgTWFpbgogICAgTWFrZWZpbGUuIFBsZWFzZSBzZWUgdGhlIGF0dGFjaGVkIGNvZGUuCgogICAgSW4gb3JkZXIgdG8gc3VwcG9ydCBuZXcgYm9hcmRzIHRoZXkgY2FuIGJlIGltcGxlbWVudGVkIGluIHRoZSBuZXh0IHdheToKCiAgICBhKSBTaW1wbGUgR2VuZXJpYyBCb2FyZCAgKDkwJSBvZiB0aGUgdGltZSkKICAgIFVzaW5nIEVESyBnZW5lcmF0ZXMgYSBuZXcgeHBhcmFtZXRlcnMuaCBmaWxlLCByZXBsYWNlCiAgICBwcGM0NDAtZ2VuZXJpYy94cGFyYW1ldGVycy5oICBhbmQgcnVuIG1ha2UgeGlsaW54LXBwYzQ0MC1nZW5lcmljX2NvbmZpZwogICAgJiYgbWFrZQoKICAgIGIpIFNpbXBsZSBCb2FyZHMgd2l0aCBzcGVjaWFsIHUtYm9vdCBwYXJhbWV0ZXJzICg5ICUgb2YgdGhlIHRpbWUpCiAgICBDcmVhdGUgYSBuZXcgZmlsZSB1bmRlciBjb25maWdzIGZvciBpdCAodXNlIG1sNTA3LmggYXMgZXhhbXBsZSkgYW5kCiAgICBjaGFuZ2UgeW91ciBwYXJhbWF0ZXJzLiBDcmVhdGUgYSBuZXcgTWFrZWZpbGUgcGFyYWdyYXBoIGFuZCBjb21waWxlCgogICAgYykgQ29tcGxleCBib2FyZHMgKDElIG9mIHRoZSB0aW1lKQogICAgQ3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIGJvYXJkLCBsaWtlIHRoZSBtbDUwNwoKICAgIEZpbmFsbHksIGl0IGFkZHMgc3VwcG9ydCBmb3IgdGhlIEF2bmV0IEZYMzBUIEV2YWx1YXRpb24gYm9hcmQsIGZvbGxvd2luZwogICAgdGhlIG5ldyBnZW5lcmljIHN0cnVjdHVyZToKCiAgICBDaGVhcCBib2FyZCBieSBBdm5ldCBmb3IgZXZhbHVhdGluZyB0aGUgVmlydGV4NSBGWCB0ZWNobm9sb2d5LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvcjoKICAgICAtIFVhcnRMaXRlCiAgICAgLSAxNk1CIEZsYXNoCiAgICAgLSA2NE1CIFJBTQoKICAgIFByaW9yIHVzaW5nIFUtYm9vdCBpbiB0aGlzIGJvYXJkLCByZWFkIGNhcmVmdWxseSB0aGUgRVJSQVRBIGJ5IEF2bmV0CiAgICB0byBzb2x2ZSBzb21lIG1lbW9yeSBpbml0aWFsaXphdGlvbiBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjRhYzFlYjVhZmFmY2VkNDliMzI3NDI1YWQxODE0YjJkYzQyMmQ2ZQpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDIgMTU6MjE6MTYgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCBtcGM4MzEzIGluLXRyZWUgYnVpbGRpbmcgd2l0aCBOQU5ECgogICAgYW5kIGFkZCBtcGM4MzEzIE5BTkQgYnVpbGQgdG8gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZWIyYTQ0ZTI3OTE5ZmRjNjAxZTBjMDU0MDRiMjk4YTc2MDJjMGUzCkF1dGhvcjogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMjggMTQ6MDk6MjUgMjAwOCAtMDcwMAoKICAgIG1wYzgzeHg6IGNsZWFuIHVwIGNhY2hlIG9wZXJhdGlvbnMgYW5kIHVubG9ja19yYW1faW5fY2FjaGUoKSBmdW5jdGlvbnMKCiAgICBDbGVhbnMgdXAgc29tZSBsYXRlbnQgaXNzdWVzIHdpdGggdGhlIGRhdGEgY2FjaGUgY29udHJvbCBzbyB0aGF0CiAgICBkY2FjaGVfZW5hYmxlKCkgYW5kIGRjYWNoZV9kaXNhYmxlKCkgd2lsbCB3b3JrIHJlbGlhYmx5IChhZnRlcgogICAgdW5sb2NrX3JhbV9pbl9jYWNoZSgpIGhhcyBiZWVuIGNhbGxlZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDY0OTcwNTZhZTNiMWU4MWU3MzZlOWNmM2ExNzA0NzJjNWQ5NzE5ZgpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDI4IDE0OjA5OjE5IDIwMDggLTA3MDAKCiAgICBtcGM4M3h4OiBTdG9yZSBhbmQgZGlzcGxheSBBcmJpdGVyIEV2ZW50IFJlZ2lzdGVyIHZhbHVlcwoKICAgIFJlY29yZCB0aGUgQXJiaXRlciBFdmVudCBSZWdpc3RlciB2YWx1ZXMgYW5kIG9wdGlvbmFsbHkgZGlzcGxheSB0aGVtLgoKICAgIFRoZSBBcmJpdGVyIEV2ZW50IFJlZ2lzdGVyIGNhbiByZWNvcmQgdGhlIHR5cGUgYW5kIGVmZmVjdGl2ZSBhZGRyZXNzIG9mCiAgICBhbiBhcmJpdGVyIGVycm9yLCBldmVuIHRocm91Z2ggYW4gSFJFU0VULiBUaGlzIHBhdGNoIHN0b3JlcyB0aGUgdmFsdWVzIGluCiAgICB0aGUgZ2xvYmFsIGRhdGEgc3RydWN0dXJlLgoKICAgIERpc3BsYXkgb2YgdGhlIEFyYml0ZXIgRXZlbnQgcmVnaXN0ZXJzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBSU1IgdmFsdWUKICAgIGNhbiBiZSBlbmFibGVkIHdpdGggZGVmaW5lcy4gVGhlIEFyYml0ZXIgdmFsdWVzIHdpbGwgb25seSBiZSBkaXNwbGF5ZWQKICAgIGlmIGFuIGFyYml0ZXIgZXZlbnQgaGFzIG9jY3VyZWQgc2luY2UgdGhlIGxhc3QgUG93ZXIgT24gUmVzZXQsIGFuZCBlaXRoZXIKICAgIG9mIHRoZSBmb2xsb3dpbmcgZGVmaW5lcyBleGlzdDoKICAgICAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0FFUl9CUklFRiAtIGRpc3BsYXkgb25seSB0aGUgYXJiaXRlciBhZGRyZXNzIGFuZAoJCQkJCWFuZCB0eXBlIHJlZ2lzdGVyIHZhbHVlcwogICAgICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQUVSX0ZVTEwgIC0gZGlzcGxheSBhbmQgaW50ZXJwcmV0IHRoZSBhcmJpdGVyCgkJCQkJZXZlbnQgcmVnaXN0ZXIgdmFsdWVzCgogICAgQWRkcmVzcyBPbmx5IHRyYW5zYWN0aW9ucyBhcmUgb25lIG9mIHRoZSB0cmFwcGVkIGV2ZW50cyB0aGF0IGNhbiByZWdpc3RlcgogICAgYXMgYW4gYXJiaXRlciBldmVudC4gVGhleSBvY2N1ciB3aXRoIHNvbWUgY2FjaGUgbWFuaXB1bGF0aW9uIGluc3RydWN0aW9ucwogICAgaWYgdGhlIEhJRDBfQUJFIChBZGRyZXNzIEJyb2FkY2FzdCBFbmFibGUpIGlzIHNldCBhbmQgdGhlIG1lbW9yeSByZWdpb24KICAgIGhhcyB0aGUgTUVNT1JZX0NPSEVSRU5DRSBXSU1HIGJpdCBzZXQuIFNldHRpbmc6CiAgICAgI2RlZmluZSBDT05GSUdfTUFTS19BRVJfQU8gLSBwcmV2ZW50cyB0aGUgYXJiaXRlciBmcm9tIHJlY29yZGluZyBhZGRyZXNzCgkJCQkgIG9ubHkgZXZlbnRzLCBzbyB0aGF0IGl0IGNhbiBzdGlsbCBjYXB0dXJlCgkJCQkgIG90aGVyIHJlYWwgcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFkZTUwYzdmYTFiMTZlZjk4YmUxN2U5YzNhZTI4NmFlY2Y0ZjU2MDUKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxNDowOToxMSAyMDA4IC0wNzAwCgogICAgbXBjODN4eDogdXNlIHI0IGluc3RlYWQgb2YgcjIgaW4gbG9ja19yYW1faW5fY2FjaGUgYW5kIHVubG9ja19yYW1faW5fY2FjaGUKCiAgICBUaGlzIGlzIG5lZWRlZCBpbiB1bmxvY2tfcmFtX2luX2NhY2hlKCkgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbSBDIGFuZAogICAgd2lsbCBjb3JydXB0IHRoZSBzbWFsbCBkYXRhIGFyZWEgYW5jaG9yIHRoYXQgaXMga2VwdCBpbiBSMi4KCiAgICBsb2NrX3JhbV9pbl9jYWNoZSgpIGlzIG1vZGlmaWVkIHNpbWlsYXJseSBhcyBnb29kIGNvZGluZyBwcmFjdGljZSwgYnV0CiAgICBpcyBub3QgY2FsbGVkIGZyb20gQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDlmZTg4MTczY2I0ZjdkMjkzNzk2ZmZlMTBjN2EwZDNkNDI2ZDhmOQpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDIyIDIzOjUyOjUwIDIwMDggLTA3MDAKCiAgICBNUEM4M1hYOiBGaXggR1BJTyBjb25maWd1cmF0aW9uIC0gc2V0IGdwaW8gbGV2ZWwgYmVmb3JlIGRpcmVjdGlvbgoKICAgIFNldCBEQVQgdmFsdWUgYmVmb3JlIERJUiB2YWx1ZXMgdG8gYXZvaWQgY3JlYXRpbmcgZ2xpdGNoZXMgb24gdGhlCiAgICBHUElPIHNpZ25hbHMuCgogICAgU2V0IGdwaW8gbGV2ZWwgcmVnaXN0ZXIgYmVmb3JlIGRpcmVjdGlvbiByZWdpc3RlciB0byBpbmhpYml0CiAgICBnbGl0Y2hlcyBvbiBoaWdoIGxldmVsIG91dHB1dCBwaW5zLgoKICAgIERpciBhbmQgZGF0YSBnZXRzIGNsZWFyZWQgYXQgcG93ZXJ1cCwgc28gaGlnaCBsZXZlbCBvdXRwdXQgbGluZXMgc2VlCiAgICBhIHNob3J0IGxvdyBwdWxzZSBiZXR3ZWVuIHNldHRpbmcgdGhlIGRpcmVjdGlvbiBhbmQgbGV2ZWwgcmVnaXN0ZXJzLgoKICAgIElzc3VlIHdhcyBzZWVuIG9uIGEgbmV3IGJvYXJkIHdpdGggdGhlIG5SZXNldCBsaW5lIG9mIHRoZSBOT1IgZmxhc2gKICAgIGNvbm5lY3RlZCB0byBhIEdQSU8uIFNldHRpbmcgdGhlIGRpcmVjdGlvbiByZWdpc3RlciBwdXRzIHRoZSBOT1IgZmxhc2gKICAgIGluIHJlc2V0IHNvIHRoZSBuZXh0IGluc3RydWN0aW9uIHRvIHNldCB0aGUgbGV2ZWwgY2Fubm90IGdldCBleGVjdXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIEtvcnNnYWFyZCA8amFjbWV0QHN1bnNpdGUuZGs+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwMDdjNTk3NWVlOTAwYWQ3MDk4M2IwNjgxZDMyNTFlMjIxZjgzMjEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgU2VwIDIgMDI6NTg6MzIgMjAwOCArMDIwMAoKICAgIGRvYy9xZW11X21pcHM6IGFkZCBkb2MgaG93dG8gZGVidWcgdS1ib290IHdpdGggZ2RiCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3ZGViM2IzZWNkMGU4MWVmMDliYjY4YWEwZWMyMzQ2ZjRhZTBhNDA1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBTZXAgMyAxNzoxNTo0NSAyMDA4ICswMjAwCgogICAgcHB4NHh4OiBGaXggYnJva2VuIERBU0FfU0lNIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIGluaXRkcmFtKCkgdG8gREFTQV9TSU0gYm9hcmRzIHRoYXQgaGFzIGJlZW4KICAgIHJlbW92ZWQgYWNjaWRlbnRhbGx5IGJ5IGEgcHJldmlvdXMgY29tbWl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlNDEwYWEzMGZiY2IxZDE5YTI2YmJmMWU4NGE5Y2E2MTAyZDUzNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMSAwODozNTozNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgcmVmZXJlbmNlIHRvIGNvbW1vbi9saXN0cy5vIGZyb20gc29tZSBlc2QgbGlua2VyIHNjcmlwdHMKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBkaXJlY3QgcmVmZXJlbmNlcyB0byBjb21tb24vbGlzdHMubyBmcm9tIHNvbWUKICAgIGVzZCBsaW5rZXIgc2NyaXB0cy4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgbGlzdHMgc291cmNlIHdhcyBtb3ZlZAogICAgYW5kIGlzIG5vdCBpbiB0aGUgImNvbW1vbiIgZGlyZWN0b3J5IGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk3YjA3MzRkNjVmOGEwYjAzZGYwYTMzNWEyYWRkYzc1OWRhNTYxMDcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDE2OjMzOjA1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBvYnNvbGV0ZSBvciB1bnVzZWQgZnVuY3Rpb25zIGZyb20gc29tZSBlc2QgYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIGluaXRkcmFtKCkgYW5kIHRlc3RkcmFtKCkgZnJvbSBtb3N0IGVzZCA0MDUgcGxhdGZvcm1zLgogICAgU29tZSBib2FyZHMgYWxzbyBoYXZlIGFuIGVtcHR5IGR1bW15IGltcGxlbWVudGF0aW9uIG9mCiAgICBtaXNjX2luaXRfZigpLiBUaGlzIGlzIGFsc28gcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMDkyY2UyMThjNTE0ZTVjY2IxODQ1MGFjNWFmNTAxZDk2ZDZlM2U5CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxNTowNzo1NCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgVk9NNDA1IGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICAtIHJlbW92ZSBQQ0kgY29kZQogICAgLSBhZGQgY29tbWFuZCBsaW5lIGVkaXRpbmcKICAgIC0gbWlub3IgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzMGM4MDBlMjhlOTZlYzdjM2M2OTM2YTBiZDFiOTQ2MWYzZTc3ZDQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDE1OjA3OjUzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBvYnNvbGV0ZSBpbml0ZHJhbSgpIGZ1bmN0aW9uIGZyb20gVk9NNDA1IGJvYXJkCgogICAgVGhpcyBwYXRjaCByZW1vdmVkIHRoZSBvYnNvbGV0ZSBpbml0ZHJhbSgpIGZ1bmN0aW9uIGZyb20KICAgIFZPTTQwNSBwbGF0Zm9ybSBmaWxlLgoKICAgIFNvbWUgbWlub3IgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZDRkZDdhOTQxYjIzMjdiOGMyZmM1MzViNzgyY2EzMDdmZjhiNmM4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxNTowNzo1MiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIFZPTTQwNSBsaW5rZXIgc2NyaXB0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmNhZmZkNTk3ZjZmNTE5MWIxMmNhNjZjMmE0Nzg5YmJkZWVhODVjMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtZkBlc2QuZXU+CkRhdGU6CVR1ZSBTZXAgMiAxNTowNzo1MSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgZm9yIFZPTTQwNSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWZAZXNkLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDllYzM2N2FhMmM1ZGNmNzk1NThhYTJiMjA5YjQ1ZDc2ODY2NTRjMTQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDExOjM2OjE0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgV3JhcCBsb25nIGxpbmVzIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxN2U2NWMyMWFkZmI2Mzk4MGU2YWZmODBiZmJkMmRmMGVlYjEyMDYwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxMTozNTo1NiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBFbmFibGUgVVNCIG9uIFBMVTQwNSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIFBDSS1PSENJIGNvbnRyb2xsZXIgb24gUExVNDA1IGJvYXJkLgoKICAgIEFsc28gdGhlIGRlZmF1bHQgQ1BVIGZyZXF1ZW5jeSBpcyB1cGRhdGVkIHRvIDI2NiBNSHogYW5kCiAgICBjb21tYW5kIGxpbmUgZWRpdGluZyBpcyBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQwZTQzZTNiODdkNTdiMmFjNzg2ZTI3ZjZlMjVhN2RmOTk0MGQ5M2IKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDExOjM1OjM1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgUExVNDA1IHBsYXRmb3JtIGZpbGUKCiAgICBUaGlzIHBhdGNoCiAgICAtIHdyYXBzIHNvbWUgbG9uZyBsaW5lcwogICAgLSByZW1vdmVzIHVudXNlZC9vYnNvbGV0ZSBmdW5jdGlvbnM6IG1pc2NfaW5pdF9mKCkgYW5kIGluaXRkcmFtKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWZAZXNkLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3NGNkYjFkMDYxNGFiNzgxMjhlMDczNWE1MWU3OTg4YTdiN2VhMzMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDExOjM1OjA0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgUExVNDA1IGxpbmtlciBzY3JpcHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWZAZXNkLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNiYzEwNTRjZWMyZjZiMjU4MjJmMzAxZWE5MjJhMTYyMzNiYWE0YzcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDExOjM0OjM2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBmZHQgc3VwcG9ydCBmb3IgUExVNDA1IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtZkBlc2QuZXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWEzZTQ4MGI3ODNiZmJjMTM5NTg2MjkzYTU0ZmI4NzVkN2M1YzVkNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDIgMTE6MzQ6MDggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogSW5jcmVhc2UgVS1Cb290IHNpemUgdG8gMzg0a0IgZm9yIFBMVTQwNSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWZAZXNkLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJlMWIwZDI3NzdlMTc5MTkxYTU3YjEzOGI2NjA1NDdhMTdlNTVhYWQKQXV0aG9yOiBKb2NoZW4gRnJpZWRyaWNoIDxqb2NoZW5Ac2NyYW0uZGU+CkRhdGU6CVR1ZSBTZXAgMiAxMToyNDo1OSAyMDA4ICswMjAwCgogICAgRG9uJ3QgdGZ0cCB0byB1bmtub3duIGZsYXNoCgogICAgSWYgYSBib2FyZCBoYXMgYSB2YXJpYWJsZSBudW1iZXIgb2YgZmxhc2ggYmFua3MsIHRoZXJlIGFyZSBlbXB0eSBlbnRyaWVzCiAgICBpbiBmbGFzaF9pbmZvW10gYW5kIENGR19ESVJFQ1RfRkxBU0hfVEZUUCBpcyBzZXQsIHRmdHAgYm9vdCBmYWlscyB3aXRoCiAgICAiT3V0c2lkZSBhdmFpbGFibGUgRmxhc2giLiBUaGlzIHBhdGNoIHNraXBzIGZsYXNoIGJhbmtzIHdpdGggdW5rbm93bgogICAgZmxhc2ggaWRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvY2hlbiBGcmllZHJpY2ggPGpvY2hlbkBzY3JhbS5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMzMzMTQ0NzBhYjMyYTNmNTQxMmJiNjFiNWYzZDZjMjE2Yzg4YmY5YgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxMzo0MDo0NCAyMDA4ICswOTAwCgogICAgbmV0OiBzbWM5MTF4OiBBZGQgcGt0X2RhdGFfcHVsbCBhbmQgcGt0X2RhdGFfcHVzaCBmdW5jdGlvbgoKICAgIFRoZSBSU0s3MjAzIGJvYXJkIGhhcyB0aGUgU01TQzkxMTggd2lyZWQgdXAgJ2luY29ycmVjdGx5Jy4KICAgIEJ5dGUtc3dhcHBpbmcgaXMgbmVjZXNzYXJ5LCBhbmQgc28gcG9vciBwZXJmb3JtYW5jZSBpcyBpbmV2aXRhYmxlLgogICAgVGhpcyBwcm9ibGVtIGNhbm5vdCBldmFkZSBieSB0aGUgc3dhcCBmdW5jdGlvbiBvZiBDSElQLCB0aGlzIGNhbgogICAgZXZhZGUgYnkgc29mdHdhcmUgQnl0ZS1zd2FwcGluZy4KICAgIEFuZCB0aGlzIGhhcyBwcm9ibGVtIGJ5IEZJRk8gYWNjZXNzIG9ubHkuIHBrdF9kYXRhX3B1bGwvcGt0X2RhdGFfcHVzaAogICAgZnVuY3Rpb25zIG5lY2Vzc2FyeSB0byBzb2x2ZSB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxMGVmYTAyNGI4ZmZkOWU2YWFjYTYzZGE4YmRkZmRmZmRjNjcyMjc0CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAyMDozNzowMCAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgRUVQUk8xMDAgRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJZGI2NDM2MAoJZGI2NDQ2MAoJa2F0bWFpCgl0YWlodQoJdGFpc2hhbgoJeXVjY2EKCWNwYzQ1CgljcHU4NwoJZVhhbGlvbgoJZWxwcGMKCWRlYnJpcwoJa3ZtZTA4MAoJbXBjODMxNWVyZGIKCWludGVncmF0b3JhcAoJaXhkcDQyNQoJb3hjCglwbTgyNgoJcG04MjgKCXBtODU0CglwbTg1NgoJcHBtYzd4eAoJc2MzCglzYzUyMF9zcHVuawoJc29yY2VyeQoJdHFtODI3MgoJdHFtODV4eAoJdXR4ODI0NQoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwogICAgQWxzbywgd3JhcHBlZCBjb250ZW50cyBvZiBwY2lfZXRoX2luaXQoKSBieSBDT05GSUdfUENJLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOGNhMGIzZjk5YzRmY2U3YTU5OWRjYWY5MmFlMDk1NDk2ZGM4YzhlMApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTA6NDU6NDQgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIFRVTElQIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIEFmZmVjdGVkIGJvYXJkczoKCWN1ODI0CgliYWI3eHgKCWFkY2lvcAoJZGFzYV9zaW0KCW1vdXNzZQoJbXBjODU0MGV2YWwKCW11c2Vua2kKCW12Ymx1ZQoJcGNpcHBjMi9wY2lwcGM2CglzYmM4MjQwCglzdHhzc2EKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFkMzM4MWNmNDE2NzEyMGRiNWM3Yjg4ZTQ5NzAyNDVlMWQ1YzBhMzIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjQ0OjE5IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBFMTAwMCBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CglhcDEwMDAKCW12YmNfcAoJUE04NTQKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDRmY2UyYWNlYWY4YWZkMzFhMjUyYmM3ODJjOWRiYzQ5N2JmNDA0ODcKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjQwOjUxIDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBwbGIyODAwIEV0aGVybmV0IGRyaXZlciB0byBib2FyZF9ldGhfaW5pdAoKICAgIEFmZmVjdGVkIGJvYXJkczoKCXB1cnBsZQoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgY29udHJvbGxlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZTFkNzQ4MGI1ZGUxZmQ0ODMwYmY3Y2Y1ZTIyMzdkM2IwODQ2ZDA4ZApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTA6Mzk6MTIgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIE1QQzV4eHhfRkVDIEV0aGVybmV0IGRyaXZlciB0byBDUFUgZGlyZWN0b3J5CgogICAgTW9kaWZpZWQgYm9hcmRfZXRoX2luaXQoKSBmdW5jdGlvbnMgb2YgYm9hcmRzIHRoYXQgaGF2ZSB0aGlzIEZFQyBpbiBhZGRpdGlvbgogICAgdG8gb3RoZXIgRXRoZXJuZXQgY29udHJvbGxlcnMuCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJYmMzNDUwCglpY2VjdWJlCgltdmJjX3AKCW8yZG50CglwbTUyMAoJdG90YWw1MjAwCgl0cTUyMDAKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIGNvbnRyb2xsZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGEwYWFkMDhmOTQyN2FjMDAyMThiZGIyY2I2NDk4MzNjZTZlYzliOGQKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjM2OjM4IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBNUEM1MTJ4X0ZFQyBFdGhlcm5ldCBkcml2ZXIgdG8gQ1BVIGRpcmVjdG9yeQoKICAgIEFkZGVkIGEgY3B1X2V0aF9pbml0KCkgZnVuY3Rpb24gdG8gTVBDNTEyeCBDUFUgZGlyZWN0b3J5IGFuZAogICAgcmVtb3ZlZCBjb2RlIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4MjE4YmQyYWE2ODgyMGI4NzhhODQxMzQ5M2FlMTdmZDhkMjFmOTQ0CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDoxNjo1OSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgSW5jYUlQIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gYm9hcmRfZXRoX2luaXQKCiAgICBBZmZlY3RlZCBib2FyZHM6CglJbmNhSVAKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDE2NDg0NmVlYjI1Y2IyYTVlZGU3YWI5MzcxZmRjYTdmNDgzMWEwNTUKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjE1OjI2IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiAzQ09NIEV0aGVybmV0IGNvbnRyb2xsZXIgKEFtaWdhT25lKSB0byBib2FyZF9ldGhfaW5pdCgpCgoJQWZmZWN0ZWQgYm9hcmRzOgoJICAgIEFtaWdhT25lRzNTRQoKCVJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNmFjYTE0NWUwNjdlZmU3NTM5OGU5ZmFjOTc4MjJiZDM3MDBkZTBiMgpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTA6MTM6MzQgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEdUNjQyNnggRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJRVZCNjQyNjAKCVAzRzQKCVpVTUEKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGUzMDkwNTM0ZDYyMDQ1ZGNiNzNmNTM5MmJhY2M2NGE0ZThlNDQzZGMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjA4OjQzIDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBQQ05FVCBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CglQTjYyCglzYzUyMF9jZHAKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGI5MDJiOGRkYTVlMWZkNGQ1ZmUyZjIwMmM3MWVlMzUyMWQyYzQwZWQKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjA3OjE2IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBOQVRTRU1JIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIEFmZmVjdGVkIGJvYXJkczoKCWEzMDAwCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxOTQwMzYzM2RkNzAzMzM4OTNjMmRhNzkyNmExZDBkY2Q2ZGFiN2Q4CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDowMzoyMiAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgTlM4MzgyWCBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CgliYzM0NTAKCWNwY2k1MjAwCgltZWNwNTIwMAoJcGYyMDAwCglpY2VjdWJlCglvMmRudAoJcG01MjAKCXNhbmRwb2ludDgyNDUKCXRvdGFsNTIwMAoJdHFtNTIwMAoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgY2NkZDEyZjgzZWY5MzcxOWZiZTg1ZjY0MmFhNGRjNjQ4Yjk0OThmMApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMDk6NTk6MzMgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIFRTSTEwOCBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CgltcGM3NDQ4aHBjMgoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMGIyNTJmNTBhZTIxOGFlMTViZmI2M2FmNDQyMjc5NzI2ODZlYmM1NgpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMjE6NDE6MDggMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIFJUTDgxMzkgRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJaGlkZGVuX2RyYWdvbgoJTVBDODU0NERTCglNUEM4NjEwSFBDTgoJUjJEUExVUwoJVEIwMjI5CgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAwMmQ2OTg5MWQ5NWVlNzZiMGU4NmUxNzE1YTRkYzBiOTY0YTU3Y2I3CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAwOTo0OTo0MiAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgUlRMODE2OSBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CglsaW5rc3RhdGlvbgoJcjc3ODBtcAoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgM2FlMDcxZTQ0MjU2MTQ0ZDZjMWUzZmViYjY1ZjZjNTZiZDQzMzc2OQpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVR1ZSBBdWcgMTIgMjI6MTE6NTMgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEV0aGVybmV0IGNvbnRyb2xsZXJzIG9uIEF0bWVsIEFUOTEgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIFJlbW92ZWQgYXQ5MXNhbTlfZXRoX2luaXRpYWxpemUoKSBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgODk5NzNmOGE4MmMyOGFkODkzYzRjM2NjNTY4MzlhOGUxMGZlNWYxMwpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMjI6MjI6MDQgMjAwOCAtMDcwMAoKICAgIEludHJvZHVjZSBuZXRkZXYuaCBoZWFkZXIgZmlsZSBhbmQgcmVtb3ZlIGV4dGVybnMKCiAgICBUaGlzIGFkZHJlc3NlcyBhbGwgZHJpdmVycyB3aG9zZSBpbml0aWFsaXplcnMgaGF2ZSBhbHJlYWR5CiAgICBiZWVuIG1vdmVkIHRvIGJvYXJkX2V0aF9pbml0KCkvY3B1X2V0aF9pbml0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1YThhMTYzYWMzOTRkOWY0ZjdmZjU3ZjQxNWQ4MmJkNjczYjAwNjhjCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDMxIDE2OjMzOjMwIDIwMDggLTA1MDAKCiAgICBBZGQgcGl4aXNfc2V0X3NnbWlpIGNvbW1hbmQKCiAgICBUaGUgODU0NERTIGFuZCA4NTcyRFMgcGxhdGZvcm1zIHN1cHBvcnQgYW4gb3B0aW9uYWwgU0dNSUkgcmlzZXIgY2FyZCB0bwogICAgZXhwb3NlIGV0aGVybmV0IG92ZXIgYW4gU0dNSUkgaW50ZXJmYWNlLiAgT25jZSB0aGUgY2FyZCBpcyBpbiwgaXQgaXMgYWxzbwogICAgbmVjZXNzYXJ5IHRvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgc3VjaCB0aGF0IGl0IHVzZXMgdGhlIGNhcmQsIHJhdGhlciB0aGFuCiAgICB0aGUgb24tYm9hcmQgZXRoZXJuZXQgcG9ydHMuICBUaGlzIGNhbiBlaXRoZXIgYmUgZG9uZSBieSBmbGlwcGluZyBkaXAgc3dpdGNoZXMKICAgIG9uIHRoZSBtb3RoZXJib2FyZCwgb3IgYnkgbW9kaWZ5aW5nIHJlZ2lzdGVycyBpbiB0aGUgcGl4aXMuICBFaXRoZXIgd2F5CiAgICByZXF1aXJlcyBhIHJlYm9vdC4KCiAgICBUaGlzIGFkZHMgYSBjb21tYW5kIHRvIGFsbG93IHVzZXJzIHRvIGNob29zZSB3aGljaCBwb3J0cyBhcmUgcm91dGVkIHRocm91Z2gKICAgIHRoZSBTR01JSSBjYXJkLCBhbmQgd2hpY2ggdGhyb3VnaCB0aGUgb25ib2FyZCBwb3J0cy4gIEl0IGFsc28gYWxsb3dzIHVzZXJzCiAgICB0byByZXZlcnQgdG8gdGhlIGN1cnJlbnQgc3dpdGNoIHNldHRpbmdzLgoKICAgIFRoaXMgY29kZSBkb2VzIG5vdCB3b3JrIG9uIHRoZSA4NTcyLCBhcyB0aGUgUElYSVMgaXMgZGlmZmVyZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMjE2ZjJhNzE1NmE1ZmRlN2I0N2FkYzQwYWQ1NTNjODg4YTljYmFhNwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxNjozMzoyOSAyMDA4IC0wNTAwCgogICAgQWRkIFNHTUlJIHN1cHBvcnQgZm9yIHRoZSA4NTQ0IERTCgogICAgVGhlIDg1NDQgRFMgaGFzIGFuIG9wdGlvbmFsIFNHTUlJIFJpc2VyIGNhcmQsIHdoaWNoIHVzZXMgZGlmZmVyZW50IFBIWQogICAgYWRkcmVzc2VzLglDaGVjayBpZiB3ZSBhcmUgaW4gU0dNSUkgbW9kZSwgYW5kIGludm9rZSB0aGUgU0dNSUkgUmlzZXIKICAgIHNldHVwIGNvZGUgaWYgc28uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA2NTJmN2MyZWVmNzZhMTM0MDkyOGJkNjYwODQ1NDQxZTkzMmQ4NmEyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDMxIDE2OjMzOjI4IDIwMDggLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIFNHTUlJIFJpc2VyIENhcmQKCiAgICBUaGUgODU0NERTIGFuZCA4NTcyRFMgc3lzdGVtcyBoYXZlIGFuIG9wdGlvbmFsIFNHTUlJIHJpc2VyIGNhcmQgd2hpY2gKICAgIGV4cG9zZXMgbmV3IGV0aGVybmV0IHBvcnRzIHdoaWNoIGFyZSBjb25uZWN0ZWQgdG8gdGhlIGVUU0VDcyB2aWEgYW4KICAgIFNHTUlJIGludGVyZmFjZS4gIFRoZSBTR01JSSBQSFlzIGZvciB0aGlzIGJvYXJkIGFyZSBvZmZzZXQgZnJvbSB0aGUgc3RhbmRhcmQKICAgIFBIWSBhZGRyZXNzZXMsIHNvIHRoaXMgY29kZSBtb2RpZmllcyB0aGUgcGFzc2VkIGluIHRzZWNfaW5mbyBzdHJ1Y3R1cmUgdG8KICAgIHVzZSB0aGUgU0dNSUkgUEhZcyBvbiB0aGUgY2FyZCwgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDJhYmUzNjFjMDNiNDNlNmRjZjY4ZjU0ZTk2YjVjMDUxNTZjNDkyODQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTY6MzM6MjcgMjAwOCAtMDUwMAoKICAgIEFkZCBTR01JSSBzdXBwb3J0IHRvIHRoZSB0c2VjCgogICAgQWRkcyBzdXBwb3J0IGZvciBjb25maWd1cmluZyB0aGUgVEJJIHRvIHRhbGsgcHJvcGVybHkgd2l0aCB0aGUgU2VyRGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNzViOWQ0YWUwZDY5ZjIxNGVhYjY0MWNhZjEyY2U4YWY4M2EzOWE0MgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxNjozMzoyNiAyMDA4IC0wNTAwCgogICAgUGFzcyBpbiB0c2VjX2luZm8gc3RydWN0IHRocm91Z2ggdHNlY19pbml0aWFsaXplCgogICAgVGhlIHRzZWMgZHJpdmVyIGNvbnRhaW5zIGEgaGFyZC1jb2RlZCBhcnJheSBvZiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uCiAgICBmb3IgdGhlIHRzZWMgZXRoZXJuZXQgY29udHJvbGxlcnMuCVdlIGNyZWF0ZSBhIGRlZmF1bHQgZnVuY3Rpb24gdGhhdCB3b3JrcwogICAgZm9yIG1vc3QgdHNlY3MsIGFuZCBhbGxvdyB0aGF0IHRvIGJlIG92ZXJyaWRkZW4gYnkgYm9hcmQgY29kZS4gIEl0IGNyZWF0ZXMKICAgIGFuIGFycmF5IG9mIHRzZWNfaW5mbyBzdHJ1Y3R1cmVzLCB3aGljaCBhcmUgdGhlbiBwYXJzZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcKICAgIGRyaXZlciBpbnN0YW5jZSB0byBkZXRlcm1pbmUgY29uZmlndXJhdGlvbi4gIEFsc28sIGFkZCByZWdzLCBtaWlyZWdzLCBhbmQKICAgIGRldm5hbWUgZmllbGRzIHRvIHRoZSB0c2VjX2luZm8gc3RydWN0dXJlLCBzbyB0aGF0IHdlIGRvbid0IG5lZWQgdGhlIGtsdWRneQogICAgImluZGV4IiBwYXJhbWV0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkZDNkMWY1NmEwMWY0NjBkNTYwNzY2MTI2ZWU3ZGZlZDJlYTliYzEwCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDMxIDE2OjMzOjI1IDIwMDggLTA1MDAKCiAgICB0c2VjOiBNb3ZlIHRzZWMuaCB0byBpbmNsdWRlLwoKICAgIFRoaXMgaXMgdG8gcHJlcGFyZSB0aGUgd2F5IGZvciBib2FyZCBjb2RlIHBhc3NpbmcgaW4gdGhlIHRzZWNfaW5mbyBzdHJ1Y3R1cmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGQyM2RjMzk0YWE2OTA5M2I2MzI2YWQ5MTdkYjA0ZGMwZDFhZmYzZjgKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglGcmkgSnVuIDYgMTU6NTI6NDQgMjAwOCArMDIwMAoKICAgIFBIWTogQWRkIHN1cHBvcnQgZm9yIHRoZSBNODhFMTEyMVIgTWFydmVsbCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDE3MTFmM2JkMTZkMWM1ZTlkMTdiNGMwMTk4YjQyNmQ4Njk5OTc4MWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDIgMjE6MTc6MzYgMjAwOCArMDIwMAoKICAgIGZ3X2Vudi5jOiBmaXggYnVpbGQgcHJvYmxlbXMgd2l0aCBNVERfVkVSU0lPTj1vbGQKCiAgICAoYXMgbmVlZGVkIHRvIHN1cHBvcnQgb2xkIDIuNCBMaW51eCBrZXJuZWwgYmFzZWQgcmVsZWFzZXMpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2MjhmZmQ3M2JjZmYwYzlmM2JjNWE4ZWViMmM3NDU1ZmU5ZDI4YTUxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIFNlcCAxIDE3OjExOjI2IDIwMDggKzAyMDAKCiAgICBkZXZpY2U6IG1ha2UgZGV2aWNlX3JlZ2lzdGVyKCkgY2xvbmUgdGhlIGRldmljZQoKICAgIFRoaXMgaXMgZXhwZWN0ZWQgYnkgdGhlIGNhbGxlcnMsIGJ1dCB0aGlzIGZhY3Qgd2FzIGhpZGRlbiB3ZWxsIHdpdGhpbgogICAgdGhlIG9sZCBsaXN0IGltcGxlbWVudGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmFmNDQ5ZmM1ZmY5NmYwNzFiYjBlMzc4OWZkMzI2NWY2ZDRmZDlhMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIFNlcCAxIDE0OjAwOjA3IDIwMDggKzAyMDAKCiAgICBhdnIzMjogQWRkIHN1cHBvcnQgZm9yICJHUElPIiBwb3J0IG11eAoKICAgIFRoZSAiR1BJTyIgcG9ydCBtdXggaXMgdXNlZCBvbiBBVlIzMiBVQzMgcGFydHMgYXMgd2VsbCBhcyBBVDMyQVA3MjAwIGFuZAogICAgYWxsIGxhdGVyIEFWUjMyIGNoaXBzLiBUaGlzIHBhdGNoIGFkZHMgYSBkcml2ZXIgZm9yIGl0LCBpbXBsZW1lbnRpbmcgdGhlCiAgICBzYW1lIEFQSSBhcyB0aGUgZXhpc3RpbmcgcG9ydG11eC1waW8gZHJpdmVyIGJ1dCB3aXRoIG1vcmUgZnVuY3Rpb25hbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDkyODUyNTc5NTQ2YzQ2YmRhYWM5NzhlMGI2NzY3YTY2NDViNjllMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTowMjoyOSAyMDA4ICswMjAwCgogICAgYXRzdGsxMDAwOiBDb252ZXJ0IHRvIG5ldy1zdHlsZSBtYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyNWU2ODU0ZDQyYzExMDQ2YTQ2ODU3NjE3OWI1NDk0Zjg1MDMxMWIyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDE4OjQ2OjM1IDIwMDggKzAyMDAKCiAgICBhdnIzMjogdXNlIGJvYXJkX2Vhcmx5X2luaXRfciBpbnN0ZWFkIG9mIGJvYXJkX2luaXRfaW5mbwoKICAgIFJlcGxhY2UgdGhlIGF2cjMyLXNwZWNpZmljIGJvYXJkX2luaXRfaW5mbyBob29rIGJ5IHRoZSBzdGFuZGFyZAogICAgYm9hcmRfZWFybHlfaW5pdF9yIGhvb2sgYW5kIG1ha2UgaXQgb3B0aW9uYWwuCgogICAgYm9hcmRfZWFybHlfaW5pdF9yKCkgcnVucyBzb21ld2hhdCBlYXJsaWVyIHRoYW4gYm9hcmRfaW5pdF9pbmZvIHVzZWQgdG8KICAgIGRvLCBidXQgdGhpcyBpc24ndCBhIHByb2JsZW0gZm9yIGFueSBvZiB0aGUgaW4tdHJlZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDM2ZDM3NWZhZjVjZmY5OGU4ZGNhMzJhYWJiYmIxZWM2MDM2NDM3ZGQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTg6MjQ6MjQgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBVc2UgYm9hcmRfcG9zdGNsa19pbml0IGluc3RlYWQgb2YgZ2Nsa19pbml0CgogICAgUmVwbGFjZSB0aGUgYXZyMzItc3BlY2lmaWMgZ2Nsa19pbml0KCkgYm9hcmQgaG9vayB3aXRoIHRoZSBzdGFuZGFyZAogICAgYm9hcmRfcG9zdGNsa19pbml0KCkgaG9vayB3aGljaCBpcyBzdXBwb3NlZCB0byBydW4gYXQgdGhlIHNhbWUgcG9pbnQKICAgIGR1cmluZyBpbml0aWFsaXphdGlvbi4KCiAgICBQcm92aWRlIGEgZHVtbXkgd2VhayBhbGlhcyBmb3IgYm9hcmRzIG5vdCBpbXBsZW1lbnRpbmcgdGhpcyBob29rLiBUaGUKICAgIGNvc3Qgb2YgdGhpcyBpczoKICAgICAgLSAyIGJ5dGVzIGZvciB0aGUgZHVtbXkgZnVuY3Rpb24gKHJldGFsIDApCiAgICAgIC0gMiBieXRlcyBmb3IgZWFjaCB1bm5lY2Vzc2FyeSBmdW5jdGlvbiBjYWxsIChzaG9ydCByY2FsbCkKCiAgICB3aGljaCBpcyBhIHByZXR0eSBzbWFsbCBwcmljZSB0byBwYXkgZm9yIGF2b2lkaW5nIGxvdHMgb2YgI2lmZGVmCiAgICBjbHV0dGVyLiBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSwgYWxsIGJvYXJkcyBwcm9iYWJseSBlbmQgdXAgc2xpZ2h0bHkKICAgIHNtYWxsZXIgYmVjYXVzZSB3ZSBhdm9pZCB0aGUgY29uZGl0aW9uYWwgY2hlY2tpbmcgaWYgdGhlIGdjbGtfaW5pdAogICAgc3ltYm9sIGlzIE5VTEwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGFiZGRlMmIxZDU3MGIxZWU3NzYwNmJmNzgzNDQ0ZmNkZGY3ZjA5NjUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTg6MDc6MzUgMjAwOCArMDIwMAoKICAgIGhhbW1lcmhlYWQ6IFVzZSBnY2xrIGhlbHBlciBmdW5jdGlvbnMKCiAgICBVc2UgdGhlIG5ldyBnY2xrIGhlbHBlciBmdW5jdGlvbnMgdG8gc2V0IHVwIHRoZSBQSFkgY2xvY2sgaW5zdGVhZCBvZgogICAgYWNjZXNzaW5nIHRoZSBQTSByZWdpc3RlcnMgZGlyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDk4MDkwY2Q3NWNkYjQwYjJhYjk0YzgwNmMzMzg1NDBhNTcxNjc0OGIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTg6MDU6MzIgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBBZGQgZ2NsayBoZWxwZXIgZnVuY3Rpb25zCgogICAgQWRkIHR3byBoZWxwZXIgZnVuY3Rpb25zIGZvciBjb25maWd1cmluZyBhbmQgZW5hYmxpbmcgZ2VuZXJpYyBjbG9ja3M6CiAgICAgIC0gZ2Nsa19lbmFibGVfb3V0cHV0OiBFbmFibGVzIG91dHB1dCBvbiBhIEdDTEt4IHBpbgogICAgICAtIGdjbGtfc2V0X3JhdGU6IENvbmZpZ3VyZXMgYSBnY2xrIHRvIHJ1biBhdCBhIHNwZWNpZmljIHJhdGUKCiAgICBUaGlzIHNob3VsZCBlbGltaW5hdGUgYW55IHJlYXNvbiB0byBnbyBtdWNraW5nIGFib3V0IHdpdGggUE0gcmVnaXN0ZXJzCiAgICBmcm9tIGJvYXJkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGFiMGRmMzZmYzdkYjlkZGEwYjc4NmI5MDlmNjUzZTI3OWRmZWI5Y2YKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMjE6MDk6NDkgMjAwOCArMDIwMAoKICAgIGF2cjMyOiByZWZhY3RvciB0aGUgcG9ydG11eC9ncGlvIGNvZGUKCiAgICAgIC0gU2VwYXJhdGUgdGhlIHBvcnRtdXggY29uZmlndXJhdGlvbiBmdW5jdGlvbmFsaXR5IGZyb20gdGhlIEdQSU8gcGluCgljb250cm9sIEFQSS4KICAgICAgLSBTZXBhcmF0ZSB0aGUgY29udHJvbGxlci1zcGVjaWZpYyBjb2RlIGZyb20gdGhlIGNoaXAtc3BlY2lmaWMgY29kZS4KICAgICAgLSBBbGxvdyAiZ2FuZ2VkIiBwb3J0IGNvbmZpZ3VyYXRpb24gKG11bHRpcGxlIHBpbnMgYXQgb25jZSkuCiAgICAgIC0gQWRkIG1vcmUgZmxleGliaWxpdHkgdG8gdGhlICJjYW5uZWQiIHBlcmlwaGVyYWwgc2VsZWN0IGZ1bmN0aW9uczoKCSAgLSBBbGxvdyB1c2luZyBtb3JlIHRoYW4gMjMgYWRkcmVzcyBiaXRzLCBtb3JlIGNoaXAgc2VsZWN0cywgYXMKCXdlbGwgYXMgTkFORC0gYW5kIENGLXNwZWNpZmljIHBpbnMuCgkgIC0gTWFrZSB0aGUgTUFDQiBTUEVFRCBwaW4gb3B0aW9uYWwsIGFuZCBjaG9vc2UgYmV0d2VlbiBNSUkvUk1JSQoJdXNpbmcgYSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBhbiAjaWZkZWYuCgkgIC0gTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ugb3RoZXIgTU1DIHNsb3RzIHRoYW4gc2xvdCAwLCBhbmQgc3VwcG9ydAoJZGlmZmVyZW50IE1NQy9TRENhcmQgZGF0YSBidXMgd2lkdGhzLgogICAgICAtIFVzZSBtb3JlIHJlYXNvbmFibGUgcHVsbC11cCBkZWZhdWx0czsgZmxvYXRpbmcgcGlucyBtYXkgY29uc3VtZSBhCglsb3Qgb2YgcG93ZXIuCiAgICAgIC0gR2V0IHJpZCBvZiBzb21lIGN1c3RvbSBwb3J0bXV4IGNvZGUgZnJvbSB0aGUgbWltYzIwMCBib2FyZCBjb2RlLiBUaGUKCW9sZCBncGlvL3BvcnRtdXggQVBJIGNvdWxkbid0IHJlYWxseSBoYW5kbGUgaXRzIHJlcXVpcmVtZW50cywgYnV0Cgl0aGUgbmV3IG9uZSBjYW4uCiAgICAgIC0gQWRkIGRvY3VtZW50YXRpb24uCgogICAgVGhlIGVuZCByZXN1bHQgaXMgc2xpZ2h0bHkgc21hbGxlciBjb2RlIGZvciBhbGwgYm9hcmRzLiBXaGljaCBpc24ndAogICAgcmVhbGx5IHRoZSBwb2ludCwgYnV0IGF0IGxlYXN0IGl0IGlzbid0IGFueSBsYXJnZXIuCgogICAgVGhpcyBoYXMgYmVlbiB2ZXJpZmllZCBvbiBBVFNUSzEwMDIgYW5kIEFUTkdXMTAwLiBJJ2QgYXBwcmVjaWF0ZSBpZgogICAgdGhlIGJvYXJkIG1haW50YWluZXJzIGNvdWxkIGhlbHAgbWUgdGVzdCB0aGlzIG9uIHRoZWlyIGJvYXJkcy4gSW4KICAgIHBhcnRpY3VsYXIsIHRoZSBtaW1jMjAwIHBvcnQgaGFzIGxvc3QgYSBsb3Qgb2YgY29kZSwgc28gSSdtIGhvcGluZyBNYXJrCiAgICBjYW4gaGVscCBtZSBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQ2M6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhhbnMtY2hyaXN0aWFuLmVndHZlZHRAYXRtZWwuY29tPgogICAgQ2M6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgogICAgQ2M6IEFsZXggUmFpbW9uZGkgPGFsZXgucmFpbW9uZGlAbWlyb21pY28uY2g+CiAgICBDYzogSnVsaWVuIE1heSA8anVsaWVuLm1heUBtaXJvbWljby5jaD4KCiAgICBDaGFuZ2VzIHNpbmNlIHYxOgogICAgICAqIEVuYWJsZSBwdWxsdXAgb24gTldBSVQKICAgICAgKiBBZGQgbWlzc2luZyBpbmNsdWRlIHRvIHBvcnRtdXgtcGlvLmgKICAgICAgKiBSZW5hbWUgQ09ORklHX1BJTzIgLT4gQ09ORklHX1BPUlRNVVhfUElPIHRvIG1hdGNoIGRvY3MKCmNvbW1pdCA0YzI0ZTgyODhjNjAxY2I3NzNhYjAyNTI4YjQ4YTg1Nzc5NzBlODY3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgQXVnIDMwIDE3OjI4OjM2IDIwMDggKzAyMDAKCiAgICBhdnIzMjogZGF0YV9iaXRzIHNob3VsZCByZWZsZWN0IHRoZSBhY3R1YWwgbnVtYmVyIG9mIGRhdGEgYml0cwoKICAgIE1ha2UgdGhlIGRhdGFfYml0cyBlbnVtIGluIHN0cnVjdCBzZHJhbV9jb25maWcgcmVmbGVjdCB0aGUgYWN0dWFsIG51bWJlcgogICAgb2YgZGF0YSBiaXRzIG9uIHRoZSBidXMsIGkuZS4gMTYgb3IgMzIuIEhhdmluZyAwIG1lYW4gMTYgYml0cyBhbmQgMSBtZWFuCiAgICAzMiBiaXRzIGlzIGp1c3QgdG9vIGNvbmZ1c2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjZiN2JjNTE3NTMyNTgwOTcxOGQ4ZDQ5ZWYwNzNiYzEwMzZhZDcxYgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAxNzo0ODoxOCAyMDA4ICswMjAwCgogICAgYXZyMzI6IFVwZGF0ZSBSRUFETUUKCiAgICBSZW1vdmUgc29tZSBvdXRkYXRlZCBhbmQvb3IgdW5uZWNlc3NhcnkgaW5mb3JtYXRpb24sIGFuZCBhZGQgdXBkYXRlZAogICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRvb2xjaGFpbiBhbmQgYnVpbGRyb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjNzVlNzcyYTJmMDYxYTUwOGJiYTI4ZGVkMWI1YmVhOTFmMDQ0MmIwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gQXVnIDMxIDIzOjI4OjE1IDIwMDggKzA5MDAKCiAgICBzaDogUmVtb3ZlIENDIGxpbmUgZnJvbSBib2FyZCdzIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDQ2OGVhZTA2NjBkZTZmZGZkOTk5OTk0NGM1MzZlY2M0Nzk3YmQ5NDQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBBdWcgMzEgMjM6MjU6NTcgMjAwOCArMDkwMAoKICAgIHNoOiBSZXBsYWNlZCAiQC4vbWtjb25maWciIGZvciBAJChNS0NPTkZJRykKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgM2FlYjFmZjc0ODJhNzMyNTAzMTg2Yzc0MmQzYTVkZWQ0YjdhMGQzNApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxNDo1MDo1MiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IHNoMiB0byBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDZmM2Q4YmI1ZmFhMTJkYmYzMDMxMzgyMjg2Nzg0Yzk3OGRmMDM4ZWUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBBdWcgMjggMTQ6NTI6MjMgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggY29tcGlsZSBlcnJvciByc2s3MjAzIGJvYXJkCgogICAgVGhpcyBib2FyZHMgdXNlZCBvbGQgdHlwZSBwcmVwcm9jZXNzb3IuCiAgICBUaGlzIHBhdGNoIGZpeCBjb21waWxlIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAxYzk4MTcyZTAyNTAxODU1MmU5YmI0YzQzYjBhYWVlNzZmNzliMWFhCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUaHUgQXVnIDI4IDE0OjUzOjMxIDIwMDggKzA5MDAKCiAgICBzaDogRml4IGNvbXBpbGUgZXJyb3Igc2g3Nzg1bGNyIGJvYXJkCgogICAgVGhpcyBib2FyZHMgdXNlZCBvbGQgdHlwZSBwcmVwcm9jZXNzb3IuCiAgICBUaGlzIHBhdGNoIGZpeCBjb21waWxlIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2ZjBkYTQ5NzJlNDhmOTlkMzdiYzUyMjgxNDk0MGE2MDIyY2QzMDg0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgQXVnIDIyIDE3OjM5OjA5IDIwMDggKzA5MDAKCiAgICBzaDogUmVuZXNhcyBTb2x1dGlvbnMgQVAzMjVSWEEgYm9hcmQgc3VwcG9ydAoKICAgIEFQMzI1UlhBIGlzIFNINzcyMydzIHJlZmVyZW5jZSBib2FyZC4KICAgIFRoaXMgaGFzIFNDSUYsIE5PUiBGbGFzaCwgRXRoZXJuZXQsIFVTQiBob3N0LCBMQ0RDLCBTRCBIb3N0LCBDYW1lcmEgYW5kIG90aGVyLgogICAgSW4gdGhpcyBwYXRjaCwgc3VwcG9ydCBTQ0lGLCBOT1IgRmxhc2gsIGFuZCBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYWIwOWY0MzNiNTBiYjgzYjVlNDQwYzMzNWJjMzgzOWVlMDY5ZTUzNApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIEF1ZyAyMiAxNzo0ODo1MSAyMDA4ICswOTAwCgogICAgc2g6IGFkZCBzdXBwb3J0IFJlbmVzYXMgU0g3NzIzCgogICAgUmVuZXNhcyBTSDc3MjMgaGFzIDUgU0NJRiwgU0QsIENhbWVyYSwgTENEQyBhbmQgb3RoZXIuCiAgICBUaGlzIHBhdGNoIHN1cHBvcnRzIENQVSByZWdpc3RlcidzIGhlYWRlciBmaWxlIGFuZCBTQ0lGIHNlcmlhbCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM2NTVmYWQwNmJhM2ZiMDQyZGJjNjY3NzI0YTQwZTFhOWEwOTEyNDgKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBBdWcgMzEgMjM6MDI6MDQgMjAwOCArMDkwMAoKICAgIHNoOiBSZW5lc2FzIFJTSysgNzIwMyBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBhZGRzIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIFJURSBSU0srIFNINzIwMyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmVkZTc1M2RkZjUyYTdiMGY5OTJkOWJjY2JlNWU0YTA5NjhjYTQ3NQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IEp1bCAzIDIzOjExOjAyIDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBTSDcyMDMgcHJvY2Vzc29yCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDZhZDQzZDBkZDg2YjYxMjg5NWRkYzdmNDgwZWI2Y2RmZTc5M2FkZjkKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBBdWcgMzEgMjI6NDg6MzMgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBTSDIvU0gyQSB3aGljaCBpcyBDUFUgb2YgUmVuZXNhcyBUZWNobm9sb2d5CgogICAgQWRkIHN1cHBvcnQgU0gyL1NIMkEgYmFzaWMgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDBkNTNhNDdkYzA3MzdiNmFhM2EzOWNhZWUyMTQxMGMxNjk0NDFhZTUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBBdWcgMzEgMjI6NDU6MDggMjAwOCArMDkwMAoKICAgIHNoOiBSZW5lc2FzIFIwUDc3ODVMQzAwMTFSTCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBib2FyZCBoYXMgU0g3Nzg1LCA1MTJNQiBERFIyLVNEUkFNLCBOT1IgRmxhc2gsCiAgICBHcmFwaGljLCBFdGhlcm5ldCwgVVNCLCBTRCwgUlRDLCBhbmQgSTJDIGNvbnRyb2xsZXIuCgogICAgVGhpcyBwYXRjaCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKICAgICAtIDEyOE1CIEREUjItU0RSQU0gKDI5LWJpdCBhZGRyZXNzIG1vZGUgb25seSkKICAgICAtIE5PUiBGbGFzaAogICAgIC0gVVNCIGhvc3QKICAgICAtIEV0aGVybmV0CgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGIwYjYyMTg5MjliYzdkZTlhNmJkYjhlNTY0ZmE4ZWMyZWZhNzFiNGUKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBKdWwgMTAgMTk6MzI6NTMgMjAwOCArMDkwMAoKICAgIHNoOiBhZGQgc3VwcG9ydCBmb3IgU0g3Nzg1CgogICAgUmVuZXNhcyBTSDc3ODUgaGFzIEREUjItU0RSQU0gY29udHJvbGxlciwgUENJLCBhbmQgb3RoZXIuCiAgICBUaGlzIHBhdGNoIHN1cHBvcnRzIENQVSByZWdpc3RlcidzIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkNmUwNDI1OGJlOGYyNDA4ODQ1NDY4ZDNjZjcyMmE0Y2YwNDMzNDQ1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAwNDo0NTo0MiAyMDA4ICswMjAwCgogICAgZGF2aW5jaTogZml4IHJlbWFpbmluZyBkbTY0NHhfZXRoCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwOGFiNGUxNzgwZmE2M2M4OGRkNWE1YWI1MmY0ZmY0ZWQxZWUxODc4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAwNDoyNDo1NiAyMDA4ICswMjAwCgogICAgZnM6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMxZGU3YTZkYWY5YzY1NzQ4NGUxYzZkNDMzZjAxZmNjZDQ5YTdmNDgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXVnIDMxIDA0OjI0OjU1IDIwMDggKzAyMDAKCiAgICBkZXZpY2VzOiBtZXJnZSB0byBsaXN0X2hlYWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGVmMDI1NWZjNzVmMjg2NTVmOTY4MTQyMjA3OTI4N2Q2OGExNGRiYWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXVnIDMxIDA0OjI0OjUxIDIwMDggKzAyMDAKCiAgICB1cGRhdGUgbGludXgvbGlzdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzFjYjMxMjI3YmVlNzQxYjI3NGY2YzAyNzliMmFhYzFhYjhlMjhlMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMDA6Mzk6NDggMjAwOCArMDIwMAoKICAgIHNtZGs2NDAwOiBhZGQgZ2l0aWdub3JlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmOWY2OTJlMmIxNDZkNGUzMDZiNzc3ZTZkNWY2OWYxZDcyNWI5ZWI5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0OCAyMDA4ICswMjAwCgogICAgc21kazY0MDA6IFVzZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2MwZTVhOGRiM2QxMzU4YjBjZTNjYzg1YWRhMGRlNjM0MWNhNGExNQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0NyAyMDA4ICswMjAwCgogICAgc21kazY0MDA6IHJlbW92ZSByZWR1bmRhbnQgYm9vdGFyZ3MgZGVmaW5pdGlvbgoKICAgIERvdWJsZSBib290YXJncyBzZXR0aW5nIGxlYWRzIHRvIGEgZHVwbGljYXRlZCBlbnZpcm9ubWFudCBlbnRyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMTFlZGNmZTI2MGYyMGRjZWE3OTI4NGEzZTk1MjcwOTg5ZDQzMzg1NApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0NyAyMDA4ICswMjAwCgogICAgQVJNOiBBZGQgc3VwcG9ydCBmb3IgUzNDNjQwMCBiYXNlZCBTTURLNjQwMCBib2FyZAoKICAgIFNNREs2NDAwIGNhbiBvbmx5IGJvb3QgVS1Cb290IGZyb20gTkFORC1mbGFzaC4gVGhpcyBwYXRjaCBhZGRzIGEgbmFuZF9zcGwKICAgIGRyaXZlciBmb3IgaXQgdG9vLiBUaGUgYm9hcmQgY2FuIGFsc28gYm9vdCBmcm9tIHRoZSBOT1IgZmxhc2gsIGJ1dCBkdWUgdG8KICAgIGhhcmR3YXJlIGxpbWl0YXRpb25zIGl0IGNhbiBvbmx5IGFkZHJlc3MgNjRLaUIgb24gaXQsIHdoaWNoIGlzIG5vdCBlbm91Z2gKICAgIGZvciBVLUJvb3QuIEJhc2VkIG9uIHRoZSBvcmlnaW5hbCBzb3VyY2VzIGJ5IFNhbXN1bmcgZm9yIFUtQm9vdCAxLjEuNi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZTAwNTZiMzQxMDY5Nzk2ZWFlYTExZWFlMGZjOGViOTNhM2RjZWFhYwpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0NyAyMDA4ICswMjAwCgogICAgTkFORDogYWRkIE5BTkQgZHJpdmVyIGZvciBTM0M2NFhYCgogICAgQmFzZWQgb24gdGhlIG9yaWdpbmFsIFMzQzY0WFggTkFORCBkcml2ZXIgYnkgU2Ftc3VuZyBmb3IgVS1Cb290IDEuMS42LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAzZmU3YjU4OWY5Yzc0NjNkZjM5MDU2Zjg4NzIwMDZhNjdmNTZhOTFjCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ3IDIwMDggKzAyMDAKCiAgICBTM0M2NFhYOiByZW1vdmUgYnJva2VuIEhXRkxPVyBzdXBwb3J0IGZyb20gdGhlIHNlcmlhbCBkcml2ZXIKCiAgICBBcyBub3RlZCBieSBIYXJhbGQgV2VsdGUsIEhXRkxPVyBzdXBwb3J0IGluIHRoZSBTM0M2NFhYIHNlcmlhbCBkcml2ZXIgaXMKICAgIGJyb2tlbiBhbmQgY3VycmVudGx5IHVudXNlZC4gUmVtb3ZlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAyZmIyOGRjZjgyMDQ4MDQ1ZTFiZjUwMTRlOTM4ZTQ4NmZhNmMyMzgzCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ3IDIwMDggKzAyMDAKCiAgICBzZXJpYWw6IGFkZCBTM0M2NFhYIHNlcmlhbCBkcml2ZXIKCiAgICBCYXNlZCBvbiB0aGUgb3JpZ2luYWwgUzNDNjRYWCBVQVJUIGRyaXZlciBieSBTYW1zdW5nIGZvciBVLUJvb3QgMS4xLjYuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDgyNjI4MTNjYTA0ZmM1N2Y1ZDg4NTZlMTgyODA4NWMxMzZlMGYxZWIKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMzEgMDA6Mzk6NDYgMjAwOCArMDIwMAoKICAgIFVTQjogQWRkIHN1cHBvcnQgZm9yIE9IQ0kgY29udHJvbGxlciBvbiBTM0M2NDAwCgogICAgTm90aWNlOiBVU0Igb24gUzNDNjQwMCBjdXJyZW50bHkgd29ya3MgX29ubHlfIHdpdGggc3dpdGNoZWQgb2ZmIE1NVS4gT25lIGNvdWxkCiAgICB0cnkgdG8gZW5hYmxlIHRoZSBNTVUsIGJ1dCBtYXAgYWRkcmVzc2VzIDEtdG8tMSwgYW5kIGRpc2FibGUgZGF0YSBjYWNoZSwgdGhlbgogICAgaXQgc2hvdWxkIHdvcmsgdG9vIGFuZCB3ZSBjb3VsZCBzdGlsbCBwcm9maXQgZnJvbSBpbnN0cnVjdGlvbiBjYWNoZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgOWIwNzc3M2Y4ODgzNjY1YjAwMjUwMGMxOTA1MDdlOWZkOTliNzE4MQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0NiAyMDA4ICswMjAwCgogICAgQVJNOiBBZGQgYXJtMTE3NiBjb3JlIHdpdGggUzNDNjQwMCBTb0MKCiAgICBCYXNlZCBvbiB0aGUgb3JpZ2luYWwgUzNDNjRYWCBwb3J0IGJ5IFNhbXN1bmcgZm9yIFUtQm9vdCAxLjEuNi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZmNhYWM1ODlhNjgxMTU4MTlkZGFkY2Y1YzE4ZGVkOWE1ZjllMmM3NQpBdXRob3I6IFNhbmRlZXAgUGF1bHJhaiA8cy1wYXVscmFqQHRpLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0NiAyMDA4ICswMjAwCgogICAgQVJNIERhVmluY2k6IENoYW5naW5nIGZ1bmN0aW9uIG5hbWVzIGZvciBFTUFDIGRyaXZlcgoKICAgIERNNjQ0eCBpcyBqdXN0IG9uZSBvZiBhIHNlcmllcyBvZiBEYVZpbmNpIGNoaXBzIHRoYXQgdXNlIHRoZSBFTUFDIGRyaXZlci4KICAgIEJ5IHJlcGxhY2luZyBhbGwgdGhlIGZ1bmN0aW9uIG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBkbTY0NHhfKiB0byBkYXZpbmNpXyoKICAgIHdlIG1ha2UgdGhlc2UgZnVuY3Rpb24gbW9yZSBwb3J0YWJsZS4gSSBoYXZlIHRlc3RlZCB0aGlzIGNoYW5nZSBvbiBteSBFVk0uCiAgICBETTY0NjcgaXMgYW5vdGhlciBEYVZpbmNpIFNPQyB3aGljaCB1c2VzIHRoZSBFTUFDIGRyaXZlciBhbmQgaSB3aWxsCiAgICBiZSBzZW5kaW5nIHBhdGNoZXMgdGhhdCBhZGQgRGFWaW5jaSBETTY0Njcgc3VwcG9ydCB0byB0aGUgbGlzdCBzb29uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhbmRlZXAgUGF1bHJhaiA8cy1wYXVscmFqQHRpLmNvbT4KCmNvbW1pdCBmYmJiMWRlMzY5Y2E3ZDVhY2U2ZjdiMGNlOWQwYWVlMjRhNmY0NTdiCkF1dGhvcjogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJU2F0IEF1ZyAzMCAyMzoyMTozMCAyMDA4ICswMjAwCgogICAgSW50ZWdyYXRvcltBUC9DUF0gLSBSZW1vdmUgdW51c2VkIGZpbGUgbWVtc2V0dXAuUwoKICAgIC0gbWVtc2V0dXAucyBpcyBjaGFuZ2VkL21lcmdlZCB0byBsb3dsZXZlbF9pbml0LlMKICAgICAgbWVtc2V0dXAuUyBoYXMgYSBnbG9iYWwgbGFiZWwgbWVtc2V0dXAgdGhhdCBqdXN0IHJldHVybnMgYmFjayB0byBjYWxsZXIKICAgIC0gbWVtc2V0dXAgZ2xvYmFsIGxhYmVsIGlzIGNoYW5nZWQvbWVyZ2VkIHRvIGxvd2xldmVsX2luaXQKICAgICAgVGhpcyBsYWJlbCBpcyBub3QgY2FsbGVkIGZyb20gYW55d2hlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IDg5ZDUxZDAyMmE2M2JlMWE4NTFlZGE5ODNjOGNiY2UxYTA0NGY2NWYKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJV2VkIEF1ZyAyNyAyMTozNTo1MiAyMDA4ICswMjAwCgogICAgQVJNIERhVmluY2k6IFN0YW5kYXJkaXplIG5hbWVzIG9mIGRpcmVjdG9yaWVzL2ZpbGVzCgogICAgQVJNIERhVmluY2k6IFN0YW5kYXJkaXplIG5hbWVzIG9mIGRpcmVjdG9yaWVzL2ZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyNjRiYmRkMTFkMDFmMTRmNWVhNDYyOTU1NmFlNjNiMDBiMTM0MDJkCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MTA6MTMgMjAwOCAtMDQwMAoKICAgIEFSTSBEYVZpbmNpOiBNb3ZlIGNvbW1vbiBmdW5jdGlvbnMgdG8gYm9hcmQvZGF2aW5jaS9jb21tb24KCiAgICBBUk0gRGFWaW5jaTogTW92ZSBjb21tb24gZnVuY3Rpb25zIHRvIGJvYXJkL2RhdmluY2kvY29tbW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgoKY29tbWl0IGMyYjRiMmU0ODE0ZjRhY2U5MDE1ZmRiNjQxMzI4OTQzMjc0MDBiZjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMjkgMTE6NTY6NDkgMjAwOCArMDIwMAoKICAgIHBwYzR4eC9OQU5EOiBBZGQgc2VsZWN0X2NoaXAgZnVuY3Rpb24gdG8gNHh4IE5ERkMgZHJpdmVyCgogICAgVGhpcyBmdW5jdGlvbiBpcyBuZWVkZWQgZm9yIHRoZSBuZXcgTkFORCBpbmZyYXN0cnVjdHVyZS4gV2Ugb25seSBuZWVkCiAgICBhIGR1bW15IGltcGxlbWVudGF0aW9uIHRob3VnaCBmb3IgdGhlIE5ERkMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNkNGE3NDZlMmZiNDU0NWYwN2Q4NzEwNDk4MDVmYjM0YWU5N2NjOTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMjkgMTI6MDY6MjcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogSW5jcmVhc2UgaW1hZ2Ugc2l6ZSBmb3IgTkFORCBib290IHRhcmdldAoKICAgIFRoaXMgaXMgbmVlZGVkIHNpbmNlIG5vdyB3aXRoIEhVU0ggZW5hYmxlZCAoYW1jYy1jb21tb24uaCkgdGhlIGltYWdlCiAgICByZWFkIGZyb20gTkFORCBleGNlZWRzIHRoZSBwcmV2aW91cyBsaW1pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmI1MDQ5ZDA1NmNkOGVmNzJkMWYyZjQ2MWNlYjJkMDMzZDkzZjc1OQpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVRodSBBdWcgMjggMjM6NTg6MzAgMjAwOCAtMDcwMAoKICAgIE1vdmUgTVBDNTEyeF9GRUMgZHJpdmVyIHRvIGRyaXZlcnMvbmV0CgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4MGIwMGFmMDFiM2M5MTU0Nzc0ZGUyOTM2ZjA1YTA1MWU5MmY2YTAzCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAyMzo1ODoyOSAyMDA4IC0wNzAwCgogICAgTW92ZSBNUEM1eHh4X0ZFQyBkcml2ZXIgdG8gZHJpdmVycy9uZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNkZTdiZjBlNmIxYWQyNjA4MDE0MDk2YzgxOTJmMTMyMjliMmU5ZDcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgQXVnIDI5IDIxOjUzOjU3IDIwMDggKzAyMDAKCiAgICBjbWRfdGVybWluYWw6IHJlbW92ZSBubyBuZWVkIGlmZGVmCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NzgxMThiZGYxMjI4NzdhZTc2OTc3NmJlMDAyMjU1YmU0NDdiNGZhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAyMTo1Mzo1NyAyMDA4ICswMjAwCgogICAgY29tbW9uL01ha2VmaWxlOiBvcmRlciBieSBmdW5jdGlvbmFsaXR5CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiYTdiNWIyMzQ4YjY4NGNmOGVjNDI0YjJlMzhlMjY3ZGMxY2ZkMmZiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAyMTo1Mzo1NiAyMDA4ICswMjAwCgogICAgbWlpcGh5dXRpbDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODE3ODljMzlkYjNmMGY2YjYyMWRmOGMwZWM2NjAxNGQ3MDFmMzY4ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMjE6NTM6MzcgMjAwOCArMDIwMAoKICAgIGF1dG9zY3JpcHQ6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGJiZjUyZGY5YWE5NGZmYjExNWI4YjFlYmViMDBkMDEzNzRiYjBhMWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgQXVnIDI5IDAxOjE4OjExIDIwMDggKzAyMDAKCiAgICBjcmMxNjogbW92ZSB0byBsaWJfZ2VuZXJpYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTUxOTU3NzNlYWNlZmIyMmRkNDgzYTNjNTYwZWEzMGExNDI2M2NlMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMDE6MTg6MDEgMjAwOCArMDIwMAoKICAgIG1paXBoeWJiOiBtb3ZlIHRvIGRyaXZlcnMvbmV0L3BoeQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTgzMTQwMzU5OTZhOTExOGFjNTk0OGRmMmZmOGEyZjIxNjFlZDY3YQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBdWcgMjggMTI6MzE6NTEgMjAwOCArMDIwMAoKICAgIHNvZnRfc3BpOiBtb3ZlIHRvIGRyaXZlcnMvc3BpCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZDc1ZTBhYTljYWNhNjRkNGExZDU1ZDk1Y2QxY2E1ZjMwZDlmYzU2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxMjozMTo1MSAyMDA4ICswMjAwCgogICAgc29mdF9pMmM6IG1vdmUgdG8gZHJpdmVycy9pMmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDcxN2EyMjIyMjlmZGI3NzcwM2U5MTc0ZDBlYjA4YTRiNDFmZWJmNDkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgQXVnIDI4IDEyOjMxOjQ4IDIwMDggKzAyMDAKCiAgICBndW56aXA6IG1vdmUgdG8gbGliX2dlbmVyaWMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDUyYWVmOGY5YmEyOGI3NDc5NzNiZjc2NzQxYzIzZGI2NThkNTc3M2MKQXV0aG9yOiBXb2xmZ2FuZyBPY2tlciA8d2VvQHJlY2Nvd2FyZS5kZT4KRGF0ZToJVHVlIEF1ZyAyNiAxOTo1NToyMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBOQU5EIGNvbmZpZ3VyYXRpb24KCiAgICBNYWRlIE5BTkQgYmFuayBjb25maWd1cmF0aW9uIHNldHRpbmcgYSBjb25maWcgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgT2NrZXIgPHdlb0ByZWNjb3dhcmUuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWJjNTQyYTU5M2FiYzllOTc0ZmJkMzQ3MDRhZjg1YzM3YzM2NmM2MApBdXRob3I6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgpEYXRlOglUaHUgQXVnIDI4IDE2OjAzOjI4IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IGZpeCBVSUMgZXh0ZXJuYWxfaW50ZXJydXB0IGhhbmcgb24gVUlDMAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBVSUMgZXh0ZXJuYWxfaW50ZXJydXB0IGhhbmcgaWYgY3JpdGljYWwgb3Igbm9uLWNyaXRpY2FsCiAgICBpbnRlcnJ1cHQgaXMgc2V0IGF0IHRoZSBzYW1lIHRpbWUgYXMgYSBub3JtYWwgaW50ZXJydXB0IGlzIHNldCBvbiBVSUMwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA0NzM3ZDVmZmQxNjI0OGNiODBhYjNkZDRmMzc2NTA1N2E4MDNmMTgKQXV0aG9yOiBQcm9keXV0ICBIYXphcmlrYSA8cGhhemFyaWthQGFtY2MuY29tPgpEYXRlOglXZWQgQXVnIDI3IDE2OjM5OjAwIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IE9wdGltaXphdGlvbnMvQ2xlYW51cHMgZm9yIElCTSBERFIyIE1lbW9yeSBDb250cm9sbGVyCgogICAgUmVtb3ZlZCBNYWdpYyBudW1iZXJzIGZyb20gSW5pdGlhbGl6YXRpb24gcHJlbG9hZCByZWdpc3RlcnMKICAgIFRlc3RlZCB3aXRoIEtpbGF1ZWEsIEdsYWNpZXIsIENhbnlvbmxhbmRzIGFuZCBLYXRtYWkgYm9hcmRzCiAgICBBYm91dCA1LTclIGltcHJvdmVtZW50IHNlZW4gZm9yIExNQmVuY2ggbWVtdGVzdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQcm9keXV0IEhhemFyaWthIDxwaGF6YXJpa2FAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGE0OTA0MjJiZWQ2ODVjOTQ5MTI3NGVjOTk3ZjYyMDYxZDg4NjIwYgpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDI4IDEzOjE3OjA3IDIwMDggLTA2MDAKCiAgICBBRFM1MTIxOiBGaXggTk9SIGFuZCBDUExEIEFMRSB0aW1pbmcgZm9yIHJldiAyIHNpbGljb24KCiAgICBNUEM1MTIxIHJldiAyIHNpbGljb24gaGFzIGEgbmV3IHJlZ2lzdGVyIGZvciBjb250cm9sbGluZyBob3cgbG9uZwogICAgQ1MgaXMgYXNzZXJ0ZWQgYWZ0ZXIgZGVhc3NlcnRpb24gb2YgQUxFIGluIG11bHRpcGxleGVkIG1vZGUuCgogICAgVGhlIGRlZmF1bHQgaXMgdG8gYXNzZXJ0IENTIHRvZ2V0aGVyIHdpdGggQUxFLiAgVGhlIGFsdGVybmF0aXZlCiAgICBpcyB0byBhc3NlcnQgQ1MgKEFMRU4rMSkqTFBDX0NMSyBjbG9ja3MgYWZ0ZXIgZGVhc3NlcnRpb24gb2YgQUxFLgoKICAgIFRoZSBkZWZhdWx0IGlzIHdyb25nIGZvciB0aGUgTk9SIGZsYXNoIGFuZCBDUExEIG9uIHRoZSBBRFM1MTIxLgoKICAgIFRoaXMgcGF0Y2ggdHVybnMgb24gdGhlIGFsdGVybmF0aXZlIGZvciBDUzAgKE5PUikgYW5kIENTMiAoQ1BMRCkKICAgIGl0IGRvZXMgc28gY29uZGl0aW9uYWxseSBiYXNlZCBvbiBzaWxpY29uIHJldiAyLjAgb3IgZ3JlYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aGEgSiBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkOWE1ZWZhNGIzMzJmNDQyYjU0YTc1NWQ0OTk2OTEyM2MzYTg3NDIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDAwOjU2OjQ2IDIwMDggKzA2MDAKCiAgICBBZGQgSTJDIGZyZXF1ZW5jeSBkaXZpZGVycyBmb3IgQ29sZEZpcmUKCiAgICBUaGUgZXhpc3RpbmcgSTJDIGZyZXFlbmN5IGRpdmlkZXJzIGZvciBGRFIgZG9lcyBub3QgYXBwbHkKICAgIHRvIENvbGRGaXJlIHBsYXRmb3JtczsgdGh1cywgYSBzZXBlcmF0ZSB0YWJsZSBpcyBhZGRlZAogICAgYmFzZWQgb24gTUNGNXh4eCBSZWZlcmVuY2UgTWFudWFsCgogICAgU2lnbmVkLW9mZi1ieTogTHVpZ2kgJ0NvbWlvJyBNYW50ZWxsaW5pIDxsdWlnaS5tYW50ZWxsaW5pQGlkZi1oaXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBUYWJpIFRpbXVyIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVlYzU2N2E2N2UwMGQxZWQ4ZDk0MWU5MDk4YjdkNDIxZjQwOTFhYmYKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDAzOjAxOjE5IDIwMDggKzA2MDAKCiAgICBDb2xkRmlyZTogSTJDIGZpeCBmb3IgbXVsdGlwbGUgcGxhdGZvcm1zCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNTNjZjZhOWM3NDIzY2JhNjY4Yjg2Nzk3ODY0ODY0NWY3MWMzMDkwCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxOSAwMDozNzoxMyAyMDA4ICswNjAwCgogICAgQ29sZEZpcmU6IEFkZCBDT05GSUdfTUlJX0lOSVQgZm9yIE01MjcyQzMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3OGNlZDMwMjhkNDEzMGIyNGEzMTg5NDNhNzBjZjU1ODRhYjE2ZjQKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDAwOjI2OjI1IDIwMDggKzA2MDAKCiAgICBDb2xkRmlyZTogTXVsdGlwbGUgZml4ZXMgZm9yIE1DRjU0NDV4IHBsYXRmb3JtcwoKICAgIEFkZCBGRUMgcGluIHNldCBhbmQgbWlpIHJlc2V0IGluIF9fbWlpX2luaXQoKS4gQ2hhbmdlCiAgICBsZWdhY3kgZmxhc2ggdmVuZG9yIGZyb20gMiB0byBBTUQgTEVHQUNZICgweEZGRjApLAogICAgY2hhbmdlIGNmaV9vZmZzZXQgdG8gMCwgYW5kIGNoYW5nZSBDRkdfRkxBU0hfQ0ZJIHRvCiAgICBDT05GSUdfRkxBU0hfQ0ZJX0xFR0FDWS4gQ29ycmVjdCBNNTQ0NTFFVkIgYW5kCiAgICBNNTQ0NTVFVkIgZW52IHNldHRpbmdzIGluIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1NGU3MjViM2E5NTM3YjdmMjczYmJkMGNiY2ExODBmMjNhN2E2ZTgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE4OjI0OjI1IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogQ2hhbmdlIHRoZSBTRFJBTSBCUkQyV1QgdGltaW5nIGZyb20gMyB0byA3CgogICAgVGhlIHVzZXIgbWFudWFscyByZWNvbW1lbmQgNy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdXJ0IE1haGFuIDxrbWFoYW5AZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc5ZTA3OTljZjZlODhkOThkNzdiMjE2YTU1MjM0YmY2NzRiNTlhNGUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE2OjUwOjA3IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogUmFpc2UgdWFydCBiYXVkcmF0ZSB0byAxMTUyMDAgYnBzCgogICAgTTUyNDlFVkIsIE01MjcxRVZCLCBNNTI3MkMzLCBNNTI3NUVWQiBhbmQgTTUyODJFVkIgcGxhdGZvcm1zCiAgICB1YXJ0IGJhdWRyYXRlIGluY3JlYXNlIGZyb20gMTkyMDAgdG8gMTE1MjAwIGJwcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWI2YmE4NDI2ODI1NTJjY2YwNzFkMDAzNGRhMGEyMDYzM2QxZDFhYwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMTI6MDc6MDMgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBGaXggYm9hcmQuYyB3YXJuaW5nIG1lc3NhZ2UKCiAgICBJbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBuYW5kX2luaXQoKSB3YXJuaW5nIG1lc3NhZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3OThiMWM0NjUwZTlhODcxM2M5NWIyNWMxZTY2OWEyYmM4MGE5N2IKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXVnIDI3IDAxOjEwOjM0IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBSZW1vdmUgZHVwbGljYXRlIHNldHRpbmcgb2YgY3MwX2JuZHMgcmVnaXN0ZXIgb24gODZ4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI1OGMzN2IxNDczNTNiYzUyMmZmYzMzZGZiZDdkMGQ5Y2Q3YzMyZDcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyMSAyMDo0NDo0OSAyMDA4ICswMjAwCgogICAgbXBjNTJ4eDogYWRkZWQgc3VwcG9ydCBmb3IgdGhlIE1QQzUyMDAgYmFzZWQgTVVDLk1DNTIgYm9hcmQgZnJvbSBNQU4uCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOWNmZjQ0NDhhOWNiODgyZGVmZTZjOGJkZTczYjc3ZmMwYzYzNjc5OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMTkgMTQ6NDY6MzYgMjAwOCAtMDUwMAoKICAgIG1wYzg1eHg6IHJlbW92ZSByZWR1ZGFudCBjb2RlIHdpdGggbGliX3BwYy9pbnRlcnJ1cHRzLmMKCiAgICBGb3Igc29tZSByZWFzb24gd2UgZHVwbGljYXRlZCB0aGUgbWFqb3JpdHkgb2YgY29kZSBpbiBsaWJfcHBjL2ludGVycnVwdHMuYwogICAgbm90IHNob3cgaG93IHRoYXQgaGFwcGVuZWQsIGJ1dCB0aGVyZSBpcyBubyBnb29kIHJlYXNvbiBmb3IgaXQuCgogICAgVXNlIHRoZSBpbnRlcnJ1cHRfaW5pdF9jcHUoKSBhbmQgdGltZXJfaW50ZXJydXB0X2NwdSgpIHNpbmNlIGl0cyB3aHkKICAgIHRoZXkgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5NDkwYTdmMWE5NDg0NjE3YmFkNzVjNjA4MDdjZTAyYzhhM2E2ZDU2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEp1bCAyNSAxMzozMTowNSAyMDA4IC0wNTAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4NTM2RFMgcmVmZXJlbmNlIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFNyaWthbnRoIFNyaW5pdmFzYW4gPHNyaWthbnRoLnNyaW5pdmFzYW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERlamFuIE1pbmljIDxtaW5pY0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGVmNTBkNmMwNmVjZTc0ZmIxN2U4ZDc1MTBlNjJjYWQ5ZGY4YjgxMGQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDEyIDExOjE0OjE5IDIwMDggLTA1MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzg1MzYKCiAgICBUaGUgTVBDODUzNiBBZGRzIFNESEMgYW5kIFNBVEEgY29udHJvbGxlcnMgdG8gdGhlIFBRMyBmYW1pbHkuICBXZQogICAgYWxzbyBoYXZlIFNFUkRFUyBpbml0IGNvZGUgZm9yIHRoZSA4NTM2LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTcmlrYW50aCBTcmluaXZhc2FuIDxzcmlrYW50aC5zcmluaXZhc2FuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEZWphbiBNaW5pYyA8bWluaWNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEyOWJhNjE2YjM4MTNkZGU4NjFmMjVmM2Q4YTNjNDdjNWMzNmFkNWYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDEyIDExOjEzOjA4IDIwMDggLTA1MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzg1NzJEUyByZWZlcmVuY2UgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ1N2NhZWNkYmNhM2RmMjFhOTNhYmZmMTllYWIxMmRiYzYxYjc4OTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXVnIDI3IDAxOjA1OjM1IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBSZW1vdmUgb2xkIFNQRCBzdXBwb3J0IGZyb20gY3B1L21wYzg1eHgKCiAgICBBbGwgODV4eCBib2FyZHMgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byB0aGUgbmV3IGNvZGUgc28gd2UgY2FuCiAgICByZW1vdmUgdGhlIG9sZCBTUEQgRERSIHNldHVwIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZTc5MjdkYjEzODk3NjQ2OWU3MjU3ZTI5YzEzMzgwNTBhNTBmY2Q5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEF1ZyAyNyAwMTowNDowNyAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBTVFhTU0EgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzM2MGQ5Yjk3MGZiYjljMTM3NDRjMzU1ODc5NjcxMTY1YmJiOWI5ZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBdWcgMjcgMDE6MDM6NDIgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgU1RYR1AzIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhlNTUzMTNiN2FlMTIzNTJhMzQzZjliOTk2MmU2NjJkYmQ4OTcxODcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDIzOjUyOjU4IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IFNCQzg1NjAgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOTY1OGJlYzJlOGY1NWQ1NmNhMWJlNzAwOTBjZTVhMzQ4YmU0OTgwZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMjM6NTI6MzIgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODU0MEVWQUwgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNmJmYThmNzIzY2ZkODJjNTVlM2VmNTYyMGFkZTM5NjkxNjQ3MGE3MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMjM6NTI6MDcgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgUE04NTYgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDUzYmQzZTE3YmQ0ZjQ2MDI1N2MxOTI1NTU2OWVhNmRjZmFhZTgxNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMjM6NTE6NDkgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgUE04NTQgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzNiOTA3OWJhMjA5MjZmMTQyMzhmZmY4NjNiNjhhOThlOTM4OTQ4ZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMjM6MTU6MjggMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgc2JjODU0OCB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhOTQ3ZTRjN2ViMTVjZWExZDlmYjYzMzk1NWM1MTZhYWI1YWQzNWRkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAyMzoxNDoxNCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBhdHVtODU0OCB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiZTBiZDgyMzRiOTc3N2VjZDYzYzRjNjg2ZjcyYWYwNzBkODg2NTE3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAyMjo1Njo1NiAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBzb2NyYXRlcyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxMTY3YTJmZDU2MTM4YjcxNmUwMTM3MGM0MjY3ZjNiNzBiZjlmZmEwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAwODowMjozMCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTQ0RFMgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTZmNWIzNWI0MWRkYmQ2MzdiYjljYTRhZDk4NWIxZTBiMDdkYWUwZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTM6NTE6MDUgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODU2OE1EUyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTMxZDJjMWUyYmM5NTRkYzMyZTMzYmIyMDc2MTM5Zjg1Yjk1ZjhlNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTM6NTE6MDYgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODU0OENEUyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWExMWQ4NWNmMzE4Yjk2MWUwMjlmZTUwZDY4Y2E0N2QwMDRiY2U5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTU6NDg6MTggMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODU0MUNEUyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmI0MGVkYjEwZDgxZGE3YmJhNzI0ZWRiY2NkN2Y1Mzc3NzExMjU3OQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTE6MTI6NDIgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODU1NUFEUyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGI2MjUxMTRlOGJjNWE2YjQzNjE4MTE2N2E2ZTdmY2QzMzAzZGQyYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTE6MTI6NDQgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODU2MEFEUyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOTYxN2M4ZDQ5YTIxNzAzZWFmMTNhNDAzM2FiMWE1NmVlY2MwMzNjYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBKdW4gNiAxMzoxMjoxOCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTQwQURTIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDJhNmMyZDdhYjJhNjY2NjBmNDBhNmNkM2RlMmViMjllZTI5ZDk2OTMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDIxOjM0OjU1IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBBZGQgODV4eCBzcGVjaWZpYyByZWdpc3RlciBzZXR0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA2ZmIxYjczNDY4NDljY2QwYzIwMzA2MTQzZTMzNGY1Yjc2MTQzMDcwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1biA5IDExOjA3OjQ2IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBBZGQgZTUwMCBUTEIgaGVscGVyIGZvciBERFIgY29kZQoKICAgIFByb3ZpZGUgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBib2FyZCBjb2RlIGNhbiBjYWxsIHRvIG1hcCBUTEJzIHdoZW4KICAgIHNldHRpbmcgdXAgRERSLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDI2YjczOWFmZTVhNjc2MGJkMzQ1NzQzMTg4NzU5Y2Q5ZDBmM2I0NwpBdXRob3I6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KRGF0ZToJVHVlIEF1ZyAyNiAxNzowMzozOCAyMDA4IC0wNTAwCgogICAgZG05MDAwIHJlbW92ZSBkZWFkIGV4dGVybmFsIHBoeSBzdXBwb3J0LCBncGlvIGZpeAoKICAgIGRtOTAwMCBoYXMgY29kZSB0byBkZXRlY3QgYW5kIGluaXRpYWxpemUgZXh0ZXJuYWwgcGh5IHBhcnRzLCBidXQgbGF0ZXIKICAgIG9uIGluIHRoZSBjb2RlIHRoZSBwYXJ0IGlzIGZvcmNlZCB0byB1c2UgdGhlIGludGVybmFsIHBoeQogICAgdW5jb25kaXRpb25hbGx5LiAgUmVtb3ZlIHRoZSB1bnVzZWQvdW50ZXN0ZWQgY29kZS4KCiAgICBjaGFuZ2UgdGhlIEdQSU8gaW5pdGlhbGl6YXRpb24gc28gdGhhdCBvbmx5IHRoZSBHUElPIHVzZWQgYXMgYW4KICAgIGludGVybmFsIHBoeSByZXNldCAoaGFyZHdpcmVkIGluIHRoZSBjaGlwKSBpcyBzZXQgYXMgYW4gb3V0cHV0LiAgVGhlCiAgICByZW1haW5pbmcgR1BJTyBuZWVkIHRvIGJlIGhhbmRsZWQgYnkgYm9hcmQgc3BlY2lmaWMgY29kZSB0byBwcmV2ZW50CiAgICBwb3NzaWJsZSBkcml2ZSBjb25mbGljdHMuICBTZXQgYXMgaW5wdXRzIGZvciBzYWZldHkuCgogICAgcmVwbGFjZSBhIGZldyBtYWdpYyBudW1iZXJzIHdpdGggZGVmaW5lcwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYTE1NzNkYjBjMDdjOGJhOTllOWMzNzNiYjA3ZWNkNmY1OWRhNjcyYwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBBdWcgMjYgMTE6MTc6NDggMjAwOCAtMDUwMAoKICAgIFN0YW5kYXJkaXplIGJvb3RwLCB0ZnRwYm9vdCwgcmFycGJvb3QsIGRoY3AsIGFuZCBuZnMgY29tbWFuZCBkZXNjcmlwdGlvbnMKCiAgICBjbWRfbmV0LmMgY29tbWFuZCBkZXNjcmlwdGlvbnMgd2VyZSB1cGRhdGVkIHRvIGRlc2NyaWJlIHRoZSBvcHRpb25hbAogICAgaG9zdElQYWRkciBhcmd1bWVudC4gIFRoZSBkaGNwIGNvbW1hbmQgaGVscCBtZXNzYWdlIHdhcyBhbHNvIHVwZGF0ZWQKICAgIHRvIG1vcmUgY2xvc2VseSByZWZsZWN0IHRoZSBvdGhlciBjb21tYW5kcyBpbiBjbWRfbmV0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1MWRmZTEzODJlYmFmNjkxNDg1YmFkZmEwZWE1ZTc1YjA3MTA1MzFiCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVdlZCBBdWcgMjAgMTE6MzA6MjggMjAwOCArMDIwMAoKICAgIEZpeCBib2d1cyBlcnJvciBtZXNzYWdlIGluIHRoZSBESENQIGhhbmRsZXIKCiAgICBUaGUgREhDUCBoYW5kbGVyIGhhcyAxIHN0YXRlIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGlzIGNhc2UsIGNhdXNpbmcgYQogICAgZmFpbHVyZSBtZXNzYWdlIHdoZW4gdGhlcmUgaXMgYWN0dWFsbHkgbm8gZmFpbHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNjEzNjU1MDFhMGUyY2FlOWMxZGYyODE4YjdiNWIzZjUyYzQ1MGQxOApBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglXZWQgQXVnIDIwIDExOjMwOjI3IDIwMDggKzAyMDAKCiAgICBGaXggY29tcGlsZSBlcnJvciB3aGVuIENPTkZJR19CT09UUF9SQU5ET01fREVMQVkgaXMgc2V0LgoKICAgIFRoZSBvcHRpb24gQ09ORklHX0JPT1RQX1JBTkRPTV9ERUxBWSBkb2VzIG5vdCBjb21waWxlLCBiZWNhdXNlIG9mIGEKICAgIG1pc3NpbmcgZXh0ZXJuIGluc2lkZSB0aGUgbmV0L2Jvb3RwLmggaGVhZGVyCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDE4MDNmN2Y5MWZmMzVjYTQwMjI1OTA2NWRmNzU1NzEwN2RjZjI4YTIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDIxOjI2OjMyIDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogQWRkIEZFQyBCdWZmZXIgZGVzY3JpcHRvcnMgaW4gU1JBTQoKICAgIEFkZCBGRUMgQnVmZmVyIGRlc2NyaXB0b3JzIGFuZCBkYXRhIGJ1ZmZlciBpbiBTUkFNIGZvcgogICAgZmFzdGVyIGV4ZWN1dGlvbiBhbmQgYWNjZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDQyOWJlMjdjZTE5NTIxMGQ0YjlkZWNmOWU4NjdiOWNhNjE1NWE4N2QKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIxIDIzOjU1OjExIDIwMDggKzAwMDAKCiAgICBGaXggQ29sZEZpcmUgRkVDIHdhcm5pbmcgbWVzc2FnZXMKCiAgICBUeXBlcyBtaXNtYXRjaCBhbmQgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgaWNhY2hlX2ludmFsaWQoKQogICAgd2FybmluZyBtZXNzYWdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDZhMDAyMTcxMDk4ZTk2OGJkNWIzNjIzNDdkMjgzMTIyNGZhYjYwNDgKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTYXQgSnVsIDEyIDAwOjE3OjUwIDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBTS0dFIEV0aGVybmV0IGRyaXZlciB0byBib2FyZCBjb2RlLgoKICAgIFRoZSBvbmx5IGJvYXJkIHVzaW5nIHRoaXMgZHJpdmVyIGlzIHRoZSBTTDgyNDUgYm9hcmQuCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIGZvciB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4Mzc5ZjQyYmM3NDVlYjllNGNhNTUxYTMwZmQyZDBhNjNmNzQwZDc1CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU2F0IEp1bCAxMiAwMDowODo0NSAyMDA4IC0wNzAwCgogICAgTW92ZWQgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUgZm9yIFNLOTggRXRoZXJuZXQgZHJpdmVyCgogICAgQnJ1dGUtZm9yY2UgcmVtb3ZhbCBvZiAjaWZkZWZzLiAgRGlkbid0IHRvdWNoIHRoZSBjb2RlLgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA2NWQzZDk5YzI4ZGMzNjNkMTVlYWVlNzgyMjVmZjY0M2RmNDk5Yjk3CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAyMzo0MjoxOSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgVUxJNTI2WCBFdGhlcm5ldCBkcml2ZXIgdG8gYm9hcmQgY29kZS4KCiAgICBUaGUgb25seSBib2FyZCB1c2luZyB0aGlzIGRyaXZlciBpcyB0aGUgRnJlZXNjYWxlIE1QQzg2MTBIUENEIGJvYXJkLgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBmb3IgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTE0OTQ3MzEzYTcxMGY1ZGNmMDZiZWFmN2YyYWEyNGYxZWJjY2U0ZgpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMjM6MTU6MjggMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEJsYWNrZmluIEVNQUMgRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWRkZWQgYm9hcmRfZXRoX2luaXQoKSBmdW5jdGlvbiB0byBiZjUzNy1zdGFtcCBib2FyZC4KICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBCbGFja2luIEVNQUMgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmYzM2M2NlMzU0MDhmMzQ4Y2FjY2VkNjg1MDVmMzc0N2E1M2UzZDdjCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDAxOjA0OjE5IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBHUkVUSCBFdGhlcm5ldCBkcml2ZXIgdG8gQ1BVIGRpcmVjdG9yeQoKICAgIEFkZGVkIGEgY3B1X2V0aF9pbml0KCkgZnVuY3Rpb24gdG8gbGVvbjIvbGVvbjMgQ1BVIGRpcmVjdG9yaWVzIGFuZAogICAgcmVtb3ZlZCBjb2RlIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4Njg4MmI4MDc3MTMwOWJjZWIxMWM2YWNjZmQ3ZjZmOTBhZGU4YmZjCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEF1ZyAyNiAyMjoxNjoyNSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgTUNGRkVDIEV0aGVybmV0IGRyaXZlciB0byBDUFUgZGlyZWN0b3J5CgogICAgQWRkZWQgYSBjcHVfZXRoX2luaXQoKSBmdW5jdGlvbiB0byBjb2xkZmlyZSBDUFUgZGlyZWN0b3JpZXMgYW5kCiAgICByZW1vdmVkIGNvZGUgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGIzMWRhODhiOWMxNjBkODBkNDJhNTljYmJiMzFlMjRmMjcxODRkNWMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUdWUgQXVnIDI2IDIyOjEyOjM2IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBGU0xfTUNETUFGRUMgRXRoZXJuZXQgZHJpdmVyIHRvIENQVSBkaXJlY3RvcnkKCiAgICBBZGRlZCBhIGNwdV9ldGhfaW5pdCgpIGZ1bmN0aW9uIHRvIGNwdS9tY2Y1NDd4Xzh4IGRpcmVjdG9yeSBhbmQKICAgIHJlbW92ZWQgY29kZSBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYjU3MTBkOTk3NGY2ZjBmM2RkYjRlNjdkNmNjY2MyNjJhYjM3MDQ5ZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MzggMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IFJlbW92ZSBvbGQgU1BEIHN1cHBvcnQgZnJvbSBjcHUvbXBjODZ4eAoKICAgIEFsbCA4Nnh4IGJvYXJkcyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHRoZSBuZXcgY29kZSBzbyB3ZSBjYW4KICAgIHJlbW92ZSB0aGUgb2xkIFNQRCBERFIgc2V0dXAgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDliZDRlNTkxMWI3NTA4Mzc1MTU0NjZiYzc0NDkwODc2OThiODhlMGUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDE1OjAxOjM3IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IFNCQzg2NDFEIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDM5YWExYTczNDgzZTFhYzJiZDU2ZDU1MjNhYmZjMzk3MGVlODJjNzcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI2IDE1OjAxOjM2IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IE1QQzg2MTBIUENEIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA2YThlNTY5MjkzM2U4ZTZkNmU1YmE3ZTU5NGY0OWRkNmQ0YzNhMjYzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMTozNSAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NjQxSFBDTiB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDZmZjRmMTEwMGVhNjRhMDFkMjFjYzAwOGNlODVhYzE1ZWIxODIxZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MzQgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IEFkZCA4Nnh4IHNwZWNpZmljIHJlZ2lzdGVyIHNldHRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDIzM2ZkZDUwMmE2YzIyN2Y0NzYyMTJiMzA5NzY1M2FkNDhkN2UyNTQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDE1OjAxOjMyIDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBBZGQgRERSMiBESU1NIHBhcmFtdGVyIHN1cHBvcnQKCiAgICBDb21wdXRlIERJTU0gcGFyYW1ldGVycyBiYXNlZCB1cG9uIHRoZSBTUEQgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDVjMDVhMjM2M2E2YWMxMWUwZTQwNTkyNjAzNDU0NmZmYWQ3MWZhZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MzAgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IEFkZCBERFIxIERJTU0gcGFyYW10ZXIgc3VwcG9ydAoKICAgIENvbXB1dGUgRElNTSBwYXJhbWV0ZXJzIGJhc2VkIHVwb24gdGhlIFNQRCBpbmZvcm1hdGlvbiBpbiBzcGQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNThlNWU5YWZmMTQ3ZThjN2UyYmMxNDA2YmY5Mzg0ZjY1ZjAyMGZmYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MjkgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IFJld3JpdGUgdGhlIEZTTCBtcGM4eHh4IEREUiBjb250cm9sbGVyIHNldHVwIGNvZGUuCgogICAgVGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIHJld3JpdGUgaXQgdG8gYmUgYWJsZSB0byBzaGFyZSB0aGUgc2FtZQogICAgaW5pdGlhbGl6YXRpb24gY29kZSBvbiBhbGwgRlNMIFBvd2VyUEMgcHJvZHVjdHMgdGhhdCBoYXZlIEREUgogICAgY29udHJvbGxlcnMuICAoODN4eCwgODV4eCwgODZ4eCkuCgogICAgVGhlIGNvZGUgaXMgYnJva2VuIHVwIGludG8gdGhlIGZvbGxvd2luZyBzdGVwczoKCUdFVF9TUEQKCUNPTVBVVEVfRElNTV9QQVJNUwoJQ09NUFVURV9DT01NT05fUEFSTVMKCUdBVEhFUl9PUFRTCglBU1NJR05fQUREUkVTU0VTCglDT01QVVRFX1JFR1MKCVBST0dSQU1fUkVHUwoKICAgIFRoaXMgYWxsb3dzIHVzIHRvIHNoYXJlIG1vcmUgY29kZSBhbiBlYXNpbHkgYWxsb3cgZm9yIGJvYXJkIHNwZWNpZmljIGNvZGUKICAgIG92ZXJyaWRlcy4KCiAgICBBZGRpdGlvbmFsbHkgdGhpcyBjb2RlIGJhc2UgYWRkcyBzdXBwb3J0IGZvciA+NEcgb2YgRERSIGFuZCBwcm92aWRlcyBhCiAgICBmb3VuZGF0aW9uIGZvciBzdXBwb3J0aW5nIGludGVybGVhdmluZyBvbiBwcm9jZXNzb3JzIHdpdGggbW9yZSB0aGFuIG9uZQogICAgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNzg0ZTMyYjRiY2UwMDEzOTgzNTA2YjExYWY0Yjg1YjhjYTNkMzZlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMToyOCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogUHJvdmlkZSBhIGdlbmVyaWMgc2V0X2Rkcl9sYXdzKCkKCiAgICBQcm92aWRlIGEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgd2lsbCBzZXR1cCB0aGUgbGFzdCBhdmFpbGFibGUKICAgIExBV3MgKHVwdG8gMikgZm9yIEREUi4gIFVzZWZ1bCBmb3IgU1BEL2R5YW5taWMgRERSIHNldHRpbmcgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBmMmNiZTNmNWVkZGJkZjM4NDgyNjVmMzVlNGY3MTQ0MzQ5MjljZmYKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MjcgMjAwOCAtMDUwMAoKICAgIEFkZCBwcm9wZXIgU1BEIGRlZmluaXRpb25zIGZvciBERFIxLzIvMwoKICAgIEFsc28gYWRkcyBoZWxwZXIgZnVuY3Rpb25zIGZvciBERFIxLzIgdG8gdmVyaWZ5IHRoZSBjaGVja3N1bS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI4NWRiNzQ3MTZjNzI0YWU4YTBmZjE3Nzg3OGZkMDlhNzQ0MjhjN2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI3IDAxOjAyOjQ4IDIwMDggKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZGYyMmI2NmQ4YmYwNWJkNDZlMDk4Y2Y3MWU2ZGNhMjliMzBhYTdiCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTkgMTA6MDg6NDkgMjAwOCArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBtdWFzMzAwMSBib2FyZCAoTVBDODI3MCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzMjIwOThiZmYzMjQxMGQyYTAwMDMxNjQ5YjQ3YzRlYzkwYTY2ZDlhCkF1dGhvcjogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJVHVlIEF1ZyAxOSAwODozMToxOCAyMDA4ICswNTMwCgogICAgY29tbW9uL2NtZF9sb2FkLmMgY2xlYW51cCAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgogICAgLSBSZW1vdmUgdW51c2VkIGdsb2JhbCB2YXJpYWJsZSBvc19kYXRhX2NvdW50LgogICAgLSBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHouCgogICAgU2lnbmVkLW9mZi1ieTogR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IDMwNjYyMGI3NjJhNGY5ZmE2Njc4NTY4YWQyZTg3NzJkZWMxNDUyMDgKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CU1vbiBBdWcgMTggMTM6MzU6MjcgMjAwOCArMDIwMAoKICAgIHJlbW92ZSBNVlMxIGJvYXJkCgogICAgTVZTMSBib2FyZCBoYXMgcmVhY2hlZCBlbmQtb2YtbGlmZSBhbmQgY2FuIGJlIHJlbW92ZWQgY29tcGxldGVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+Cgpjb21taXQgNDBkN2U5OWQzNzRiYTBhMGEyOWNkMWE4YmE0MGQzYjdjMmMxNzVjNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6NDUgMjAwOCAtMDUwMAoKICAgIGJvb3RtOiByZWZhY3RvciBkb19yZXNldCBhbmQgb3MgYm9vdCBmdW5jdGlvbiBhcmdzCgogICAgVGhlcmUgaXMgbm8gbmVlZCBmb3IgZWFjaCBPUyBzcGVjaWZpYyBmdW5jdGlvbiB0byBjYWxsIGRvX3Jlc2V0KCkgd2UKICAgIGNhbiBqdXN0IGRvIGl0IG9uY2UgaW4gYm9vdG0uIFRoaXMgbWVhbnMgaXRzIGZlYXNpYmxlIG9uIGFuIGVycm9yIGZvcgogICAgdGhlIE9TIGJvb3QgZnVuY3Rpb24gdG8gcmV0dXJuLgoKICAgIEFsc28sIHJlbW92ZSBwYXNzaW5nIGluIGNtZF90YmxfdCBhcyBpdHMgbm90IG5lZWRlZCBieSB0aGUgT1MgYm9vdAogICAgZnVuY3Rpb25zLglmbGFnIGlzbid0IGN1cnJlbnRseSB1c2VkIGJ1dCBtaWdodCBiZSBpbiB0aGUgZnV0dXJlIHNvCiAgICB3ZSBsZWZ0IGl0IGFsb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDBhZmFjMjJhOWM2MDJlNTVjNTAxYzgwMGYxYzA2NDMyNDcxMWI1NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6NDQgMjAwOCAtMDUwMAoKICAgIGZkdDogQWRkZWQgcmVzaXplIGNvbW1hbmQKCiAgICBSZXNpemUgdGhlIGZkdCB0byBzaXplICsgcGFkZGluZyB0byA0ayBib3VuZGFyeQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmExYTJjYjZlMmI4N2VlNTUwZTZmMjdiNjQ3ZDIzMzMxZGZkNWUxYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6NDMgMjAwOCAtMDUwMAoKICAgIGZkdDogcmVmYWN0b3IgaW5pdHJkIHJlbGF0ZWQgY29kZQoKICAgIENyZWF0ZWQgYSBuZXcgZmR0X2luaXRyZCgpIHRvIGRlYWwgd2l0aCBzZXR0aW5nIHRoZSBpbml0cmQgcHJvcGVydGllcwogICAgaW4gdGhlIGRldmljZSB0cmVlIGFuZCBmaXhpbmcgdXAgdGhlIG1lbSByZXNlcnZlLiAgV2UgY2FuIHVzZSB0aGlzCiAgICBib3RoIGluIHRoZSBjaG9vc2VuIG5vZGUgaGFuZGxpbmcgYW5kIGxldHMgdXMgcmVtb3ZlIHNvbWUgZHVwbGljYXRlZAogICAgY29kZSB3aGVuIHdlIGZpeHVwIHRoZSBpbml0cmQgaW5mbyBpbiBib290bSBvbiBQUEMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzMDgyZDIzNDhjOGUxMzM0MmY1ZmRkMTBlOWIzZjc0MDgwNjJkYmY5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDo0MiAyMDA4IC0wNTAwCgogICAgZmR0OiByZWZhY3RvciBmZHQgcmVzaXplIGNvZGUKCiAgICBNb3ZlIHRoZSBmZHQgcmVzaXppbmcgY29kZSBvdXQgb2YgcHBjIHNwZWNpZmljIGJvb3QgY29kZSBhbmQgaW50bwogICAgY29tbW9uIGZkdCBzdXBwb3J0IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzOTZmNjM1YjhmZjNjY2JjMzhkNzVkNWVkYTk4NDQ0YzY0NjY4MTBhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDo0MSAyMDA4IC0wNTAwCgogICAgYm9vdG06IHJlZmFjdG9yIGltYWdlIGRldGVjdGlvbiBhbmQgb3MgbG9hZCBzdGVwcwoKICAgIENyZWF0ZWQgYSBib290bV9zdGFydCgpIHRoYXQgaGFuZGxlcyB0aGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG9mIGFsbAogICAgdGhlIGltYWdlcyB0aGF0IHdpbGwgYmUgdXNlZCBieSB0aGUgYm9vdG0gY29tbWFuZCAoT1MsIHJhbWRpc2ssIGZkdCkuCiAgICBBcyBwYXJ0IG9mIHRoaXMgd2Ugbm93IHRyYWN0IGFsbCB0aGUgcmVsZXZhbnQgaW1hZ2Ugb2Zmc2V0cyBpbiB0aGUKICAgIGJvb3RtX2hlYWRlcnNfdCBzdHJ1Y3QuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBoYXZlIGFsbCB0aGUgbmVlZGVkCiAgICBzdGF0ZSBmb3IgZnV0dXJlIHN1Yi1jb21tYW5kcyBhbmQgbGV0cyB1cyByZWR1Y2UgYSBiaXQgb2YgYXJjaAogICAgc3BlY2lmaWMgY29kZSBvbiBTUEFSQy4KCiAgICBDcmVhdGVkIGEgYm9vdG1fbG9hZF9vcygpIHRoYXQgZGVhbHMgd2l0aCBkZWNvbXByZXNzaW9uIGFuZCBsb2FkaW5nCiAgICB0aGUgT1MgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlOTA2Y2ZhZTA4ZThjYzI0NDdmNTliMWJjNGMyMmFiOWMzYzI4NmQyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDo0MCAyMDA4IC0wNTAwCgogICAgYm9vdG06IG1vdmUgbG1iIGludG8gdGhlIGJvb3RtX2hlYWRlcnNfdCBzdHJ1Y3R1cmUKCiAgICBUbyBhbGxvdyBmb3IgcGVyc2lzdGVudCBzdGF0ZSBiZXR3ZWVuIGZ1dHVyZSBib290bSBzdWJjb21tYW5kcyB3ZQogICAgbmVlZCB0aGUgbG1iIHRvIGV4aXN0IGluIGEgZ2xvYmFsIHN0YXRlLgogICAgTW92aW5nIGl0IGludG8gdGhlIGJvb3RtX2hlYWRlcnNfdCBhbGxvd3MgdXMgdG8gZG8gdGhhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU0ZjljODY2OTEzMDliMmY5MTlmNTY3ZjkyNTViOGJjYWQyYzc2NTEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjM5IDIwMDggLTA1MDAKCiAgICBib290bTogU2V0IHdvcmtpbmcgZmR0IGFkZHJlc3MgYXMgcGFydCBvZiB0aGUgYm9vdG0gZmxvdwoKICAgIFNldCB0aGUgZmR0IHdvcmtpbmcgYWRkcmVzcyBzbyAiZmR0IEZPTyIgY29tbWFuZHMgY2FuIGJlIHVzZWQgYXMgcGFydAogICAgb2YgdGhlIGJvb3RtIGZsb3cuCUFsc28gc2V0IGFuIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSAiZmR0YWRkciIKICAgIHdpdGggdGhlIHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDZhMDk5MThmMzkwMzQ1MDMxM2UyMDQ3YTljYzI1OGJmNTg3MmY0NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6MzggMjAwOCAtMDUwMAoKICAgIGJvb3RtOiByZWZhY3RvciBmZHQgbG9jYXRpbmcgYW5kIHJlbG9jYXRpb24gY29kZQoKICAgIE1vdmUgdGhlIGNvZGUgdGhhdCBoYW5kbGVzIGZpbmRpbmcgYSBkZXZpY2UgdHJlZSBibG9iIGFuZCByZWxvY2F0aW5nCiAgICBpdCAoaWYgbmVlZGVkKSBpbnRvIGNvbW1vbiBjb2RlIHNvIGFsbCBhcmNoJ3MgaGF2ZSBhY2Nlc3MgdG8gaXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjNGY5NDE5YzZiNTQ5NThlMGVkZGJjYmM5ZTVhNGE3YjdlYzk5ODY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozNyAyMDA4IC0wNTAwCgogICAgYm9vdG06IHJlZmFjdG9yIHJhbWRpc2sgbG9jYXRpbmcgY29kZQoKICAgIE1vdmUgZGV0ZXJtaW5nIGlmIHdlIGhhdmUgYSByYW1kaXNrIGFuZCB3aGVyZSBpdHMgbG9jYXRlZCBpbnRvIHRoZQogICAgY29tbW9uIGNvZGUuIEtlZXAgdHJhY2sgb2YgdGhlIHJhbWRpc2sgc3RhcnQgYW5kIGVuZCBpbiB0aGUKICAgIGJvb3RtX2hlYWRlcnNfdCBpbWFnZSBzdHJ1Y3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjMTYwYTk1NDQ3NDNlODBlODg4OWVkYjIyNzU1MzhlNzc2NGNlMzM0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozNiAyMDA4IC0wNTAwCgogICAgYm9vdG06IHJlZmFjdG9yIGVudHJ5IHBvaW50IGNvZGUKCiAgICBNb3ZlIGVudHJ5IHBvaW50IGNvZGUgb3V0IG9mIGVhY2ggYXJjaCBhbmQgaW50byBjb21tb24gY29kZS4KICAgIEtlZXAgdGhlIGVudHJ5IHBvaW50IGluIHRoZSBib290bV9oZWFkZXJzX3QgaW1hZ2VzIHN0cnVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDIwMjIwZDIyYjlmNDE0NDYyODg1ODhjZDJlNDU3ZTAwNzdhMThiZWQKQXV0aG9yOiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbXZpc3RhLmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAxMTo0NDo1NyAyMDA4IC0wNzAwCgogICAgbXBjNzQ0OGhwYzI6IEZpeCBQQ0kgSS9PIHNwYWNlIG1hcHBpbmcuCgogICAgUENJIEkvTyBzcGFjZSBpcyBjdXJyZW50bHkgbWFwcGVkIDE6MSBhdCAweEZBMDAwMDAwLiBMaW51eCByZXF1aXJlcwogICAgUENJIEkvTyBzcGFjZSB0byBzdGFydCBhdCAwIG9uIHRoZSBQQ0kgYnVzLiBUaGlzIHBhdGNoIG1hcHMgUENJIEkvTwogICAgc3BhY2Ugc3VjaCB0aGF0IDB4RkEwMDAwMDAgaW4gdGhlIHByb2Nlc3NvcidzIGFkZHJlc3Mgc3BhY2UgbWFwcyB0byAwCiAgICBvbiB0aGUgUENJIEkvTyBidXMuCgogICAgU2lnbmVkLW9mZi1ieSBSYW5keSBWaW5zb24gPHJ2aW5zb25AbXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjRlMDc1MjBiYmI1NDY3YWQ3MmViOTJhNWM5MTc3ZDI3OTdiOWUzMApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAxMyAxODoxMDoyNiAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBTcGVjaWZ5IG1haW50YWluZXJzIGZvciBpLk1YMzEtYmFzZWQgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MWU0NmUyOGZkYTRiYmRmNTE0OWFjN2Y2N2Q2MmZjYzhkZjRkYTYzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMToyOCAyMDA4ICswMjAwCgogICAgQURTNTEyMTogYWRqdXN0IGltYWdlIGFkZHJlc3NlcyBpbiBSQU0gYW5kIGZsYXNoCgogICAgVXNlIHRoZSBzYW1lIG1hcHBpbmcgaW4gZmxhc2ggYXMgdXNlZCBieSBMaW51eAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTlmMTAxNDEyYzE2ZWRlZTlmZDU1ZGI0MDM5ZTFkNjhhODMzYjI4YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjYgMTM6MTQ6MzQgMjAwOCArMDIwMAoKICAgIGNtZF9tZW0uYzogRml4IGhlbHAgbWVzc2FnZSBhbGlnbm1lbnQKCiAgICBCdWcgd2FzIGludHJvY2VkIGJ5ICJCaWcgd2hpdGUtc3BhY2UgY2xlYW51cCIgKDUzNjc3ZWYxKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWE5ZWViNzhiODI1YmZhZGUzMWQ3NjA2YTJmZTNiOWVjYTllMzViZQpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJV2VkIEF1ZyAyMCAxMToxMTo1MiAyMDA4ICswMjAwCgogICAgY2hhbmdlIG12QkwtTTcgZGVmYXVsdCBlbnYgYW5kIG1vdmUgdG8gdmVuZG9yIHN1YmRpcgoKICAgIGZpeCBtdkJMLU03IGNvbmZpZyBhbmQgbW92ZSB0byBtYXRyaXhfdmlzaW9uIHN1YmRpcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDAyZDI3Y2FmMjZlN2ViOTEzZDQ3NGQzYTkxZjY3ZDU2YzhjMzFkNQpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDIyIDIzOjUyOjQwIDIwMDggLTA3MDAKCiAgICBNUEM4M1hYOiBBZGQgbWlzY2VsbGFuZW91cyByZWdpc3RlcnMgYW5kICNkZWZpbmVzIHRvIHN1cHBvcnQgTVBDODN4eCBmYW1pbHkgZGV2aWNlcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBlbGVtZW50cyB0byB0aGUgODN4eCBzeXNjb25mIHN0cnVjdHVyZSBhbmQgI2RlZmluZSB2YWx1ZXMgdGhhdCBhcmUgdXNlZAogICAgYnkgbXBjODN4eCBmYW1pbHkgZGV2aWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQ3YWQ1NzY4YWJkYTY2OWFjMGU3ZjQ2ZmNkYjYyZmJlODI4ZDYzNwpBdXRob3I6IElyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PgpEYXRlOglGcmkgQXVnIDIyIDExOjAwOjE1IDIwMDggLTA3MDAKCiAgICBNUEM4MzQ5RU1EUzogQWRkIFBDSSBBZ2VudCAoUENJU0xBVkUpIHN1cHBvcnQKCiAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHRoZSBNUEM4MzQ5RU1EUyB0byBydW4gaW4gUENJIEFnZW50IG1vZGUsIGFjdGluZyBhcyBhCiAgICBQQ0kgY2FyZCByYXRoZXIgdGhhbiBhIGhvc3QgY29tcHV0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRmZjlhZWE5ZDZiNTYwMjY4M2E5MjA5NTFlZjg5Njk5NjQzOGFmNjIKQXV0aG9yOiBJcmEgVy4gU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KRGF0ZToJRnJpIEF1ZyAyMiAxMTowMDoxNCAyMDA4IC0wNzAwCgogICAgbXBjODN4eDogYWRkIFBDSVNMQVZFIHN1cHBvcnQgdG8gODNYWF9HRU5FUklDX1BDSSBzZXR1cCBjb2RlCgogICAgVGhpcyBhZGRzIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHVubG9jayB0aGUgUENJIGNvbmZpZ3VyYXRpb24gYml0LCBzbyB0aGF0CiAgICBhbnkgZXh0cmEgUENJIHNldHVwIChzdWNoIGFzIG91dGJvdW5kIHdpbmRvd3MsIGV0Yy4pIGNhbiBiZSBkb25lIGFmdGVyCiAgICB1c2luZyB0aGUgODNYWF9HRU5FUklDX1BDSSBjb2RlIHRvIHNldCB1cCB0aGUgUENJIGJ1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJcmEgVy4gU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTYyMzM4ZTFmY2RlMjMxY2E0ZDU2MmU1ZWJkNzg1OTQ1NjczMTY5MQpBdXRob3I6IElyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PgpEYXRlOglGcmkgQXVnIDIyIDExOjAwOjEzIDIwMDggLTA3MDAKCiAgICBNUEM4MzQ5RU1EUzogdXNlIDgzWFhfR0VORVJJQ19QQ0kgc2V0dXAgY29kZQoKICAgIENoYW5nZSB0aGUgTVBDODM0OUVNRFMgYm9hcmQgdG8gdXNlIHRoZSBnZW5lcmljIFBDSSBpbml0aWFsaXphdGlvbiBjb2RlCiAgICBmb3IgdGhlIG1wYzgzeHggY3B1LgoKICAgIFNpZ25lZC1vZmYtYnk6IElyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNGU1NWE0OTQxZThiYTQ2YmMwNjAyMGIyNzQ3OTI4YWRmOGZkZWU3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyNSAxNDo1MzowOSAyMDA4IC0wNTAwCgogICAgZml4IG91dCBvZiB0cmVlIGJ1aWxkaW5nCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNDlkMTBjZjAyN2QwNTllZTE1YzI2MjAxMGEwNWNkYWVjMDk2MWUxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyAyNSAyMzo0NTo0MSAyMDA4ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZHRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNGQ1NmU4ZGVhNjcwNzU3YzgwMWE2YTY1NTMxZjAyYThmOTgxY2UxZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyMCAyMDoyOTozOCAyMDA4ICswMjAwCgogICAgUlRDOiBGaXggTWFrZWZpbGUgcHJvYmxlbSB3aXRoIENPQkpTLSQoQ09ORklHX1JUQ19EUzEzMDcgfHwgQ09ORklHX1JUQ19EUzEzMzgpCgogICAgVGhpcyAifHwiIGRvZXNuJ3Qgc2VlbSB0byB3b3JrLiBOb3cgdXNpbmcgdGhlIGlkZWEgc3VnZ2VzdCBieSBTY290dCBXb29kCiAgICB0byBjb21iaW5lIGJvdGggY29uZmlnIG9wdGlvbnMgaW50byBvbmUgbGluZS4gVGhpcyBldmVuIGFsbG93cyBkZWZpbmluZwogICAgYm90aCBvcHRpb25zIGFuZCBub3QgZ2VuZXJhdGluZyB0aGUgdGFyZ2V0IG9iamVjdCB0d2ljZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDc5ZWRiOTEzZGJhZTE0N2I1MGE0ODhjZjAyZTAzZjQ3M2ZjNWYyOApBdXRob3I6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KRGF0ZToJRnJpIEp1bCA0IDE2OjUwOjA1IDIwMDggKzAyMDAKCiAgICBNWDMxOiBmaXggYml0IG1hc2tzIGluIGZ1bmN0aW9uIG14MzFfZGVjb2RlX3BsbCgpCgogICAgQml0cyBNUENUTFtNRk5dIGFuZCBNUENUTFtNRkRdIHdlcmUgbm90IGZ1bGx5IGNvdmVyZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgoKY29tbWl0IGU4ZjEyMDdiYmYyZGY2ZmI2OTNlZTFhYTMzMjliMjAxNGM5MmU1ZTYKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglNb24gQXVnIDI1IDExOjExOjM0IDIwMDggKzAyMDAKCiAgICBDb3JyZWN0IEFSTSBWZXJzYXRpbGUgVGltZXIgSW5pdGlhbGl6YXRpb24KCiAgICAgLSBBY2NvcmRpbmcgdG8gQVJNIER1YWwtVGltZXIgTW9kdWxlIChTUDgwNCkgVFJNIChBUk0gRERJMDI3MSksCiAgICAgICAtLSBUaW1lciBWYWx1ZSBSZWdpc3RlciBAIFRJTUVSIEJhc2UgKyA0IGlzIFJlYWQtb25seS4KICAgICAgIC0tIFByZXNjYWxlIFZhbHVlIChCaXRzIDMtMiBvZiBUSU1FUiBDb250cm9sIHJlZ2lzdGVyKQoJY2FuIG9ubHkgYmUgb25lIG9mIDAwLDAxLDEwLiAxMSBpcyB1bmRlZmluZWQuCiAgICAgICAtLSBDRkdfSFogZm9yIFZlcnNhdGlsZSBib2FyZCBpcyBzZXQgdG8KCSNkZWZpbmUgQ0ZHX0haCQkoMTAwMDAwMCAvIDI1NikKCVNvIFByZXNjYWxlIGJpdHMgaXMgc2V0IHRvIGluZGljYXRlCgktIDggU3RhZ2VzIG9mIFByZXNjYWxlLCBDbG9jayBkaXZpZGVkIGJ5IDI1NgogICAgIC0gVGhlIFRpbWVyIENvbnRyb2wgUmVnaXN0ZXIgaGFzIG9uZSBVbmRlZmluZWQvU2hvdWxkbid0IFVzZSBCaXQKICAgICAgIFNvIHdlIHNob3VsZCBkbyByZWFkL21vZGlmeS93cml0ZSBPcGVyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgNTM1Y2ZhNGYzZGU4NmNmNDhkNmMwYWYxZGFmMzNhZWJkY2EwODlmOQpBdXRob3I6IEd1cnVyYWphIEhlYmJhciBLIFIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CU1vbiBBdWcgMjUgMTE6MzA6MjkgMjAwOCArMDIwMAoKICAgIEFkZCBBUk0gQU1CQSBQTDAzMSBSVEMgU3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEd1cnVyYWphIEhlYmJhciBLIFIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgZTM5NDExNjc0NjY5Y2M4ODBlMWVjNGE4Y2E0Nzk0ZmIxNWMzM2E0NQpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgQXVnIDE5IDE2OjIxOjAzIDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlZCByZWR1bmRhbnQgTkFORCBpbml0aWFsaXphdGlvbiBjb2RlLgoKICAgIEFSTSBEYVZpbmNpOiBSZW1vdmVkIHJlZHVuZGFudCBOQU5EIGluaXRpYWxpemF0aW9uIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgYjNmYjY2M2IyMGQ5OTVjYTQxMzI3ZGI4NzdkZGIxNjgyNzliM2Y2MgpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgQXVnIDE5IDE2OjIxOjAwIDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogRml4IGNvbXBpbGF0aW9uIGVycm9yIHdpdGggbmV3IE1URCBjb2RlLgoKICAgIEFSTSBEYVZpbmNpOiBGaXggY29tcGlsYXRpb24gZXJyb3Igd2l0aCBuZXcgTVREIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgMTA5YzMwZmI4ZWRlYTFhMTVkMzdhNmNlNzg3Y2Q1ZmFmMzNkOGU0MwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBdWcgMjIgMTQ6Mzc6MDUgMjAwOCAtMDQwMAoKICAgIEFkZCBub3RlIG9uIGRlcmVmZXJlbmNpbmcgL2FsaWFzZXMgcG9pbnRlcnMKCiAgICBSZXBsYWNlIHRoZSAibXVzdCBxdW90ZSBzcGVjaWFsIGNoYXJhY3RlcnMiIG5vdGUgd2l0aCBhIGhpbnQgb24KICAgIGhvdyB0byBkZXJlZmVyZW5jZSAvYWxpYXNlcyBwb2ludGVycyBieSBvbWl0dGluZyB0aGUgbGVhZGluZyAiLyIuCiAgICBUaGlzIGZlYXR1cmUgd2FzIGludHJvZHVjZWQgYnkgS3VtYXIgR2FsYSBhcyBhIGxpYmZkdCBlbmhhbmNlbWVudAogICAgaW4gY29tbWl0IGVkMDM1NzA4MjM1MzMyYzNjMTE3ZWUzYmIxYTQyNjA2M2YwM2NmY2IuCgogICAgRXhhbXBsZToKCiAgICA9PiBmZHQgcHJpbnQgL2FsaWFzZXMKICAgIGFsaWFzZXMgewoJICAgIGV0aGVybmV0MCA9ICIvcWVAZTAxMDAwMDAvdWNjQDIwMDAiOwoJICAgIGV0aGVybmV0MSA9ICIvcWVAZTAxMDAwMDAvdWNjQDMwMDAiOwoJICAgIHNlcmlhbDAgPSAiL3NvYzgzNjBAZTAwMDAwMDAvc2VyaWFsQDQ1MDAiOwoJICAgIHNlcmlhbDEgPSAiL3NvYzgzNjBAZTAwMDAwMDAvc2VyaWFsQDQ2MDAiOwoJICAgIHBjaTAgPSAiL3BjaUBlMDAwODUwMCI7CiAgICB9OwogICAgPT4gZmR0IHByaW50IGV0aGVybmV0MAogICAgdWNjQDIwMDAgewoJICAgIGRldmljZV90eXBlID0gIm5ldHdvcmsiOwoJICAgIGNvbXBhdGlibGUgPSAidWNjX2dldGgiOwoJICAgIGNlbGwtaW5kZXggPSA8MHgxPjsKCSAgICByZWcgPSA8MHgyMDAwIDB4MjAwPjsKCSAgICBpbnRlcnJ1cHRzID0gPDB4MjA+OwoJICAgIGludGVycnVwdC1wYXJlbnQgPSA8MHgyPjsKCSAgICBsb2NhbC1tYWMtYWRkcmVzcyA9IFswMCAwMCAwMCAwMCAwMCAwMF07CgkgICAgcngtY2xvY2stbmFtZSA9ICJub25lIjsKCSAgICB0eC1jbG9jay1uYW1lID0gImNsazkiOwoJICAgIHBoeS1oYW5kbGUgPSA8MHgzPjsKCSAgICBwaHktY29ubmVjdGlvbi10eXBlID0gInJnbWlpLWlkIjsKCSAgICBwaW8taGFuZGxlID0gPDB4ND47CiAgICB9OwoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZmVlY2EzZjU3OGI3ZjUzYzAzMmJhMjAzNjk4NzUxYzk4MmY4YmY1YQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMTQgMDg6Mjg6MTkgMjAwOCAtMDUwMAoKICAgIGxpYmZkdDogQWRkIHN1cHBvcnQgZm9yIHVzaW5nIGFsaWFzZXMgaW4gZmR0X3BhdGhfb2Zmc2V0KCkKCiAgICBJZiB0aGUgcGF0aCBkb2Vzbid0IHN0YXJ0IHdpdGggJy8nIGNoZWNrIHRvIHNlZSBpZiBpdCBtYXRjaGVzIHNvbWUgYWxpYXMKICAgIHVuZGVyICIvYWxpYXNlcyIgYW5kIHN1YnN0aXR1dGUgdGhlIG1hdGNoaW5nIGFsaWFzIHZhbHVlIGluIHRoZSBwYXRoCiAgICBhbmQgcmV0cnkgdGhlIGxvb2t1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMDIxOTM5OWE0ZTNhOGVkYjQyOGUxOTI0ZTFhMDNkNThjY2NmOGQ4ZQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglXZWQgQXVnIDYgMTQ6NTA6NDkgMjAwOCArMTAwMAoKICAgIGxpYmZkdDogSW1wbGVtZW50IGZkdF9nZXRfcHJvcGVydHlfbmFtZWxlbigpIGFuZCBmZHRfZ2V0cHJvcF9uYW1lbGVuKCkKCiAgICBBcyB3ZWxsIGFzIGZkdF9zdWJub2RlX29mZnNldCgpLCBsaWJmZHQgaW5jbHVkZXMgYW4KICAgIGZkdF9zdWJub2RlX29mZnNldF9uYW1lbGVuKCkgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgc3Vibm9kZSBuYW1lIHRvCiAgICBsb29rIHVwIG5vdCBhcyBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZywgYnV0IGFzIGEgc3RyaW5nIHdpdGggYW4KICAgIGV4cGxpY2l0IGxlbmd0aC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIHRoZSBjYWxsZXIgaGFzIHRoZSBuYW1lIGFzCiAgICBwYXJ0IG9mIGEgbG9uZ2VyIHN0cmluZywgc3VjaCBhcyBhIGZ1bGwgcGF0aC4KCiAgICBIb3dldmVyLCB3ZSBkb24ndCBoYXZlIGNvcnJlc3BvbmRpbmcgJ25hbWVsZW4nIHZlcnNpb25zIGZvcgogICAgZmR0X2dldF9wcm9wZXJ0eSgpIGFuZCBmZHRfZ2V0cHJvcCgpLiAgVGhlcmUgYXJlIGxlc3Mgb2J2aW91cyB1c2UKICAgIGNhc2VzIGZvciB0aGVzZSB2YXJpYW50cyBvbiBwcm9wZXJ0eSBuYW1lcywgYnV0IHRoZXJlIGFyZQogICAgY2lyY3Vtc3RhbmNlcyB3aGVyZSB0aGV5IGNhbiBiZSB1c2VmdWwgZS5nLiBsb29raW5nIHVwIHByb3BlcnR5IG5hbWVzCiAgICB3aGljaCBuZWVkIHRvIGJlIHBhcnNlZCBmcm9tIGEgbG9uZ2VyIHN0cmluZyBidWZmZXIgc3VjaCBhcyB1c2VyIGlucHV0CiAgICBvciBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgb3IgbG9va2luZyB1cCBhbiBhbGlhcyBpbiBhIHBhdGggd2l0aAogICAgSUVFRTEyNzUgc3R5bGUgYWxpYXNlcy4KCiAgICBTbywgc2luY2UgaXQncyB2ZXJ5IGVhc3kgdG8gaW1wbGVtZW50IHN1Y2ggdmFyaWFudHMsIHRoaXMgcGF0Y2ggZG9lcwogICAgc28uICBUaGUgb3JpZ2luYWwgTlVMLXRlcm1pbmF0ZWQgdmFyaWFudHMgYXJlLCBvZiBjb3Vyc2UsIGltcGxlbWVudGVkCiAgICBpbiB0ZXJtcyBvZiB0aGUgbmFtZWxlbiB2ZXJzaW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCBmMTcxNzQ2ZjcwMWVhNThiZjZhNTNlODM1YjUzZDJhYWViZWUwZDgxCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVR1ZSBKdWwgMjkgMTQ6NTE6MjIgMjAwOCArMTAwMAoKICAgIGxpYmZkdDogRm9yZ290IG9uZSBmdW5jdGlvbiB3aGVuIGNsZWFuaW5nIHRoZSBuYW1lc3BhY2UKCiAgICBJbiBjb21taXQgYjZkODBhMjBmYzI5M2YzYjk5NWMzY2UxYTY3NDRhNTU3NDE5MjEyNSwgd2UgcmVuYW1lZCBhbGwKICAgIGxpYmZkdCBmdW5jdGlvbnMgdG8gYmUgcHJlZml4ZWQgd2l0aCBmZHRfIG9yIF9mZHRfIHRvIG1pbmltaXNlIHRoZQogICAgY2hhbmNlIG9mIGNvbGxpc2lvbnMgd2l0aCB0aGluZ3MgZnJvbSB3aGF0ZXZlciBwYWNrYWdlIGxpYmZkdCBpcwogICAgZW1iZWRkZWQgaW4sIHB1bGxlZCBpbnRvIHRoZSBsaWJmZHQgYnVpbGQgdmlhIHRoYXQgZW52aXJvbm1lbnQncwogICAgbGliZmR0X2Vudi5oLgoKICAgIEV4Y2VwdC4uLiBJIG1pc3NlZCBvbmUuICBUaGlzIHBhdGNoIGFwcGxpZXMgdGhlIHNhbWUgdHJlYXRtZW50IHRvCiAgICBfc3RyaW5nbGlzdF9jb250YWlucygpLiAgV2hpbGUgd2UncmUgYXQgaXQsIGFsc28gbWFrZSBpdCBzdGF0aWMgc2luY2UKICAgIGl0J3Mgb25seSB1c2VkIGluIHRoZSBzYW1lIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgNDYzOTBkYTE1NDExMzUxZmMzYjQ5OGJkOGMxNjE1Zjc4ZmU4MGRmMApBdXRob3I6IFdvbGZyYW0gU2FuZyA8dy5zYW5nQHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgSnVsIDkgMTE6MjI6NDQgMjAwOCArMDIwMAoKICAgIGxpYmZkdDogSW1wcm92ZSBkb2N1bWVudGF0aW9uIGluIGxpYmZkdC5oCgogICAgRml4IGEgZmV3IHR5cG9zIGFuZCBtaXN0YWtlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmcmFtIFNhbmcgPHcuc2FuZ0BwZW5ndXRyb25peC5kZT4KICAgIEFja2VkLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCBmYzc3NThlZTRmNTc4Mjg3OGYyZTk2ODc2YjdiYzU2Y2ZlZTBhYzY2CkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVdlZCBKdWwgOSAxNDoxMDoyNCAyMDA4ICsxMDAwCgogICAgbGliZmR0OiBJbmNyZWFzZSBuYW1lc3BhY2UtcG9sbHV0aW9uIHBhcmFub2lhCgogICAgbGliZmR0IGlzIHN1cHBvc2VkIHRvIGVhc3kgdG8gZW1iZWQgaW4gcHJvamVjdHMgYWxsIGFuZCBzdW5kcnkuCiAgICBPZnRlbiwgaXQgd29uJ3QgYmUgcHJhY3RpY2FsIHRvIHNlcGFyYXRlIHRoZSBlbWJlZGRlZCBsaWJmZHQncwogICAgbmFtZXNwYWNlIGZyb20gdGhhdCBvZiB0aGUgc3Vycm91bmRpbmcgcHJvamVjdC4gIFdoaWNoIG1lYW5zIHRoZXJlIGNhbgogICAgYmUgbmFtZXNwYWNlIGNvbmZsaWN0cyBiZXR3ZWVuIGV2ZW4gbGliZmR0J3MgaW50ZXJuYWwvc3RhdGljIGZ1bmN0aW9ucwogICAgYW5kIGZ1bmN0aW9ucyBvciBtYWNyb3MgY29taW5nIGZyb20gdGhlIHN1cnJvdW5kaW5nIHByb2plY3QncyBoZWFkZXJzCiAgICB2aWEgbGliZmR0X2Vudi5oLgoKICAgIFRoaXMgcGF0Y2gsIHRoZXJlZm9yZSwgcmVuYW1lcyBhIGJ1bmNoIG9mIGxpYmZkdCBpbnRlcm5hbCBmdW5jdGlvbnMKICAgIGFuZCBtYWNyb3MgYW5kIG1ha2VzIGEgZmV3IG90aGVyIGNoYW5jZXMgdG8gcmVkdWNlIHRoZSBjaGFuY2VzIG9mCiAgICBuYW1lc3BhY2UgY29sbGlzaW9ucyB3aXRoIGVtYmVkZGluZyBwcm9qZWN0cy4gIFNwZWNpZmljYWxseToKCS0gSW50ZXJuYWwgZnVuY3Rpb25zIChldmVuIHN0YXRpYyBvbmVzKSBhcmUgbm93IG5hbWVkIF9mZHRfKigpCgoJLSBUaGUgdHlwZSBhbmQgKHN0YXRpYykgZ2xvYmFsIGZvciB0aGUgZXJyb3IgdGFibGUgaW4KCSAgICAgIGZkdF9zdHJlcnJvcigpIGdhaW4gYW4gZmR0XyBwcmVmaXgKCgktIFRoZSB1bnVzZWQgbWFjcm8gUEFMSUdOIGlzIHJlbW92ZWQKCgktIFRoZSBtZW1lcSBhbmQgc3RyZXEgbWFjcm9zIGFyZSByZW1vdmVkIGFuZCBvcGVuLWNvZGVkIGluIHRoZQoJICAgICAgdXNlcnMgKHRoZXkgd2VyZSBvbmx5IHVzZWQgb25jZSBlYWNoKQoKCS0gT3RoZXIgbWFjcm9zIGdhaW4gYW4gRkRUXyBwcmVmaXgKCgktIFRvIHNhdmUgc29tZSBvZiB0aGUgYnVsayBmcm9tIHRoZSBwcmV2aW91cyBjaGFuZ2UsIGFuCgkgICAgICBGRFRfVEFHQUxJR04oKSBtYWNybyBpcyBpbnRyb2R1Y2VkLCB3aGVyZSBGRFRfVEFHQUxJR04oeCkgPT0KCSAgICAgIEZEVF9BTElHTih4LCBGRFRfVEFHU0laRSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCBjNjY4MzAyNjNhZjE5ODMxZjJiN2RiMzA3Zjc5ZDE5NDNmZWJmN2Y5CkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBKdWwgNyAxMDoxNDoxNSAyMDA4ICsxMDAwCgogICAgZHRjOiBFbmFibGUgYW5kIGZpeCAtV2Nhc3QtcXVhbCB3YXJuaW5ncwoKICAgIEVuYWJsaW5nIC1XY2FzdC1xdWFsIHdhcm5pbmdzIGluIGR0YyBzaG93cyB1cCBhIG51bWJlciBvZiBwbGFjZXMgd2hlcmUKICAgIHdlIGFyZSBpbmNvcnJlY3RseSBkaXNjYXJkaW5nIGEgY29uc3QgcXVhbGlmaWNhdGlvbi4gIFRoZXJlIGFyZSBhbHNvCiAgICBzb21lIHBsYWNlcyB3aGVyZSB3ZSBhcmUgaW50ZW50aW9uYWxseSBkaXNjYXJkaW5nIHRoZSAnY29uc3QnLCBhbmQgd2UKICAgIG5lZWQgYW4gdWdseSBjYXN0IHRocm91Z2ggdWludHB0cl90IHRvIHN1cHByZXNzIHRoZSB3YXJuaW5nLiAgSG93ZXZlciwKICAgIG1vc3Qgb2YgdGhlc2UgYXJlIHByZXR0eSB3ZWxsIGlzb2xhdGVkIHdpdGggdGhlICpfdygpIGZ1bmN0aW9ucy4gIFNvCiAgICBpbiB0aGUgaW50ZXJlc3RzIG9mIG1heGltdW0gc2FmZXR5IHdpdGggY29uc3QgcXVhbGlmaWNhdGlvbnMsIHRoaXMKICAgIHBhdGNoIGVuYWJsZXMgdGhlIHdhcm5pbmdzIGFuZCBmaXhlcyB0aGUgZXhpc3RpbmcgY29tcGxhaW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGVmNGU4Y2UxYmViNWI5M2FlZGRhNWE0YzFiOTBiZmQ5ODljNjc5MWUKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIEp1bCA3IDEwOjEwOjQ4IDIwMDggKzEwMDAKCiAgICBkdGM6IEVuYWJsZSBhbmQgZml4IC1XcG9pbnRlci1hcml0aCB3YXJuaW5ncwoKICAgIFRoaXMgcGF0Y2ggdHVybnMgb24gdGhlIC1XcG9pbnRlci1hcml0aCBvcHRpb24gaW4gdGhlIGR0YyBNYWtlZmlsZSwKICAgIGFuZCBmaXhlcyB0aGUgcmVzdWx0aW5nIHdhcm5pbmdzIGR1ZSB0byB1c2luZyAodm9pZCAqKSBpbiBwb2ludGVyCiAgICBhcml0aG1ldGljLiAgV2hpbGUgY29udmVuaWVudCwgcG9pbnRlciBhcml0aG1ldGljIG9uIHZvaWQgKiBpcyBub3QKICAgIHBvcnRhYmxlLCBzbyBpdCdzIGJldHRlciB0aGF0IHdlIGF2b2lkIGl0LCBwYXJ0aWN1bGFybHkgaW4gbGliZmR0LgoKICAgIEFsc28gYWRkIG5lY2Vzc2FyeSBkZWZpbml0aW9uIG9mIHVpbnRwdHJfdCBuZWVkZWQgYnkgRGF2aWQgR2lic29uJ3MKICAgIGNoYW5nZXNldCAiZHRjOiBFbmFibGUgYW5kIGZpeCAtV3BvaW50ZXItYXJpdGggd2FybmluZ3MiICh0aGUgZGVmaW5pdGlvbgogICAgY29tZXMgZnJvbSBzdGRpbnQuaCwgd2hpY2ggdS1ib290IGRvZXNuJ3QgaGF2ZSkuIC0tIGd2YgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA1ZDRiM2QyYjMxZTU4ZmNiMmQ0YmQxMGFmNzYyZjVmZjQxYjIyOWZkCkF1dGhvcjogVGlydW1hbGEgUiBNYXJyaSA8dG1hcnJpQGFtY2MuY29tPgpEYXRlOglUaHUgQXVnIDIxIDIxOjU0OjUzIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFNQ0MgUFBDNDYwR1QvRVggUENJLUUgZGUtZW1waGFzaXMgYWRqdXN0bWVudCBmaXgKCiAgICBEdXJpbmcgcmVjZW50IFBDSS1FIHRlc3RzIGl0IGhhcyBiZWVuIGZvdW5kIHRoYXQgY3VycmVudAogICAgZHJpdmVybCBsZXZlbCBhbmQgZGUtZW1waGFzaXMgdmFsdWVzIGFyZSBub3Qgc2V0IGNvcnJlY3RseS4KICAgIEFmdGVyIHN3ZWVwaW5nIHRocm9naCBhbGwgZGUtZXBoYXNpcyB2YWx1ZXMsIGl0IHdhcyBmb3VuZCB0aGF0CiAgICAweDEzMCBpcyBhIHJpZ2h0IHZhbHVlLiBXaGVyZSAweDEzIGlzIGRyaXZlciBsZXZlbCBhbmQgMCBpcwogICAgZGUtZW1waGFzaXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGlydW1hbGEgUiBNYXJyaSA8dG1hcnJpQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBiYjg2ZDgyM2I2YzE1MGM3ZWUxN2RlMGNmY2E5ZmZjY2MxNjQ2M2IKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJV2VkIEF1ZyAyMCAyMDo0Njo1NiAyMDA4ICswMjAwCgogICAgTWFrZSB0aGUgWUFGRlMgZmlsZXN5c3RlbSB3b3JrCgogICAgUmVjZW50bHkgdGhlIFlBRkZTIGZpbGVzeXN0ZW0gc3VwcG9ydCBoYXMgYmVlbiBhZGRlZCB0byBVLWJvb3QuCiAgICBIb3dldmVyLCBqdXN0IGVuYWJsaW5nIENPTkZJR19ZQUZGUzIgaXMgbm90IGVub3VnaCB0byBnZXQgaXQgd29ya2luZy4KCiAgICB5bW91bnQgd2lsbCBnZW5lcmF0ZSBhbiBleGNlcHRpb24gKHdoZW4gZGVyZWZlcmVuY2luZyBtdGQtPnJlYWRvb2IoKSksIGJlY2F1c2UKICAgIHRoZSBnZW5lcmljRGV2aWNlIGlzIGEgbnVsbCBwb2ludGVyLiBGdXJ0aGVyLCBhIGxvdCBvZiBsb2dnaW5nIGlzIHByb2R1Y2VkCiAgICB3aGlsZSB1c2luZyBZQUZGUyBmcywgc28gbG9nZ2luZyBzaG91bGQgYWxzbyBiZSBkaXNhYmxlZC4KICAgIEJvdGggaXNzdWVzIGFyZSBzb2x2ZWQgYnkgdGhpcyBwYXRjaC4KCiAgICBXaXRoIHRoaXMgcGF0Y2ggYW5kIENPTkZJR19ZQUZGUzIgZW5hYmxlZCwgSSBnZXQgYSByZWFkYWJsZSBmaWxlc3lzdGVtCiAgICBpbiBVLWJvb3QsIGFzIHdlbGwgYXMgaW4gTGludXguCgogICAgVGVzdGVkIG9uIGEgQXRtZWwgQVQ5MVNBTTkyNjFFSyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIEFja2VkLWJ5OiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEB0YW5kYmVyZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZmQ3ZjM4NjE0ZTIxZjc0NWI2ZDY4NDVmY2M2MTZlYmM1ZTRkMzZmCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVR1ZSBBdWcgMTkgMDg6NDI6NTMgMjAwOCArMDkwMAoKICAgIEZpeCBPbmVOQU5EIHJlYWRfb29iL3dyaXRlX29vYiBmdW5jdGlvbnMgY29tcGF0YWJpbGl0eQoKICAgIEFsc28gc3luYyB3aXRoIGtlcm5lbCBPbmVOQU5EIGNvZGVzCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkNzY1NDU2YzFkMzNmMjAxMGQyNzE3ZWU1OGRlNzY0N2ZkYzYzNDYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxOCAxNzoxMToyMCAyMDA4IC0wNTAwCgogICAgTkFORDogUmVtb3ZlIGRlbGF5IGZyb20gbmFuZF9ib290X2ZzbF9lbGJjLmMuCgogICAgSXQgd2FzIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGFuZCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGxlZnQgaW4uCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjU1NjQ4MzczNDEyNjc5MzUyMmZiN2E4Y2YzNmFmOTBkYTc4ZjA4NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyMSAxMTowNTowMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIG9mICJwcGM0eHg6IE9wdGltaXplIFBMQjQgQXJiaXRlci4uLiIgcGF0Y2gKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHNvbWUgbWlub3IgaXNzdWVzIGludHJvZHVjZWQgd2l0aCB0aGUgcGF0Y2g6CiAgICBwcGM0eHg6IE9wdGltaXplIFBMQjQgQXJiaXRlci4uLiBmcm9tIFByb2R5dXQgSGF6YXJpa2E6CgogICAgLSBSZXdvcmsgbWVtb3J5LXF1ZXVlIGFuZCBQTEIgYXJiaXRlciBvcHRpbWl6YXRpb24gY29kZSwgdGhhdCB0aGUKICAgICAgbG9jYWwgdmFyaWFibGUgaXMgbm90IG5lZWRlZCBhbnltb3JlLiBUaGlzIHJlbW92ZXMgb25lICNpZmRlZi4KICAgIC0gVXNlIGNvbnNpc3RhbnQgc3BhY2luZyBpbiBwcGM0eHguaCBoZWFkZXIgKFhYWCArIDB4MDEgaW5zdGVhZAogICAgICBvZiBYWFgrIDB4MDEpLiBUaGlzIHdhcyBub3QgaW50cm9kdWNlZCBieSBQcm9keXV0LCBqdXN0IGEKICAgICAgY29weS1wYXN0ZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNzk1ODliY2ZiMjRiYTExMDY4NDYwMjc2YTNjYzk1NDlhYjUzNDZmCkF1dGhvcjogUHJvZHl1dCAgSGF6YXJpa2EgPHBoYXphcmlrYUBhbWNjLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMCAwOTozODo1MSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBPcHRpbWl6ZSBQTEI0IEFyYml0ZXIgYW5kIE1lbW9yeSBRdWV1ZSBzZXR0aW5ncyBmb3IgUFBDNDQwU1AvU1BlLAoJUFBDNDA1RVggYW5kIFBQQzQ2MEVYL0dUL1NYCgogICAgLSBSZWFkIHBpcGVsaW5lIGRlcHRoIHNldCB0byA0IGZvciBQUEM0NDBTUC9TUEUsIFBQQzQwNUVYLCBQUEM0NjBFWC9HVC9TWAogICAgICBwcm9jZXNzb3JzCiAgICAtIE1vdmVkIFBMQjQgQXJiaXRlciByZWdpc3RlciBkZWZpbml0aW9ucyB0byBwcGM0eHguaCBzaW5jZSBpdCBpcyBzaGFyZWQKICAgICAgYWNyb3NzIHByb2Nlc3NvcnMgKDQwNSBhbmQgNDQwLzQ2MCkKICAgIC0gT3B0aW1pemUgTWVtb3J5IFF1ZXVlIHNldHRpbmdzIGZvciBQUEM0NDBTUC9TUEUgYW5kIFBQQzQ2MEVYL0dUL1NYCiAgICAgIHByb2Nlc3NvcnMKICAgIC0gQWRkIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyBmb3IgTWVtb3J5IFF1ZXVlIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzCgogICAgU2lnbmVkLW9mZi1ieTogUHJvZHl1dCBIYXphcmlrYSA8cGhhemFyaWthQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJhMzdhYTAzMjg3YzU0ODNjNjFjMGEzZTMyMGM4ODg4YmVlMDE0M2EKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDE5IDE1OjQxOjE4IDIwMDggLTA1MDAKCiAgICBmZHQ6IHJld29yayBmZHRfZml4dXBfZXRoZXJuZXQoKSB0byB1c2UgZW52IGluc3RlYWQgb2YgYmRfdAoKICAgIE1vdmUgdG8gdXNpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAnZXRoYWRkcicsICdldGgxYWRkcicsIGV0Yy4uCiAgICBpbnN0ZWFkIG9mIGJkLT5iaV9lbmV0YWRkciwgYmlfZW5ldDFhZGRyLCBldGMuCgogICAgVGhpcyBtYWtlcyB0aGUgY29kZSBhIGJpdCBtb3JlIGZsZXhpYmxlIHRvIHRoZSBudW1iZXIgb2YgZXRoZXJuZXQKICAgIGludGVyZmFjZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0Y2FjZjdjNjQ2MDk4MzlmODA5ZTJmOWM0NTg3M2YxZDY1ODYxNzAzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE5IDE0OjU3OjU1IDIwMDggKzAyMDAKCiAgICBodXNoOiBGaXggcHJpbnRmIGRlYnVnIG1hY3JvIGluIGh1c2guYyBzbyB0aGF0IGl0IHVzYWJsZSBpbiBVLUJvb3QKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGRlYnVnX3ByaW50ZigpIG1hcmNvIGZvciBVLUJvb3QgaW4gaHVzaC5jIGFuZAogICAgbW92ZXMgdGhlIGRlZmluaXRpb24gb2YgREVCVUdfU0hFTEwgdG8gYSBwbGFjZSB0aGF0IGlzIGFjdHVhbGx5IGNvbXBpbGVkCiAgICB1bmRlciBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhmMmI0NTdlZjI2YTQ0ZDllNWZkN2Q2YjE2YzM5NGU1YzNhNzFjYTIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxOSAwOTo1Nzo0MSAyMDA4ICswMjAwCgogICAgY2ZpOiByZW5hbWUgQ0ZHX0ZMQVNIX0NGSV9EUklWRVIgdG8gQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKCiAgICBDb21taXQJMDBiMTg4M2E0Y2FjNTlkOTdjZDI5N2IxYTNhMzk4ZGI4NTk4Mjg2NQogICAgbWlzc2VkIGEgZmV3IGJvYXJkczoKCWluY2x1ZGUvY29uZmlncy9NNTI1M0RFTU8uaAoJaW5jbHVkZS9jb25maWdzL21sNTA3LmgKCWluY2x1ZGUvY29uZmlncy9yZWR3b29kLmgKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMDc2OGI3YTg3Mjk2NDA4NWVlY2U4ZDVlOWZlYzkxNzVlOWRlYjE2MQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIEF1ZyAxOCAxMzo0MToyNyAyMDA4ICswMjAwCgogICAgQ29uc29saWRhdGUgc3RybWh6KCkgaW1wbGVtZW50YXRpb24KCiAgICBBUk0sIGkzODYsIG02OGsgYW5kIHBwYyBhbGwgaGF2ZSBpZGVudGljYWwgaW1wbGVtZW50YXRpb25zIG9mIHN0cm1oeigpLgogICAgT3RoZXIgYXJjaGl0ZWN0dXJlcyBkb24ndCBwcm92aWRlIHRoaXMgZnVuY3Rpb24gYXQgYWxsLgoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgc3RybWh6KCkgaW50byBsaWJfZ2VuZXJpYywgcmVkdWNpbmcgY29kZSBkdXBsaWNhdGlvbgogICAgYW5kIHByb3ZpZGluZyBhIG1vcmUgdW5pZmllZCBBUEkgYWNyb3NzIGFyY2hpdGVjdHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGE5MjhkMGRmMjExZjFkODI5MzA4ZDMzNWQxOWJlM2NhNDI1NThkZmMKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CU1vbiBBdWcgMTggMTI6MDI6NTEgMjAwOCArMDIwMAoKICAgIGZpeCBtdmJjX3AgYm9hcmQgYnVpbGQgd2FybmluZ3MKCiAgICBmaXggYnVpbGQgd2FybmluZ3MgQCBtdkJDLVAgYm9hcmQgYnkgdXNpbmcgY29ycmVjdCB0eXBlcywgaS5lLiBjaGFuZ2UKICAgIG91dF9iZTMyIHRvIG91dF9iZTE2IGFuZCBvdXRfOCBhY2NvcmRpbmdseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+Cgpjb21taXQgYTk1OGI2NjNkMjdmNjE2YmQxZGZiNzIwZDFiNDc2ZDFlY2FhYTU2OQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMTYgMTg6NTQ6MjcgMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBmaXggcG9zaXggc3VwcG9ydCBvbiBmaW5kCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiZWY5MmUyMTVkOTQ1Y2M1NzQzOTljMWExYjAwYTNhNzZkMzVhYTAzCkF1dGhvcjogQXhlbCBCZWllcmxlaW4gPGJlbGF0cm9uaXhAd2ViLmRlPgpEYXRlOglTYXQgQXVnIDE2IDAwOjMwOjQ4IDIwMDggKzAyMDAKCiAgICBBZGRpbmcgYm9vdGxpbWl0L2Jvb3Rjb3VudCBmZWF0dXJlIGZvciBNUEM1WFhYIG9uIFRRTTUyMDAgQm9hcmRzCgogICAgVGVzdGVkIHdpdGggVFFNNTIwMFMgb24gU1RLNTJYWC4yMDAgQm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBeGVsIEJlaWVybGVpbiA8YmVsYXRyb25peEB3ZWIuZGU+Cgpjb21taXQgMDgwMDcwN2I2ZDUwNDFhODQwYTY1ZDU1NjAzMmMxNWM1ODRiNTVmOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTQ6MzY6MzIgMjAwOCAtMDUwMAoKICAgIG1vZF9pMmNfbWVtKCkgYnVnZml4CgogICAgVGhlIGxhc3QgdXNlZCBjaGlwLCBhZGRyZXNzLCBhbmQgYWRkcmVzcyBsZW5ndGggd2VyZSBub3QgYmVpbmcKICAgIHN0b3JlZCBmb3IgdGhlIGltbSBhbmQgaW1uIGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNGFmYmVmOTY3Mjc1YjJmNjM2YWJhZTg2ZjkxYjgxYmVjZWU3YWQwMwpBdXRob3I6IFN0ZXZlbiBBLiBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTU6Mzc6MzEgMjAwOCAtMDQwMAoKICAgIEZpeCB0eXBvIGluIHNwZWxsaW5nIG9mIEFUQVBJLgoKICAgIENvcnJlY3QgYSBzbWFsbCBzcGVsbGluZyBtaXN0YWtlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlbiBBLiBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+Cgpjb21taXQgMzZjMmQzMDYyZWNjNmFiODVmOGUyMzcxODBlYjEzNDQ2NGM0ODQxOApBdXRob3I6IFN0ZXZlbiBBLiBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTU6MzQ6MTAgMjAwOCAtMDQwMAoKICAgIEFkZCBhIGhvb2sgdG8gYWxsb3cgYm9hcmQtc3BlY2lmaWMgUElPIG1vZGUgc2V0dGluZy4KCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBob29rIHdoZXJlYnkgYSBib2FyZC1zcGVjaWZpYyByb3V0aW5lIGNhbiBiZSBjYWxsZWQgdG8KICAgIGNvbmZpZ3VyZSBoYXJkd2FyZSBmb3IgYSBQSU8gbW9kZS4JVGhlIHByb3RvdHlwZSBmb3IgdGhlIGJvYXJkLXNwZWNpZmljCiAgICByb3V0aW5lIGlzOgoKCWludCBpbmxpbmUgaWRlX3NldF9waW9tb2RlKGludCBwaW9fbW9kZSkKCiAgICBpZGVfc2V0X3Bpb21vZGUgc2hvdWxkIGJlIHByZXBhcmVkIHRvIGNvbmZpZ3VyZSBoYXJkd2FyZSBmb3IgYSBwaW9fbW9kZQogICAgYmV0d2VlbiAwIGFuZCA2LCBpbmNsdXNpdmUuICBJdCBzaG91bGQgcmV0dXJuIDAgb24gc3VjY2VzcyBvciAxIG9uIGZhaWx1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KCmNvbW1pdCA5NTcxYjg0Y2IxNDIzODc2ZjExNTMwODFiOWU2YTUxZDkwZmJjZGM0CkF1dGhvcjogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxNToyOToxMiAyMDA4IC0wNDAwCgogICAgUmVwbGFjZSBlbnVtcyBpbiBhdGEuaCB3aXRoIGFuIGluY2x1ZGUgb2YgbGliYXRhLmgKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBlbnVtcyBmcm9tIGF0YS5oIGFuZCByZXBsYWNlcyB0aGVtIHdpdGggYW4KICAgIGluY2x1ZGUgb2YgbGliYXRhLmguICBUaGlzIHdheSwgd2UgZWxpbWluYXRlIGR1cGxpY2F0ZWQgY29kZSwgYW5kCiAgICBwcmV2ZW50IGVycm9ycyB3aGVyZWJ5IHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgY291bGQgYmUgb3V0IG9mIHN5bmMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KCmNvbW1pdCAwZGUwYWZiY2E4NjVlY2Y0ODJiNGQyYjYzNTIzNjc0NmRlZjg1MThmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxODozMjo0MSAyMDA4ICswMjAwCgogICAgY29sZGZpcmU6IGZpeCBDRkkgZHJpdmVycyBhY3RpdmF0aW9uIHdpdGggbmV3IG1hY3JvCgogICAgcmVuYW1lIENGR19GTEFTSF9DRklfRFJJVkVSIHRvIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3ZGJjMzhhZDkxNWY0YWU2N2Y0Y2QxODE4YjdhYzhmZWQzNjhhYWE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozNSAyMDA4IC0wNTAwCgogICAgZmR0OiBmZHQgYWRkciB3L28gYW55IGFyZ3MgcmVwb3J0cyBiYWNrIHRoZSBjdXJyZW50IHdvcmtpbmcgYWRkcmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjk1M2Q5OWZkNTI4YTQ5NmI0MDBhNzA2YjUxMWVhZjhlM2VhNjZhZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6MzQgMjAwOCAtMDUwMAoKICAgIGZkdDogYWRkZWQgdGhlIGFiaWxpdHkgdG8gc2V0IGluaXRyZCBzdGFydC9lbmQgdmlhIGNob3NlbiBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmZmE0YmFmYWNhZWY2NzA1ODQ2M2IzZDdkMDA5OWNlZDU3NTY5ZGQyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozMyAyMDA4IC0wNTAwCgogICAgQWRkIGNvbW1hbmQgdG8gZW5hYmxlL2Rpc2FibGUgaW50ZXJydXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOWU4ZTYzY2NlNjk1NTZhZWYxMGI1OGJjYmM1NmQzMjRmNTcwZWMzYQpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDIyOjIxOjE2IDIwMDggLTA3MDAKCiAgICBDRkk6IEFkZCBDRklfQ01EU0VUX0lOVEVMX0VYVEVOREVEIHRvIGZpeCBmbGFzaF9yZWFsX3Byb3RlY3QoKQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBtaXNzaW5nIHZlbmRvciBjb2RlIGluIHRoZSBmbGFzaF9yZWFsX3Byb3RlY3QoKSBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZTAwYWNkZWQyZTZhOGQ2NjNlMTI2OTBhMGYwZjA4ZjViZWM1YTU4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxOSAxNjo1MzozOSAyMDA4ICswMDAwCgogICAgQ0ZJOiBGaXggQU1EIExlZ2FjeSBzZWN0b3IgcHJvdGVjdAoKICAgIE5ldyBpbXBsZW1lbnQgc2VjdG9yIGxvY2sgYW5kIHVubG9jayBvciBzb2Z0bG9jayBjb21tYW5kcwogICAgZG8gbm90IGV4aXN0IGluIEFNRCBsZWdhY3kgZmxhc2guIFRodXMsIGNhdXNpbmcgaXNzdWUKICAgIHdoZW4gZXJhc2luZyBBTUQgbGVnYWN5IGZsYXNoIChzdWNoIGFzIGx2MDQwKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDkyNjcxNDA0MTQwZjA5ZDViMjFiM2QyY2U0ZTM2MmMwNjkyYzA2OQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMCAwOTo0MDoxNiAyMDA4ICswMjAwCgogICAgaGFtbWVyaGVhZC9taW1jMjAwOiBVc2UgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKCiAgICBDRkdfRkxBU0hfQ0ZJX0RSSVZFUiB3YXMgcmVjZW50bHkgcmVuYW1lZCBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzNlYWMyYjNkOTQ2ZmM5OThhMDkyNDVkZmU1NGQwMTcwNzliOTA1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMCAwOToyODozNiAyMDA4ICswMjAwCgogICAgaGFtbWVyaGVhZDogQWRkIG1pc3NpbmcgcHJpbnRmIHBhcmFtZXRlciB0byBDT05GSUdfQVVUT0JPT1RfUFJPTVBUCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDI1ZGEwYjg0MTk1ZmRkYTg5YTk0M2IyZDI1NzU3ZGI1YWZlZWY1YjgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBBdWcgMjAgMDk6Mjc6MzcgMjAwOCArMDIwMAoKICAgIGZhdnItMzItZXpraXQ6IEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDQ2MmRhMjVlODliMGI1OGJmNGM2NjM0NmMxZmNiMzA4N2M2MWI0YjgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTI6MDQ6MjUgMjAwOCArMDIwMAoKICAgIE1BSU5UQUlORVJTOiBTb3J0IGF2cjMyIHNlY3Rpb24gYWxwaGFiZXRpY2FsbHkKCiAgICBUaGUgcmVzdCBvZiB0aGUgTUFJTlRBSU5FUlMgZmlsZSBhcHBlYXJzIHRvIGJlIHNvcnRlZAogICAgYWxtb3N0LWFscGhhYmV0aWNhbGx5LCBidXQgZW50cmllcyBmb3IgdGhlIG5ld2x5IGFkZGVkIEFWUjMyIGJvYXJkcyB3ZXJlCiAgICBhZGRlZCBzb21ld2hhdCByYW5kb21seS4gVGhpcyBwYXRjaCBzb3J0cyB0aGUgbGlzdCBhbHBoYWJldGljYWxseSBhZ2Fpbi4KCiAgICBBbHNvIHVwZGF0ZSBteSBlLW1haWwgYWRkcmVzcy4gVGhlIG9sZCBvbmUgc3RpbGwgd29ya3MsIGJ1dCBpdCBtYXkgbm90CiAgICB3b3JrIGZvcmV2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDEzYjUwZmUzYmMwNjVjNDg5MTFmYTM3MzIzMTQyMTI4MDg1NWE5ZDYKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KRGF0ZToJV2VkIEp1bCAzMCAxMzowNzoyNyAyMDA4ICswMTAwCgogICAgYXZyMzI6IEFkZCBNSU1DMjAwIGJvYXJkCgogICAgVGhlIE1JTUMyMDAgYm9hcmQgaXMgYmFzZWQgb24gQXRtZWwncyBOR1cxMDAgZGV2IGtpdCwgYnV0IHdpdGggYW4gZXh0cmEKICAgIDhNQnl0ZSBGTEFTSCBhbmQgMTI4S0J5dGUgRlJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkYjcwYjg0MzI5MzE1YzUyZjZlYzc3ZjVhZTVjYTFhZmU5NzBhOWJiCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgSnVsIDkgMjE6MDc6MzQgMjAwOCArMDkwMAoKICAgIHJ0bDgxNjk6IGFkZCBzdXBwb3J0IGZvciBSVEw4MTEwU0NMCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gdGhhdCBSVEw4MTEwU0NMIHN0YXJ0ZWQgdHJhbnNmZXIKICAgIHdpdGggYW4gaW5jb3JyZWN0IG1lbW9yeSBhZGRyZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTQzYjgyNWJmMTVlNmEyOGFjODMyOGUwZjY0ODk0NzhiY2VlZjFlYQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjUgMTU6NDg6NTIgMjAwOCAtMDUwMAoKICAgIEZpeCBkbTkwMDAgcmVjZWl2ZSBzdGF0dXMgYW5kIGxlbiBsaXR0bGUgZW5kaWFuIGlzc3VlCgogICAgVGhlIHJlY2VpdmVkIHN0YXR1cyBhbmQgbGVuIHdhcyBpbiBsaXR0bGUgZW5kaWFuCiAgICBmb3JtYXQgYW5kIGNhdXNlZCB0aGUgZXRoZXJuZXQgdW5hYmxlIHRvIHByb2NlZWQKICAgIGZ1cnRoZXIuIEFkZCBfX2xlMTZfdG9fY3B1KCkgaW4gZG05MDAwX3J4X3N0YXR1c184LzE2LzMyYml0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZmNkNjlhMWE1N2ZiMmFmNGQyNjIwMTQyMjA5NWE0YmU5ZjM2OTYzZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6MzIgMjAwOCAtMDUwMAoKICAgIENsZWFuIHVwIHVzYWdlIG9mIGljYWNoZV9kaXNhYmxlL2RjYWNoZV9kaXNhYmxlCgogICAgVGhlcmUgaXMgbm8gcG9pbnQgaW4gZGlzYWJsaW5nIHRoZSBpY2FjaGUgb24gN3h4Lzc0eHgvODZ4eCBwYXJ0cyBhbmQgbm90CiAgICBhbHNvIGZsdXNoaW5nIHRoZSBpY2FjaGUuICBBbGwgY2FsbGVycyBvZiBpbnZhbGlkYXRlX2wxX2luc3RydWN0aW9uX2NhY2hlKCkKICAgIGNhbGwgaWNhY2hlX2Rpc2FibGUoKSByaWdodCBhZnRlci4JTWFrZSBpdCBzbyBpY2FjaGVfZGlzYWJsZSgpIGNhbGxzCiAgICBpbnZhbGlkYXRlX2wxX2luc3RydWN0aW9uX2NhY2hlKCkgZm9yIHVzLgoKICAgIEFsc28sIGRjYWNoZV9kaXNhYmxlKCkgYWxyZWFkeSBjYWxscyBkY2FjaGVfZmx1c2goKSBzbyB0aGVyZSBpcyBubyBwb2ludAogICAgaW4gdGhlIGV4cGxpY2l0IGNhbGxzIG9mIGRjYWNoZV9mbHVzaCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTE1YjA3MTA0Y2E3YmJiNzA5M2M5MDA5YzlhZTFiNThiNDIwMmQxMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6MzEgMjAwOCAtMDUwMAoKICAgIFVwZGF0ZSBsaW51eCBib290bSB0byBzdXBwb3J0IGVQQVBSIGNsaWVudCBpbnRlcmZhY2UKCiAgICBUaGUgZVBBUFIgc3BlYyBoYXMgc29tZSBzdWJ0bGUgZGlmZmVyZW5jZXMgZnJvbSB0aGUgY3VycmVudCBkZXZpY2UKICAgIHRyZWUgYmFzZWQgYm9vdCBpbnRlcmZhY2UgdG8gdGhlIHBvd2VycGMgbGludXgga2VybmVsLiBUaGUgcG93ZXJwYwogICAgbGludXgga2VybmVsIGN1cnJlbnRseSBpZ25vcmVzIHRoZSBkaWZmZXJlbmNlcyB0aGF0IGVQQVBSIHNwZWNpZmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGI3MzRlNTU1NmEyMzliM2JlNWY5NjkzYjJmNGI0YjczOTY4M2VjMTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDE4IDIzOjUwOjIwIDIwMDggKzAyMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXA6IGtlZXAgbGlzdHMgc29ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDAwMzlkNGVkMjc1ZTZjYTA5ZmI0MTc4OTUwMjRhZDAyYmUxMThjNApBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglXZWQgSnVsIDIzIDE5OjEwOjE0IDIwMDggKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQURUNzQ2MCBJMkMgbW9uaXRvciBjaGlwCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+Cgpjb21taXQgZWI1OWVhNDVhYjc3YzE0YjA5MGVhODU3ZDllYTlmOTAyZjQwZGIwYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEp1bCAxNCAxOTo0NTo0NSAyMDA4ICswMjAwCgogICAgdmlkZW86IENsZWFuIGRyaXZlcnMvdmlkZW8vTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgODcxYzE4ZGQzMDE3NTIyNzBlMWY3NDMyOGM4NDZjMzEwNGJlMWUyZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEp1bCAxNCAxOTo0NTozNyAyMDA4ICswMjAwCgogICAgcnRjOiBDbGVhbiBkcml2ZXJzL3J0Yy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBhNGE1NDliNGI1M2FkZjQwYTBkMzg4MmNjMzBhYzgxMmE4Zjg0N2M1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gSnVsIDE0IDE5OjQ1OjM1IDIwMDggKzAyMDAKCiAgICBpMmM6IENsZWFuIGRyaXZlcnMvaTJjLyBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCAwYTgyM2FhMmE4YThjMDY4NWU3MzkwMGYzODdkNjAyZDdlZGFmYzBlCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIEp1bCA5IDIyOjMwOjMwIDIwMDggKzA4MDAKCiAgICBBZGQgJ2xpY2Vuc2UnIGNvbW1hbmQgdG8gVS1Cb290IGNvbW1hbmQgbGluZQoKICAgIFRoZSAnbGljZW5zZScgY29tbWFuZCBpbmNsdWRlcyB0aGUgVS1Cb290IGxpY2Vuc2UgKEdQTHYyKSBpbnRvIHRoZQogICAgYWN0dWFsIGJvb3Rsb2FkZXIgYmluYXJ5LiBUaGUgbGljZW5zZSB0ZXh0IGNhbiBiZSBzaG93biBpbnRlcmFjdGl2ZWx5CiAgICBhdCB0aGUgVS1Cb290IGNvbW1hbmRsaW5lLgoKICAgIEZvciBwcm9kdWN0cyB3aGVyZSB0aGUgY29tbWFuZGxpbmUgY2FuIGFjdHVhbGx5IGJlIGFjY2Vzc2VkIGJ5IHRoZQogICAgZW5kIHVzZXIsIHRoaXMgaGVscHMgdG8gcHJldmVudCBpbmFkdmVydGVudCBHUEwgdmlvbGF0aW9ucywgc2luY2UgdGhlCiAgICBHUEx2MiBsaWNlbnNlIHRleHQgY2FuIG5vIGxvbmdlciBiZSAnZm9yZ290dGVuJyB0byBiZSBpbmNsdWRlZCBpbnRvCiAgICB0aGUgcHJvZHVjdC4KCiAgICBUaGUgJ2xpY2Vuc2UnIGNvbW1hbmQgY2FuIGJlIGVuYWJsZWQgYnkgQ09ORklHX0NNRF9MSUNFTlNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgZmUyY2U1NTAwZWJmNDNkNzlkMjI3MTkwYmQyMzcwMjMyZDViMTEzZApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBnbnVtb25rcy5vcmc+CkRhdGU6CVN1biBKdWwgNiAxNTo1NjozOCAyMDA4ICswODAwCgogICAgYWRkICd1bnppcCcgY29tbWFuZCB0byB1LWJvb3QgY29tbWFuZGxpbmUKCiAgICBbUEFUQ0hdIGFkZCBuZXcgJ3VuemlwJyBjb21tYW5kIHRvIHUtYm9vdCBjb21tYW5kbGluZQoKICAgIGNvbW1vbi9jbWRfbWVtLmM6IG5ldyBjb21tYW5kICJ1bnppcCBzcmNhZGRyIGRzdGFkZHIgW2RzdHNpemVdIiB0byB1bnppcCBmcm9tCiAgICBtZW1vcnkgdG8gbWVtb3J5LCBhbmQgb3B0aW9uIENPTkZJR19DTURfVU5aSVAgdG8gZW5hYmxlIGl0CgogICAgU2lnbmVkLW9mZi1ieTogV2VybmVyIEFsbWVzYmVyZ2VyIDx3ZXJuZXJAb3Blbm1va28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCAwN2VmYzllMzIxNjE5YzNkZWMyMTMzMTBjMzJlMDExYWE2ZjAyNzgzCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA2IDE5OjM3OjE3IDIwMDggLTA1MDAKCiAgICBDaGFuZ2UgQ0ZHX0VOVl9TSVpFIHRvIENGR19FTlZfU0VDVF9TSVpFIGZvciBTUEkgc2VjdG9yIGVyYXNlCgogICAgVGhlIENGR19FTlZfU0laRSBpcyBub3Qgc3VpdGFibGUgdXNlZCBmb3IgU1BJIGZsYXNoIGVyYXNlCiAgICBzZWN0b3Igc2l6ZSBpZiBDRkdfRU5WX1NJWkUgaXMgbGVzcyB0aGFuIENGR19FTlZfU0VDVF9TSVpFLgogICAgQWRkIGNvbmRpdGlvbiBjaGVjayBpZiBDRkdfRU5WX1NJWkUgaXMgbGFyZ2VyIHRoYW4KICAgIENGR19FTlZfU0VDVF9TSVpFLCBjYWxjdWxhdGUgdGhlIHJpZ2h0IG51bWJlciBvZiBzZWN0b3JzIGZvcgogICAgZXJhc2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjYjRlNjU0Y2FmYWJhYTFhYzE4MGQzN2IwMGM4ZjYwOTVkYWU5YzkKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDExIDE1OjU0OjI1IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogTXVsdGlwbGUgZml4ZXMgZm9yIE01MjgyRVZCCgogICAgSW5jb3JyZWN0IENGR19IWiB2YWx1ZSwgY2hhbmdlIDEwMDAwMDAgdG8gMTAwMC4KICAgIFJlbmFtZSAjd2FyaW5nIHRvICN3YXJuaW5nLiBSQU1CQVIxIHVzZXMgdHdpY2UKICAgIGluIHN0YXJ0LlMsIHJlbmFtZSB0aGUgbGF0ZXIgdG8gRkxBU0hCQVIuIEluc2VydAogICAgbm9wIGZvciBEUkFNIHNldHVwLiBBbmQsIGVudl9vZmZzZXQgaW4gbGlua2VyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMGRiM2ExN2EyNzhkZDNhMjc2NjhiMzFjYjMyY2RkMTQ3NmU5NTEzCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMSAxNToyNjo0MyAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IE1vdmUgbTUyODJldmIgZnJvbSBib2FyZCB0byBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2ZGYwOTFkMzkxZjc0YmJmMmRjMmY3OTMxZjlmM2M4ZjIzNTI5ZTQKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDExIDE1OjI1OjA3IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogTW92ZSBtNTI3MmMzIGZyb20gYm9hcmQgdG8gYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NTllOWJhZDYyOWE0ODBmNjA2YjI4NmQ1NzAzYWVmNzE1OWVkZjk4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMSAxNToyMzoxNiAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IE1vdmUgbTUyNzFldmIgZnJvbSBib2FyZCB0byBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA1MzE2ZjhlY2U4MjA2MzM5YTIwOGVjMDUyZjAzOWNkMGY3Y2E5MjIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDExIDEzOjQxOjQ5IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogQWRkIE01NDQ1MUVWQiBwbGF0Zm9ybSBzdXBwb3J0IGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTIyY2Q3NTE1NTk3ZTlhMmMwN2Q2OGUyYTYyNDBiMGI3YjBmMDEzNgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgNiAxOToxNDowOCAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBTZXJpYWwgRmxhc2ggc3VwcG9ydCBmb3IgTTU0NDU1RVZCCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5Zjc1MTU1MTQ1NjgyOGIyZDBmZjQxN2YxMDk1OWZiMGM3MTEwYmQwCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyMyAyMDozODo1MyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEltcGxlbWVudCBTQkYgZmVhdHVyZSBmb3IgTTU0NDVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3MzIzYmJhMjI5MjAzYWFlMjYwNGFmZGUxMzFhYjQ3YmFkNGVhZGMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDIzIDE3OjUzOjM2IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIFNTUEkgZmVhdHVyZSBmb3IgTUNGNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyZDAyMmQxYWMzZjU5YmZmYTljZWMyNDkzNDFlNzdhZWExNjhhYmMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDIzIDE3OjM3OjEwIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogVXNlIENGSSBGbGFzaCBkcml2ZXIgZm9yIE01NDQ1NUVWQgoKICAgIFJlbW92ZSBub24tY29tbW9uIGZsYXNoIGRyaXZlciBpbgogICAgYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9mbGFzaC5jLiBUaGUgbm9uLWNmaSBmbGFzaCB3aWxsCiAgICB1c2UgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kgdG8gY29uZmlndXJlIHRoZSBmbGFzaAogICAgYXR0cmlidXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmQzM2M2YWNmYTM1YjExNDRkNDZmZmJmZjdlMjllZTc5NjkyOTBkMApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTc6MTE6NDcgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyNTNERU1PIHBsYXRmb3JtIHN1cHBvcnQgZm9yIE1DRjUyNTMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwYmE2MWZkODI1NjlhZjQwZTA0ZDRhMDg5MjU3YjgxODgxODg0ZjIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDYgMTQ6MTc6MDkgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBSYWlzZSBNNTI1M0VWQkUgdWFydCBiYXVkcmF0ZSB0byAxMTUyMDAgYnBzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMzYxMzA3ZTczY2UxZjZmYzY4NzYwMTIzZjM3ZDQ4NzZmODUxZjNlCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA2IDE0OjExOjM2IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IE01MjUzRVZCIGRyYW0gYnJpbmcgdXAgaXNzdWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRiMDcwODA5M2UxNWI0MTIyOTYzMjhiZjgxMzI1Y2Y5YjY5ZmU1MTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE0IDE0OjQxOjA2IDIwMDggKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjhjZjE5YWFlNDhmMjk2OWVjNzA2Njk2MDRkMGQ3NzZmMDJjOGJjNApBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEzIDE4OjI0OjA1IDIwMDggLTA1MDAKCiAgICBzb2NyYXRlczogVXBkYXRlIE5BTkQgZHJpdmVyIHRvIG5ldyBBUEkuCgogICAgQWxzbywgZml4IHNvbWUgbWlub3IgZm9ybWF0dGluZyBpc3N1ZXMsIGFuZCBzaW1wbGlmeSB0aGUgaGFuZGxpbmcgb2YKICAgICJzdGF0ZSIgZm9yIHdyaXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTIyZDEwZjM5ZWFlZWRkMDM1ZTgyNjU2MTZlMzFmZjg4ZTMxNGQ1CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMTg6MDM6NDAgMjAwOCAtMDUwMAoKICAgIHF1YWQxMDBoZDogVXBkYXRlIE5BTkQgZHJpdmVyIHRvIG5ldyBBUEkuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjY0Y2I2NTJhOGE4NGM1YzM0ZDBhZmNiZDdmZmVmODg2YWExZDgzOApBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEzIDE3OjUzOjQ4IDIwMDggLTA1MDAKCiAgICBtNTM3M2V2YjogVXBkYXRlIE5BTkQgZHJpdmVyIHRvIG5ldyBBUEkuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWEyM2ExOTdjODcyMmI4MDVmNDA4OTU1NDRiYmRiMWE2NDhjMWM4MgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEzIDE3OjA0OjMwIDIwMDggLTA1MDAKCiAgICBzM2MyNHgwOiBVcGRhdGUgTkFORCBkcml2ZXIgdG8gbmV3IEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTVmNzVmMjBkYjhhNzEwM2ZhZDljMzRkNmYxMTkzZTEwZDE4OTBmCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMTU6NTY6MDAgMjAwOCAtMDUwMAoKICAgIGF0OTE6IFVwZGF0ZSBib2FyZCBOQU5EIGRyaXZlcnMgdG8gY3VycmVudCBBUEkuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDQzOGQ1MDg0OGU5NDI1Mjg2ZTVmYjA0OTNlMGFmZmI1YTBiMWUxYgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglXZWQgQXVnIDEzIDA5OjExOjAyIDIwMDggKzA5MDAKCiAgICBGaXggT25lTkFORCBidWlsZCBicmVhawoKICAgIFNpbmNlIHBhZ2Ugc2l6ZSBmaWVsZCBpcyBjaGFuZ2VkIGZyb20gb29iYmxvY2sgdG8gd3JpdGVzaXplLiBCdXQgT25lTkFORCBpcyBub3QgdXBkYXRlZC4KICAgIC0gZml4IGJ1ZmZlcnJhbSBtYW5hZ2VtZW50IGF0IGVyYXNlIG9wZXJhdGlvbgogICAgVGhpcyBwYXRjaCBpbmNsdWRlcyB0aGUgTkFORC9PbmVOQU5EIHN0YXRlIGZpbGVkIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTQ4M2RmNjQwOGMyNWYxNjA2MDQzMmRlMzg2ODkwMWUzNTJlMjNiYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6NDMgMjAwOCArMDIwMAoKICAgIGRyaXZlcnMvbXRkL25hbmRfbGVnYWN5OiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjYzRhMGNlZWFjNTQ2MjEwNjE3MmQwY2M5ZDlkNTQyMjMzYWEzYWIyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MyAyMDA4ICswMjAwCgogICAgZHJpdmVycy9tdGQvbmFuZDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIHJlbmFtZSBDRkdfTkFORF9MRUdBQ1kgdG8gQ09ORklHX05BTkRfTEVHQUNZCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZmIwOWI4MTkyMGU1ZGZkZmM0NTc2ODgzMTg2NzMzZjBiZDYwNTljCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MiAyMDA4ICswMjAwCgogICAgZHJpdmVycy9tdGQvb25lbmFuZDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDBiMTg4M2E0Y2FjNTlkOTdjZDI5N2IxYTNhMzk4ZGI4NTk4Mjg2NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6NDIgMjAwOCArMDIwMAoKICAgIGRyaXZlcnMvbXRkOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgcmVuYW1lIENGR19GTEFTSF9DRklfRFJJVkVSIHRvIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3YmE0NGE1NTIxY2RiN2ZhMWM3Mjg2NDAyNWNkZTFlMjFhNmY2OTIxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MSAyMDA4ICswMjAwCgogICAgZHJpdmVycy9xZTogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYWI2ODc4YzdiYzY4YTdiNWU1YjczMTY1NWJkYzEzMjIxYmJmYzQ5MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6NDAgMjAwOCArMDIwMAoKICAgIGRyaXZlcnMvcGNpOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NWQ2ZDJkMzlmZTNmZTg3ODAyZTM5OWFhMTc1MzkzNjhiNDk1ZDJlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MCAyMDA4ICswMjAwCgogICAgZHJpdmVycy9taXNjOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2NWU0MWVhMDU0OGI4NmUzZDc4OTJkZWZhYzhlNGRjMWVhNzBhZWQxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MCAyMDA4ICswMjAwCgogICAgZHJpdmVycy9pbnB1dDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODhmNTdlMDkzMTE0YTQ0YWE5YTg1OGQ1MmIwOTliY2M1MjAzNGE4YwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6MzkgMjAwOCArMDIwMAoKICAgIGRyaXZlcnMvZG1hOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxYTAyODA2YzRiMWI0YTA5YWQ0ZTk1ZDNhYWMzNzgzODg5ZTVmOGQ3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDozOSAyMDA4ICswMjAwCgogICAgZHJpdmVycy9ibG9jazogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMWE2ZmZiZmFmNDM1M2JlYzM3OWVkMWZjZmM1NGI2ZjFhMzBhZjA5YQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6MzkgMjAwOCArMDIwMAoKICAgIHNlcmlhbDogbW92ZSBDRkdfTlM5NzUwX1VBUlQgdG8gQ09ORklHX05TOTc1MF9VQVJUCgogICAgbW92ZSBhbHNvIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2YzU4YTAzMGY4NjgyOWZhNGYwZDQzMzdjZjRiNzk0YzQxYTE4MjNlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDozOCAyMDA4ICswMjAwCgogICAgc2VyaWFsOiBtb3ZlIENGR19TQ0lGX0NPTlNPTEUgdG8gQ09ORklHX1NDSUZfQ09OU09MRQoKICAgIG1vdmUgYWxzbyBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDZlOWVlOTJlODkwZjY3NTk0YWIxNTA2ODk1MTBkZjM2MTEzM2VhZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6MzggMjAwOCArMDIwMAoKICAgIGNvbW1vbjogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjVhY2I5ZmQ5YmJhMTE2MGRlM2VmMzQ5YzdkMzNmZTUxMGVkYTI4NgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMDE6NDA6MDkgMjAwOCArMDIwMAoKICAgIG14MzE6IG1vdmUgZnJlZXNjYWxlJ3MgbXgzMSBib2FyZHMgdG8gdmVuZG9yIGJvYXJkIGRpcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGVkMmY1Zjk1MGUyNTgxMjE0ZDIwYjAxMWE4ZjI3YTYzOTZkNjVkMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKdWwgNSAyMzoxMToxMSAyMDA4ICswMjAwCgogICAgYXQ5MTogbW92ZSBhcmNoLWF0OTFzYW05IHRvIGFyY2gtYXQ5MQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTk1Y2NmYzU5OTFkNDg3NjRiMjUxOTk0MWUzNTA3ZjY5Mzg1MWQ1ZApBdXRob3I6IEZhdGhpIEJPVURSQSA8ZmFib0BkZWJpYW4ub3JnPgpEYXRlOglXZWQgQXVnIDYgMTA6MDY6MjAgMjAwOCArMDIwMAoKICAgIE9uZU5BTkQ6IEZpbGwgaW4gTVREIGZ1bmN0aW9uIHBvaW50ZXJzIGZvciBPbmVOQU5ELgoKICAgIG9uZW5hbmRfcHJpbnRfZGV2aWNlX2luZm8oKToKICAgICAtIE5vdyByZXR1cm5zIGEgc3RyaW5nIHRvIGJlIHBsYWNlZCBpbiBtdGQtPm5hbWUsCiAgICAgICByYXRoZXIgdGhhbiBjYWxsaW5nIHByaW50Zi4KICAgICAtIFJlbW92ZSB2ZXJib3NlIHBhcmFtZXRlciBhcyBpdCBiZWNvbWVzIHVzZWxlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogRmF0aGkgQm91ZHJhIDxmYWJvQGRlYmlhbi5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTY0NjY0M2I2YmMyNTBjYjNhNDk2NmJmNzI4ODc2ZTBjMTBkMzI5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglXZWQgQXVnIDYgMjE6NDI6MDcgMjAwOCArMDIwMAoKICAgIG5hbmRfc3BsOiBTdXBwb3J0IHBhZ2UtYWxpZ25lZCByZWFkIGluIG5hbmRfbG9hZCwgdXNlIGNoaXBzZWxlY3QKCiAgICBTdXBwb3J0aW5nIHBhZ2UtYWxpZ25lZCByZWFkcyBkb2Vzbid0IGluY3VyZSBhbnkgc2luaWZpY2FudCBvdmVyaGVhZCwganVzdAogICAgYSBzbWFsbCBjaGFuZ2UgaW4gdGhlIGFsZ29yaXRobS4gQWxzbyByZXBsYWNlIGluXzggd2l0aCByZWFkYiwgc2luY2UgdGhlcmUKICAgIGlzIG5vIGluXzggb24gQVJNLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRmMzJkNzc2MGE1OGZlNzM5ODFiNmVkYzBiMDc1MTU2NWQyZGFhNGMKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA1IDExOjE1OjU5IDIwMDggLTA1MDAKCiAgICBOQU5EIGJvb3Q6IFVwZGF0ZSBsYXJnZSBwYWdlIHN1cHBvcnQgZm9yIGN1cnJlbnQgQVBJLgoKICAgIEFsc28sIHJlbW92ZSB0aGUgY3RybCB2YXJpYWJsZSBpbiBmYXZvciBvZiBwYXNzaW5nIHRoZSBjb25zdGFudHMKICAgIGRpcmVjdGx5LCBhbmQgcmVtb3ZlIHJlZHVuZGFudCAodTgpIGNhc3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU0YzA5NTA4NTQ1ZDFjNDU2MTdiYTQ1MzkxYzAzYzAzY2JjMzYwYjkKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAzMCAxNDoxMzoyOCAyMDA4IC0wNTAwCgogICAgTkFORCBib290OiBNUEM4MzEzRVJEQiBzdXBwb3J0CgogICAgTm90ZSB0aGF0IHdpdGggb2xkZXIgYm9hcmQgcmV2aXNpb25zLCBOQU5EIGJvb3QgbWF5IG9ubHkgd29yayBhZnRlciBhCiAgICBwb3dlci1vbiByZXNldCwgYW5kIG5vdCBhZnRlciBhIHdhcm0gcmVzZXQuICBJIGRvbid0IGhhdmUgYSBuZXdlciBib2FyZAogICAgdG8gdGVzdCBvbjsgaWYgeW91IGhhdmUgYSBib2FyZCB3aXRoIGEgMzNNSHogY3J5c3RhbCwgcGxlYXNlIGxldCBtZSBrbm93CiAgICBpZiBpdCB3b3JrcyBhZnRlciBhIHdhcm0gcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWNkYWI1YzMzZjFlYTZmNWUwOGYwNmYwOGJjNjRhZjIzZmY0MGQ3MQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDI2IDE0OjA2OjUyIDIwMDggLTA1MDAKCiAgICBtcGM4MzEzZXJkYjogRW5hYmxlIE5BTkQgaW4gY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMzZGI4YzY0OWM2YWIzZGEyZjE0MTFjNGM2ZDYxYWVjZWEwNTRhYTQKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMzEgMTI6Mzg6MjYgMjAwOCArMDIwMAoKICAgIE5BTkQ6IERvIG5vdCB3cml0ZSBvciByZWFkIGEgd2hvbGUgYmxvY2sgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gdGhlIGVudmlyb25tZW50CgogICAgRW52aXJvbm1lbnQgY2FuIGJlIHNtYWxsZXIgdGhhbiBOQU5EIGJsb2NrIHNpemUsIGRvIG5vdCBuZWVkIHRvIHJlYWQgYSB3aG9sZQogICAgYmxvY2sgYW5kIG1pbmltdW0gZm9yIHdyaXRpbmcgaXMgb25lIHBhZ2UuIEFsc28gcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYWZjYWJkMTVmMDBjMTQyMTU2MjM1YzUxOWZjYzU1YjEwOTkzMjQxCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglTdW4gSnVuIDIyIDE2OjMwOjA2IDIwMDggKzAyMDAKCiAgICBOQU5EOiBjaGlwLT5zdGF0ZSBkb2VzIG5vdCBhbHdheXMgZ2V0IHNldC4KCiAgICBGaXhlcyBhbiBpc3N1ZSB3aXRoIGNoaXAtPnN0YXRlIG5vdCBhbHdheXMgYmVpbmcgc2V0IGNhdXNpbmcgdHJvdWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTNmMGZkOTRlM2NhZTZmOGEwZDlmYmE1ZDM2N2UzMTFlZGM4ZWJkZQpBdXRob3I6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgpEYXRlOglNb24gSnVuIDMwIDE1OjM0OjQwIDIwMDggKzAyMDAKCiAgICBOQU5EOiBTY2FuIGJhZCBibG9ja3MgbGF6aWx5LgoKICAgIFJhdGhlciB0aGFuIHNjYW5uaW5nIG9uIGJvb3QsIHNjYW4gdXBvbiB0aGUgZmlyc3QgYXR0ZW1wdCB0byBjaGVjayB0aGUKICAgIGJhZG5lc3Mgb2YgYSBibG9jay4gIFRoaXMgc3BlZWRzIHVwIGJvb3Qgd2hlbiBub3QgdXNpbmcgTkFORCwgYW5kIHJlZHVjZXMKICAgIHRoZSBsaWtlbGlob29kIG9mIG5lZWRpbmcgdG8gcmVmbGFzaCB2aWEgSlRBRyBpZiBOQU5EIGJlY29tZXMKICAgIG5vbmZ1bmN0aW9uYWwuCgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZmJmNjE3ZmYwNTVlNDIxNmY3OGQzNThiMDg2N2M1NDg5MTZkMTRiCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMTIgMTM6MjA6MTYgMjAwOCAtMDUwMAoKICAgIE5BTkQgcmVhZC93cml0ZSBmaXgKCiAgICBJbXBsZW1lbnQgYmxvY2stc2tpcHBpbmcgcmVhZC93cml0ZSwgYmFzZWQgb24gYSBwYXRjaCBmcm9tCiAgICBNb3J0ZW4gRWJiZWxsIEhlc3RlbnMgPG1vcnRlbi5oZXN0bmVzQHRhbmRiZXJnLmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogTW9ydGVuIEViYmVsbCBIZXN0bmVzIDxtb3J0ZW4uaGVzdG5lc0B0YW5kYmVyZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ODRlMDNjZGYxNDMxYmI1OTNhZWFhMWI3NGM0NDVkNjE2Zjk1NWQzCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMTIgMTM6MTM6MjMgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IEFsd2F5cyBza2lwIGJsb2NrcyBvbiByZWFkL3dyaXRlL2Jvb3QuCgogICAgVXNlIG9mIHRoZSBub24tc2tpcHBpbmcgdmVyc2lvbnMgd2FzIGFsbW9zdCBhbHdheXMgKGlmIG5vdCBhbHdheXMpCiAgICBhbiBlcnJvciwgYW5kIG5vIHZhbGlkIHVzZSBjYXNlIGhhcyBiZWVuIGlkZW50aWZpZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTFjM2RiYWRhMzQ5OTkyODc1OTM0NTc1Yzk3YjMyOGFiMmNiMzNjYQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgSnVuIDEyIDExOjEwOjIxIDIwMDggLTA1MDAKCiAgICBuYW5kOiBmc2xfdXBtOiBjb252ZXJ0IHRvIHVwZGF0ZWQgTVREIE5BTkQgaW5mcmFzdHJ1Y3R1cmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMwMDI1MzMwNmFjYzcyYjFiMmU5ZmFmMDk4N2Y4NjU1MTE1MWQ3Y2YKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAyMiAxNTowMjo0NiAyMDA4IC0wNTAwCgogICAgZnNsX2VsYmNfbmFuZDogSGFyZC1jb2RlIHRoZSBGQkFSL0ZQQVIgc3BsaXQuCgogICAgVGhlIGhhcmR3YXJlIGhhcyBzZXBhcmF0ZSByZWdpc3RlcnMgZm9yIGJsb2NrIGFuZCBwYWdlLXdpdGhpbi1ibG9jaywKICAgIGJ1dCB0aGUgZGl2aXNpb24gYmV0d2VlbiB0aGUgdHdvIGhhcyBubyBhcHBhcmVudCByZWxhdGlvbiB0byB0aGUKICAgIGFjdHVhbCBlcmFzZSBibG9jayBzaXplIG9mIHRoZSBOQU5EIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWM4MTRiMGE3MTZhYWU4ODRiZWM5NzdiOWEwMzJkZmE1OWNmYjc5YQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglGcmkgTWFyIDI4IDIyOjEwOjU0IDIwMDggKzAzMDAKCiAgICBmc2xfZWxiY19uYW5kOiB3b3JrYXJvdW5kIGZvciBoYW5ncyBkdXJpbmcgbmFuZCB3cml0ZQoKICAgIFVzaW5nIGN1cnJlbnQgZHJpdmVyIGVsYmMgc29tZXRpbWVzIGhhbmdzIGR1cmluZyBuYW5kIHdyaXRlLiBSZWFkaW5nIGJhY2sKICAgIGxhc3QgYnl0ZSBoZWxwcyB0aG91Z2ggKHRoYW5rcyB0byBTY290dCBXb29kIGZvciB0aGUgaWRlYSkuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZmQwMjBkNmI0YjM2YjlmYjY3Y2Q4MzRiYzFhZTdmZGJhMTVlZTllCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjEgMTY6MTI6NTEgMjAwOCAtMDUwMAoKICAgIEZyZWVzY2FsZSBlTEJDIEZDTSBOQU5EIGRyaXZlcgoKICAgIFRoaXMgaXMgYSBkcml2ZXIgZm9yIHRoZSBGbGFzaCBDb250cm9sIE1hY2hpbmUgb2YgdGhlIGVuaGFuY2hlZCBMb2NhbCBCdXMKICAgIENvbnRyb2xsZXIgZm91bmQgb24gc29tZSBGcmVlc2NhbGUgY2hpcHMgKHN1Y2ggYXMgdGhlIG1wYzgzMTMgYW5kIHRoZQogICAgbXBjODM3OSkuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDFlZjhjNzE2ZTkzZmRmNTBlZmU5YzFiYTczM2NhNjY3NWRhYWNhNgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDE4IDE1OjI5OjE0IDIwMDggLTA1MDAKCiAgICBEb24ndCBwYW5pYyBpZiBhIGNvbnRyb2xsZXIgZHJpdmVyIGRvZXMgZWNjIGl0cyBvd24gd2F5LgoKICAgIFNvbWUgaGFyZHdhcmUsIHN1Y2ggYXMgdGhlIGVuaGFuY2VkIGxvY2FsIGJ1cyBjb250cm9sbGVyIHVzZWQgb24gc29tZQogICAgbXBjODN4eCBjaGlwcywgZG9lcyBlY2MgdHJhbnNwYXJlbnRseSB3aGVuIHJlYWRpbmcgYW5kIHdyaXRpbmcgZGF0YSwgcmF0aGVyCiAgICB0aGFuIHByb3ZpZGluZyBhIGdlbmVyaWMgY2FsY3VsYXRlL2NvcnJlY3QgbWVjaGFuaXNtIHRoYXQgY2FuIGJlIGV4cG9ydGVkIHRvCiAgICB0aGUgbmFuZCBzdWJzeXN0ZW0uCgogICAgVGhlIHN1YnN5c3RlbSBzaG91bGQgbm90IEJVRygpIHdoZW4gY2FsY3VsYXRlLCBjb3JyZWN0LCBvciBod2N0bCBhcmUKICAgIG1pc3NpbmcsIGlmIHRoZSBtZXRob2RzIHRoYXQgY2FsbCB0aGVtIGhhdmUgYmVlbiBvdmVycmlkZGVuLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1MmIzNGQ0MGE4YTY0NmUzZDExNjM4ZWE4Nzk3ZTk2Mzk4ZGJhMTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTAgMTg6NDc6MzMgMjAwOCArMDEwMAoKICAgIE5BTkQ6IE1ha2UgTkFORCBkcml2ZXIgbGVzcyB2ZXJib3NlIHBlciBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCB0dXJucyBvZmYgcHJpbnRpbmcgb2YgYmFkIGJsb2NrcyBwZXIgZGVmYXVsdCB1cG9uIGJvb3R1cC4KICAgIFRoaXMgY2FuIGFsd2F5cyBiZSBzaG93biB2aWEgdGhlICJuYW5kIGJhZCIgY29tbWFuZCBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmU1NmEyNzcyZTVjNTk1NzdkZjkwNjE2M2QwZDRiMjliMDU2MTQwZQpBdXRob3I6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgpEYXRlOglXZWQgSmFuIDkgMTU6MzY6MjAgMjAwOCArMDEwMAoKICAgIE5BTkQ6IERhdmluY2kgZHJpdmVyIHVwZGF0ZXMKCiAgICBIZXJlIGNvbWVzIGEgdHJpdmlhbCBwYXRjaCB0byBjcHUvYXJtOTI2ZWpzL2RhdmluY2kvbmFuZC5jLiBVbmZvcnR1bmF0ZWx5IEkKICAgIGRvbid0IGhhdmUgaGFyZHdhcmUgaGFuZHkgc28gSSBjYW4gbm90IHRlc3QgaXQgYXQgdGhlIG1vbWVudCBidXQgY2hhbmdlcyBhcmUKICAgIHJhdGhlciB0cml2aWFsIHNvIGl0IHNob3VsZCB3b3JrLiBJdCB3b3VsZCBiZSBuaWNlIGlmIHNvbWVib2R5IHdpdGggYQogICAgaGFyZHdhcmUgY2hlY2tlZCBpdCBhbnl3YXlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgoKY29tbWl0IGRlYWM5MTNlZmZkOGQ4MDUzNWM5ZmY0Njg3YjZmY2RmZjU0MGM1NTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAxNjo1MDozMiAyMDA4ICswMTAwCgogICAgTkFORDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgYW5kIHNtYWxsIGNvZGluZyBzdHlsZSBpc3N1ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNTY4Zjc3YWNkZjg5NmZjM2RkNjQxM2NlNTMyMDViMTdiYTgwOWEzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDUgMTY6NDk6MzcgMjAwOCArMDEwMAoKICAgIE5BTkQ6IFVwZGF0ZSBuYW5kX3NwbCBkcml2ZXIgdG8gbWF0Y2ggdXBkYXRlZCBuYW5kIHN1YnN5c3RlbQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgTkFORCBib290aW5nIGRyaXZlciBuYW5kX3NwbC9uYW5kX2Jvb3QuYyB0byBtYXRjaAogICAgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBmcm9tIHRoZSB1cGRhdGVkIE5BTkQgc3Vic3lzdGVtLiBUaGlzIE5BTkQKICAgIHN1YnN5c3RlbSB3YXMgcmVjZW50bHkgc3luY2VkIGFnYWluIHdpdGggdGhlIExpbnV4IDIuNi4yMiBNVEQvTkFORAogICAgc3Vic3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZGYyZWNlMGYwZmJiYTQ3ZDI3ZjAyZmZmOTZjNTMzNzMyYjk4YzE0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDUgMTY6NDc6NTggMjAwOCArMDEwMAoKICAgIE5BTkQ6IFVwZGF0ZSA0eHggTkRGQyBkcml2ZXIgdG8gbWF0Y2ggdXBkYXRlZCBuYW5kIHN1YnN5c3RlbQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgNHh4IE5BTkQgZHJpdmVyIG5kZmMuYyB0byBtYXRjaCB0aGUgbmV3CiAgICBpbmZyYXN0cnVjdHVyZSBmcm9tIHRoZSB1cGRhdGVkIE5BTkQgc3Vic3lzdGVtLiBUaGlzIE5BTkQKICAgIHN1YnN5c3RlbSB3YXMgcmVjZW50bHkgc3luY2VkIGFnYWluIHdpdGggdGhlIExpbnV4IDIuNi4yMiBNVEQvTkFORAogICAgc3Vic3lzdGVtLgoKICAgIFRlc3RlZCBzdWNjZXNzZnVsbHkgb24gQU1DQyBTZXF1b2lhIGFuZCBCYW1ib28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEyMDcyMjY0NTI4ZWJhMzM3MzdiYzk2NzRlMTlmMGU5MjVmZmRhMjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAxNjo0MzoyNSAyMDA4ICswMTAwCgogICAgTkFORDogQ2hhbmdlIG5hbmRfd2FpdF9yZWFkeSgpIHRvIG5vdCBjYWxsIG5hbmRfd2FpdCgpCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIG5hbmRfd2FpdF9yZWFkeSgpIHRvIG5vdCBqdXN0IGNhbGwgbmFuZF93YWl0KCksCiAgICBzaW5jZSB0aGlzIHdpbGwgc2VuZCBhIG5ldyBjb21tYW5kIHRvIHRoZSBOQU5EIGNoaXAuIFdlIGp1c3Qgd2FudCB0bwogICAgd2FpdCBmb3IgdGhlIGNoaXAgdG8gYmVjb21lIHJlYWR5IGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlhZDc1NGZlZjUwNTMxNDRkYWVkM2IwMDdhZGFmMWM5YmVjNjU0YzkKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJRnJpIERlYyAxNCAxNjozMzo0NSAyMDA3ICswMTAwCgogICAgbWFrZSBuYW5kIGR1bXAgYW5kIG5hbmQgZHVtcC5vb2Igd29yawoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQzZWEzNmZiOGZkY2JjNmUyNmYwY2FmZmU4MDhjNjM2MzNiMTg4MzgKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJTW9uIE5vdiAxOSAxNDo0NjowMCAyMDA3ICswMTAwCgogICAgbW92aW5nIGZpbGVzIGZyb20geWFmZnMyL2RpcmVjdC8gdG8geWFmZnMyLyBhbmQgZGVsZXRpbmcgYWxsIHN5bWxpbmtzCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgoKY29tbWl0IDk4ODI0Y2UzZjk1ZTZjNGQwOGQ0MzliNzc5YzBhY2IwMDQ4MDQ1YTYKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEB0YW5kYmVyZy5jb20+CkRhdGU6CVR1ZSBKdW4gMTAgMTY6MTg6MTMgMjAwOCAtMDUwMAoKICAgIENsZWFuIG91dCB1bm5lZWRlZCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KCmNvbW1pdCBlYzI5YTMyYjVhNzFiMjAzZjdkOTA4N2YxZjRkNzg2ZTdmMTNkZDIzCkF1dGhvcjogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAZGF0YXJlc3BvbnMubm8+CkRhdGU6CUZyaSBOb3YgMTYgMDg6NDQ6MjcgMjAwNyArMDEwMAoKICAgIENyZWF0ZSBzeW1saW5rcyBmcm9tIHlhZmZzMi9kaXJlY3QgdG8geWFmZnMyCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgoKY29tbWl0IDkwZWYxMTdiNjgzODdkNjY3NjMyOTFhZjAxMTc2Nzc2NDQxNjY2MTEKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJVGh1IE5vdiAxNSAxMjoyMzo1NyAyMDA3ICswMTAwCgogICAgSW5jb3Jwb3JhdGUgeWFmZnMyIGludG8gVS1ib290CgogICAgVG8gdXNlIFlBRkZTMiBkZWZpbmUgQ09ORklHX1lBRkZTMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlOGNjOGJkOTIyNTdkYTJlMWRmODhjYmM5ODVlMTY2ZTQ3MmNlNjEKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJVGh1IE5vdiAxNSAxMToxMzowNSAyMDA3ICswMTAwCgogICAgWUFGRlMyIGltcG9ydAoKICAgIERpcmVjdCBpbXBvcnQgb2YgeWFmZnMgYXMgYSB0YXJiYWxsIGFzIG9mIDIwMDcxMTEzIGZyb20gdGhlaXIgcHVibGljCiAgICBDVlMtd2ViIGF0IGh0dHA6Ly93d3cuYWxlcGgxLmNvLnVrL2NnaS1iaW4vdmlld2N2cy5jZ2kveWFmZnMyLwoKICAgIFRoZSBjb2RlIGNhbiBhbHNvIGJlIGltcG9ydGVkIG9uIHRoZSBjb21tYW5kIGxpbmUgd2l0aDoKICAgIGV4cG9ydCBDVlNST09UPTpwc2VydmVyOmFub255bW91c0BjdnMuYWxlcGgxLmNvLnVrOi9ob21lL2FsZXBoMS9jdnMgY3ZzIGxvZ29uCiAgICAoSGl0IHJldHVybiB3aGVuIGFza2VkIGZvciBhIHBhc3N3b3JkKQogICAgY3ZzIGNoZWNrb3V0IHlhZmZzMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0aWcgT2xzZW4gPHN0aWcub2xzZW5AdGFuZGJlcmcuY29tPgoKY29tbWl0IDMwNDNjMDQ1ZDVhOTg5N2ZhYmE3ZDVjNzIxOGMyZjRkMDZjZDAwMzgKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJV2VkIE5vdiAxNCAxNDoyODoxMSAyMDA3ICswMTAwCgogICAgV2hpdGVzcGFjZSBjbGVhbnVwIGFuZCBtYXJraW5nIGJyb2tlbiBjb2RlLgoKICAgIENoYW5nZXMgcmVxdWVzdGVkIGJ5IG1haW50YWluZXIgU3RlZmFuIFJvZXNlIGFmdGVyCiAgICBwb3N0aW5nIHBhdGNoIHRvIFUtYm9vdCBtYWlsaW5nIGxpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWUxZGFlNWMzZGI3ZjQwMjZmMzFiNmEyYTgxZWNkOWU5ZGVlNDc1ZgpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglGcmkgTm92IDkgMTM6MzI6MzAgMjAwNyArMDEwMAoKICAgIEZpeGluZyBjb2Rpbmcgc3R5bGUgaXNzdWVzCgogICAgIC0gRml4aW5nIGxlYWRpbmcgd2hpdGUgc3BhY2VzCiAgICAgLSBGaXhpbmcgaW5kZW50YXRpb24gd2hlcmUgNCBzcGFjZXMgYXJlIHVzZWQgaW5zdGVhZCBvZiB0YWIKICAgICAtIFJlbW92aW5nIEMrKyBjb21tZW50cyAoLy8pLCB3aGVyZXZlciBJIGludHJvZHVjZWQgdGhlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjYmI2NTFiMjljYjY0ZDM3OGEwNjcyOTk3MGUxZTE1M2JiNjA1YjEKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJVGh1IE5vdiA4IDEwOjM5OjUzIDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgd2hpdGUgc3BhY2UgYXQgZW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmYTQ2MGFkZmRlZmNjMzBkMTA0ZTFhOWVlNDQ5OTRlZTM0OWJiN2IKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJV2VkIE9jdCAzMSAxMzo1MzowNiAyMDA3ICswMTAwCgogICAgVXBkYXRlIE1URCB0byB0aGF0IG9mIExpbnV4IDIuNi4yMi4xCgogICAgQSBsb3QgY2hhbmdlZCBpbiB0aGUgTGludXggTVREIGNvZGUsIHNpbmNlIGl0IHdhcyBsYXN0IHBvcnRlZCBmcm9tCiAgICBMaW51eCB0byBVLUJvb3QuIFRoaXMgcGF0Y2ggdGFrZXMgVS1Cb290IE5BTkQgc3VwcG9ydCB0byB0aGUgbGV2ZWwKICAgIG9mIExpbnV4IDIuNi4yMi4xIGFuZCB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciB2ZXJ5IGxhcmdlIE5BTkQgZGV2aWNlcwogICAgKDRLQiBwYWdlcykgYW5kIGVhc2UgdGhlIGNvbXBhdGliaWxpdHkgYmV0d2VlbiBVLUJvb3QgYW5kIExpbnV4CiAgICBmaWxlc3lzdGVtcy4KCiAgICBUaGlzIHBhdGNoIGlzIHRlc3RlZCBvbiB0d28gY3VzdG9tIGJvYXJkcyB3aXRoIFBQQyBhbmQgQVJNCiAgICBwcm9jZXNzb3JzIHJ1bm5pbmcgWUFGRlMgaW4gVS1Cb290IGFuZCBMaW51eCB1c2luZyBnY2MtNC4xLjIKICAgIGNyb3NzIGNvbXBpbGVycy4KCiAgICBNQUtFQUxMIHBwYy9hcm0gaGFzIHNvbWUgaXNzdWVzOgogICAgICogRE9DL09uZU5hbmQvbmFuZF9zcGwgaXMgbm90IGJ1aWxkaW5nIChJIGhhdmUgbm90IHRyaWVkIHBvcnRpbmcKICAgICAgIHRoZXNlIHBhcnRzLCBhbmQgc2luY2UgSSBkbyBub3QgaGF2ZSBhbnkgSFcgYW5kIEkgYW0gbm90IGZhbWlsaWFyCiAgICAgICB3aXRoIHRoaXMgY29kZS9IVyBJIHRoaW5rIGl0cyBiZXN0IGxlZnQgdG8gc29tZW9uZSBlbHNlLikKCiAgICBFeGNlcHQgZm9yIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGFib3ZlLCBJIGhhdmUgcG9ydGVkIGFsbCBkcml2ZXJzCiAgICBuZWNlc3NhcnkgdG8gcnVuIE1BS0VBTEwgcHBjL2FybSB3aXRob3V0IGVycm9ycyBhbmQgd2FybmluZ3MuIE1hbnkKICAgIGRyaXZlcnMgd2VyZSB0cml2aWFsIHRvIHBvcnQsIGJ1dCBzb21lIHdlcmUgbm90IHNvIHRyaXZpYWwuIFRoZQogICAgZm9sbG93aW5nIGRyaXZlcnMgbXVzdCBiZSBleGFtaW5lZCBjYXJlZnVsbHkgYW5kIG1heWJlIHJld3JpdHRlbiB0bwogICAgc29tZSBkZWdyZWU6CiAgICAgY3B1L3BwYzR4eC9uZGZjLmMKICAgICBjcHUvYXJtOTI2ZWpzL2RhdmluY2kvbmFuZC5jCiAgICAgYm9hcmQvZGVsdGEvbmFuZC5jCiAgICAgYm9hcmQvenlsb25pdGUvbmFuZC5jCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RpZyBPbHNlbiA8c3RpZy5vbHNlbkB0YW5kYmVyZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZDgyOTE5ZTZjOGE3M2IzNjNhMjZmMzRiNzM0OTIzODQ0ZTUyZDFjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxMiAxNjowODozOCAyMDA4ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0csIHByZXBhcmUgcmVsZWFzZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTdlOTAwYjhjMGYzOGQ5MjJkYTQ3MDczMjQ2MjE5ZGNlMmE4NDdmMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTIgMTQ6NTQ6MDQgMjAwOCArMDIwMAoKICAgIE1WQkNfUDogZml4IGNvbXBpbGUgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTJiMDQ3YWU0ODIxOWI1OWJlYmUzN2JhNzQzYWIxMDNmZDRmODMxNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTIgMTI6MTA6MTEgMjAwOCArMDIwMAoKICAgIE1QQzgyNzJBRFM6IGZpeCBidWlsZCBlcnJvcjogJ2JkX3QnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3BjaV9jbGsnCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjOWMxMDFjNjYwYjNkMTk5NTA0NWM2MWM3YzYwNDFmNTJiNmNmMzM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxMiAwMDozNjo1MyAyMDA4ICswMjAwCgogICAgYWRzNTEyMTogZml4IGNvbXBpbGVyIHdhcm5pbmdzICh1bnVzZWQgdmFyaWFibGVzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTAyY2EwOTI0NjAzOTk2NGQ1OWJiY2I1MTliMWUxYjVhZWQwMTMwOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBBdWcgMTEgMTE6Mjk6MjggMjAwOCAtMDUwMAoKICAgIDg1eHg6IFJlbmFtZSBDT05GSUdfTlJfQ1BVUyB0byBDT05GSUdfTlVNX0NQVVMKCiAgICBVc2UgQ09ORklHX05VTV9DUFVTIHRvIG1hdGNoIGV4aXN0aW5nIGRlZmluZSB1c2VkIGJ5IDg2eHguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMyMTZjYTk2OTJmZjgwZDdjNjM4NzIzZWY0NDhmM2QzNjMwMWQ5ZTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gQXVnIDExIDA5OjIwOjUzIDIwMDggLTA1MDAKCiAgICBGaXggZmFsbG91dCBmcm9tIGF1dG9zdGFydCByZXZlcnQKCiAgICBUaGUgYXV0b3N0YXJ0IHJldmVydCBjYXVzZWQgYSBiaXQgb2YgZHVwbGljYXRlZCBjb2RlIGFzIHdlbGwgYXMKICAgIGNvZGUgdGhhdCB3YXMgdXNpbmcgaW1hZ2VzLT5hdXRvc3RhcnQgdGhhdCBuZWVkcyB0byBnZXQgcmVtb3ZlZCBzbwogICAgd2UgY2FuIGJ1aWxkIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2NmOGEyMzRiOGU4YzAyZTRkYTFmMjM1NjYwNDNiYzI4OGIwNTIyMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBBdWcgMTEgMDk6MTY6MjUgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIHJlbGF0ZWQgdG8gcjhhNjY1OTctaGNkICYgdXNiCgogICAgV2hlbiBidWlsZGluZyB0aGUgODU0NERTIGJvYXJkIHdlIGdldCB0aGlzIGVycm9yOgoKICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSByOGE2NjU5Ny1oY2QuYzoyMjoKICAgIHUtYm9vdC9pbmNsdWRlL3VzYi5oOjE5MDoyOiBlcnJvcjogI2Vycm9yIFVTQiBMb3dsZXZlbCBub3QgZGVmaW5lZAogICAgbWFrZVsxXTogKioqIFtyOGE2NjU5Ny1oY2Qub10gRXJyb3IgMQoKICAgIFRoZSBjbGVhbmVzdCBmaXggaXMgdG8gb25seSBidWlsZCByOGE2NjU5Ny1oY2QuYyBpZiBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRAogICAgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmQwZGFhMDM2MTIzMzhhODEzZTNjOWQyMjY4MGU1NGVhYmZlYTM3OApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDQgMTQ6MDI6MjYgMjAwOCAtMDUwMAoKICAgIFBPV0VSUEMgODZ4eDogTW92ZSBCQVQgc2V0dXAgY29kZSB0byBDCgogICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB3ZSB3aWxsIGJlIHBvc3NpYmx5IGJlIGxvY2F0aW5nCiAgICBkZXZpY2VzIGF0IHBoeXNpY2FsIGFkZHJlc3NlcyBhYm92ZSAzMmJpdHMsIGFuZCB0aGUgYXNtCiAgICBwcmVwcm9jZXNzaW5nIGRvZXMgbm90IGFwcGVhciB0byBkZWFsIHdpdGggVUxMIGNvbnN0YW50cwogICAgcHJvcGVybHkuIFdlIG5vdyBjYWxsIHdyaXRlX2JhdCBpbiBsaWJfcHBjL2JhdF9ydy5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWRlNjcxNDlkYjU3NmM5MWI5YzJhMGExODI2NTIzMzFlN2U0NDIxMQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDQgMTQ6MDE6NTMgMjAwOCAtMDUwMAoKICAgIFBPV0VSUEM6IEFkZCBzeW5jaHJvbml6YXRpb24gdG8gd3JpdGVfYmF0IGluIGxpYl9wcGMvYmF0X3J3LmMKCiAgICBQZXJmb3JtIHN5bmMvaXN5bmMgYXMgcmVxdWlyZWQgYnkgdGhlIGFyY2hpdGVjdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIzZjkzNWMwNzNlNzU3OGM2MDY2ODA0ZmQyZjllZTExNmNhZTZmZmUKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyA0IDE0OjAxOjE2IDIwMDggLTA1MDAKCiAgICBQT1dFUlBDOiA4Nnh4IC0gYWRkIG1pc3NpbmcgQ09ORklHX0hJR0hfQkFUUyB0byBzYmM4NjQxZCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUyNzZhMzU4NGQyNmE5NTMzNDA0ZjBlYzAwYzNiNjFjZjlhOTc5MzkKQXV0aG9yOiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMyAyMTo0NDoxMCAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBGaXggbXgzMV9ncGlvX211eCgpIGZ1bmN0aW9uIGFuZCBNVVhfLW1hY3Jvcy4KCiAgICBDb3JyZWN0IHRoZSBteDMxX2dwaW9fbXV4KCkgZnVuY3Rpb24gdG8gYWxsb3cgY2hhbmdpbmcgYWxsIGkuTVgzMSBJT01VWAogICAgY29udGFjdHMgaW5zdGVhZCBvZiBvbmx5IHRoZSBmaXJzdCAyNTYgb25lcyBhcyBpcyB0aGUgY2FzZSBwcmlvciB0bwogICAgdGhpcyBwYXRjaC4KCiAgICBBZGQgbWlzc2luZyBNVVhfKiBtYWNyb3MgYW5kIHVwZGF0ZSBib2FyZCBmaWxlcyB0byB1c2UgdGhlIG5ldyBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IGI2YjE4M2M1YjJmZmZkNGM0NTZiN2UzZmNiMDY0Y2NlYjQ3ZmU3YWMKQXV0aG9yOiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMyAyMTo0MzozNyAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBGaXggSU9NVVggcmVsYXRlZCB0eXBvcwoKICAgIENvcnJlY3QgdGhlIG5hbWVzIG9mIHNvbWUgSU9NVVggbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCA0ZDU3YjBmYjI5MjdkNGY1MGQ4MzQ4ODRiNGVjNGE3Y2EwMTcwOGIwCkF1dGhvcjogU3RldmUgU2Frb21hbiA8c3RldmVAc2Frb21hbi5jb20+CkRhdGU6CU1vbiBBdWcgMTEgMjA6MjY6MTYgMjAwOCArMDIwMAoKICAgIE9uZU5BTkQ6IFJlbW92ZSB1bnVzZWQgcGFyYW1ldGVycyB0byBvbmVuYW5kX3ZlcmlmeV9wYWdlCgogICAgVGhlIGJsb2NrIGFuZCBwYWdlIHBhcmFtZXRlcnMgb2Ygb25lbmFuZF92ZXJpZnlfcGFnZSgpIGFyZSBub3QgdXNlZC4gVGhpcyBjYXVzZXMgYSBjb21waWxlciBlcnJvciB3aGVuIENPTkZJR19NVERfT05FTkFORF9WRVJJRllfV1JJVEUgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBTYWtvbWFuIDxzdGV2ZUBzYWtvbWFuLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IGU4NGQ1NjhmYTJhOWY0Y2U3ODg4MTQxZTcxNjc2MzY4ZWY2YjNmMjUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgOCAxODowMDo0MCAyMDA4ICswMjAwCgogICAgdmlkZW86IGZpeCBidWcgaW4gY2ZiX2NvbnNvbGUgY29kZQoKICAgIEZJTExfMTVCSVRfNTU1UkdCIG1hY3JvIGV4dGVuc2lvbiBmb3IgcGl4ZWwgc3dhcHBpbmcKICAgIGJ5IGNvbW1pdCBiZWQ1Mzc1M2RkMWQ3ZTZiY2JlYTQzMzliZTBmYjc3NjAyMTRjYzM1CiAgICBpbnRyb2R1Y2VkIGEgYnVnIGluIGNmYl9jb25zb2xlOgoKICAgIEJpdG1hcHMgd2l0aCBvZGQtbnVtYmVyZWQgd2lkdGggd29uJ3QgYmUgcmVuZGVyZWQKICAgIGNvcnJlY3RseSBhbmQgZXZlbiBVLUJvb3QgY3Jhc2hlcyBhcmUgb2JzZXJ2ZWQgb24KICAgIHNvbWUgcGxhdGZvcm1zIHdoaWxlIHJlcGVhdGVkIHJlbmRlcmluZyBvZiBzdWNoCiAgICBiaXRtYXBzIHdpdGggImJtcCBkaXNwbGF5Ii4gQWxzbyBpZiBhIGJpdG1hcCBpcwogICAgcmVuZGVyZWQgdG8gYW4gb2RkLW51bWJlcmVkIHggc3RhcnRpbmcgcG9zaXRpb24sCiAgICB0aGUgc2FtZSBwcm9ibGVtIG9jY3Vycy4gVGhpcyBwYXRjaCBpcyBhbiBhdHRlbXB0CiAgICB0byBmaXggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGQ5MDE1ZjZhNTBkNzI1ODEyNTM0OWVmNWMyYWY4MzY0NThhMDAyOWEKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgOCAxODowMDozOSAyMDA4ICswMjAwCgogICAgdmlkZW86IGZpeCBidWcgaW4gbG9nb19wbG90CgogICAgSWYgbG9nb19wbG90KCkgc2hvdWxkIGV2ZXIgYmUgY2FsbGVkIHdpdGggeCBzdGFydGluZwogICAgcG9zaXRpb24gb3RoZXIgdGhhbiB6ZXJvIGFuZCBmb3IgcGl4ZWwgZGVwdGhzIGdyZWF0ZXIKICAgIHRoYW4gOGJwcCwgbG9nbyBjb2xvcnMgZGlzdG9ydGlvbiB3aWxsIGJlIG9ic2VydmVkLgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDQwNjgxOWFlOTRmNzlmNWI1OWUwMWQxNjMzODBjYTdkODM3MDkyNTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDExIDAwOjE3OjUyIDIwMDggKzAyMDAKCiAgICBNQUlOVEFJTkVSUzogc29ydCBlbnRyaWVzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZmM0NDJkNzkxM2Q0ZDFjM2E5YmY0OTRmOTBjMDEyYzJmOGMzYmRjCkF1dGhvcjogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDcgMTg6MTk6MjggMjAwOCArMDgwMAoKICAgIEFkZCBtcGM3NDQ4aHBjMiBtYWludGFpbmVyIGluZm9ybWF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5ZmUwYzNlN2NhNDhhZmE1MGQ2YTBkYjk5ZmE5MWU3MjgyZDczZDgKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglUaHUgQXVnIDcgMTM6MTM6MjcgMjAwOCArMDUzMAoKICAgIGNvbW1vbi9jbWRfbG9hZC5jIC0gTWlub3IgY29kZSAmIENvZGluZyBTdHlsZSBjbGVhbnVwCgogICAgLSBvc19kYXRhX2hlYWRlciBWYXJpYWJsZSBpcyBhIGNhcnJ5IG92ZXIgZmVhdHVyZQogICAgICAgJiB1bnVzZWQuIFNvIHJlbW92ZWQgYWxsIGluc3RhbmNlIG9mIHRoaXMgdmFyaWFibGUKICAgICAtIE1pbm9yIENvZGUgU3R5bGUgVXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGQyOGYzNGJiZTU2ZDA5NzFiZDYwMzc4OWRjYzZmZTdhZGYxMWYxNApBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEF1ZyA2IDE5OjMyOjMzIDIwMDggKzAyMDAKCiAgICBVcGRhdGUgdGhlIFUtQm9vdCB3aWtpIFVSTC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgYWE1ZmZhMTZkN2U0YzQ2MWI3Yjc3YmY4ZTc5ZDJlZjU2MzhjZjc1NApBdXRob3I6IGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20gPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMTAgMTc6NTY6MzYgMjAwOCArMDIwMAoKICAgIE9uZU5BTkQ6IFJlbW92ZSBiYXNlIGFkZHJlc3Mgb2Zmc2V0IHVzYWdlCgogICAgV2hpbGUgbG9jYWxseSBwcmVwYXJpbmcgc29tZSBVLUJvb3QgcGF0Y2hlcyBmb3IgQVJNIGJhc2VkIE9NQVAzIGJvYXJkcywgc29tZQogICAgdXNpbmcgT25lTkFORCBhbmQgc29tZSB1c2luZyBOQU5ELCB3ZSBmb3VuZCBzb21lIGRpZmZlcmVuY2VzIGluIE9uZU5BTkQgYW5kCiAgICBOQU5EIGNvbW1hbmQgYWRkcmVzcyBoYW5kbGluZy4KCiAgICBBcyB0aGlzIG1pZ2h0IGNvbmZ1c2UgdXNlcnMgKGl0IGFscmVhZHkgY29uZnVzZWQgdXMpLCB3ZSBsaWtlIHRvIGFsaWduIE9uZU5BTkQKICAgIGFuZCBOQU5EIGFkZHJlc3MgaGFuZGxpbmcuCgogICAgVGhlIGlzc3VlIGlzIHRoYXQgY21kX29uZW5hbmQuYyBzdWJ0cmFjdHMgdGhlIG9uZW5hbmQgYmFzZSBhZGRyZXNzIGZyb20gdGhlCiAgICBhZGRyZXNzZXMgeW91IHR5cGUgaW50byB0aGUgdS1ib290IGNvbW1hbmQgbGluZSBzbywgdW5saWtlIG5hbmQsIHlvdSBjYW4ndAogICAgdXNlIGFkZHJlc3NlcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIG9uZW5hbmQgcGFydCBlLmcuIHRoaXMgd29uJ3Qgd29yazoKCiAgICBvbmVuYW5kIHJlYWQgODIwMDAwMDAgMjgwMDAwIDQwMDAwMAoKICAgIHlvdSBoYXZlIHRvIHVzZToKCiAgICBvbmVuYW5kIHJlYWQgODIwMDAwMDAgMjAyODAwMDAgNDAwMDAwCgogICAgTG9va2luZyBhdCByZWNlbnQgZ2l0LCB0aGUgb25seSBib2FyZCBjdXJyZW50bHkgdXNpbmcgT25lTkFORCBpcyBBcG9sbG9uLCBhbmQKICAgIGZvciB0aGlzIHRoZSBPbmVOQU5EIGJhc2UgYWRkcmVzcyBpcyAwIChhcG9sbG9uLmgpCgogICAgI2RlZmluZQlDRkdfT05FTkFORF9CQVNFCTB4MDAwMDAwMDAKCiAgICBzbyBwYXRjaCBiZWxvdyB3b24ndCBicmVhayBhbnkgZXhpc3RpbmcgYm9hcmRzIGFuZCB3aWxsIGFsaWduIE9uZU5BTkQgYW5kIE5BTkQKICAgIGhhbmRsaW5nIG9uIGJvYXJkcyB3aGVyZSBPbmVOQU5EIGJhc2UgYWRkcmVzcyBpcyAhPSAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlIFNha29tYW4gPHNha29tYW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFuaWthbmRhbiBQaWxsYWkgPG1hbmkucGlsbGFpQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IGMxMTUyODA4M2VmNmU1NWU3NmRmNzQyMjI4YzI2ZTM5ZDE1MTgxM2QKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDcgMDk6Mjg6MjAgMjAwOCAtMDUwMAoKICAgIG1wYzg1eHg6IHdvcmthcm91bmQgb2xkIGJpbnV0aWxzIGJ1ZwoKICAgIFRoZSByZWNlbnQgY2hhbmdlIHRvIG1vdmUgdGhlIC5ic3Mgb3V0c2lkZSBvZiB0aGUgaW1hZ2UgZ2l2ZXMgb2xkZXIKICAgIGJpbnV0aWxzIChsZCBmcm9tIGVsZGs0LjEvYmludXRpbHMtMi4xNikgc29tZSBoZWFkYWNoZToKCiAgICBwcGNfODV4eC1sZDogdS1ib290OiBOb3QgZW5vdWdoIHJvb20gZm9yIHByb2dyYW0gaGVhZGVycyAoYWxsb2NhdGVkIDMsIG5lZWQgNCkKICAgIHBwY184NXh4LWxkOiBmaW5hbCBsaW5rIGZhaWxlZDogQmFkIHZhbHVlCgogICAgV2Ugd29ya2Fyb3VuZCBpdCBieSBiZWluZyBleHBsaWNpdCBhYm91dCB0aGUgcHJvZ3JhbSBoZWFkZXJzIGFuZCBub3QKICAgIGFzc2lnbmluZyB0aGUgLmJzcyB0byBhIHByb2dyYW0gaGVhZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGJmMjAyZWM1ODZkNDQ2NmM5MDBlOTg3NzIwZmE2MzVjNTk0ZDY4OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTAgMDE6MjY6MjYgMjAwOCArMDIwMAoKICAgIFJldmVydCAiW25ldyB1SW1hZ2VdIEFkZCBhdXRvc3RhcnQgZmxhZyB0byBib290bV9oZWFkZXJzIHN0cnVjdHVyZSIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGY1NjE0ZTc5MjY4NjNiZjAyMjVlYzg2MGQ5YjMxOTc0MWE5YzQwMDQuCgogICAgVGhlIGNvbW1pdCB3YXMgYmFzZWQgb24gYSBtaXN1bmRlcnN0YW5kaW5nIG9mIHRoZSAoZG9jdW1lbnRlZCkKICAgIG1lYW5pbmcgb2YgdGhlICdhdXRvc3RhcnQnIGVudmlyb25tZW50IHZhcmlhYmxlLiBJdCBtaWdodCBjYXVzZQogICAgYm9hcmRzIHRvIGhhbmcgaWYgJ2F1dG9zdGFydCcgd2FzIHVzZWQsIHdpdGggdGhlIHBvdGVudGlhbCB0byBicmljawogICAgdGhlbS4gR28gYmFjayB0byB0aGUgZG9jdW1lbnRlZCBiZWhhdmlvdXIuCgogICAgQ29uZmxpY3RzOgoKCWNvbW1vbi9jbWRfYm9vdG0uYwoJY29tbW9uL2ltYWdlLmMKCWluY2x1ZGUvaW1hZ2UuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjlmOGY1OGZmNDBjNjdmN2YyZTExYWZkMTcxNTE3MzA5NGU1MmFjMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgOSAyMzoxNzozMiAyMDA4ICswMjAwCgogICAgVFFNOHh4e0wsTX06IHRyeSB0byBub3JtYWxpemUgY29uZmlnIGZpbGVzIGZvciBUUU04eHg/IGJhc2VkIGJvYXJkCgogICAgLSBlbmFibGUgQ0ZJIGRyaXZlciB3aGVyZSB0aGlzIHdhcyBmb3Jnb3R0ZW4KICAgIC0gZW5hYmxlIG10ZHBhcnRzIHN1cHBvcnQKICAgIC0gYWRqdXN0IGRlZmF1bHQgZW52aXJvbm1lbnQKICAgIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQxMjY2YzliNWE1Zjg3M2RmM2VjODkxYmIwOTA3NjE2OTU4YjU2MDIKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgQXVnIDUgMTA6NTE6NTcgMjAwOCAtMDUwMAoKICAgIEZJVDogRml4IGhhbmRsaW5nIG9mIGltYWdlcyB3aXRob3V0IHJhbWRpc2tzCgogICAgYm9vdF9nZXRfcmFtZGlzaygpIHNob3VsZCBub3QgdHJlYXQgdGhlIGNhc2Ugd2hlbiBhIEZJVCBpbWFnZSBkb2VzCiAgICBub3QgY29udGFpbiBhIHJhbWRpc2sgYXMgYW4gZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIEFja2VkLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgZjc3ZDkyYTNmNTZkODhlNjNjYzAyMjI2YTEyMDRiM2JkYmFjNjk2MQpBdXRob3I6IFNlcmdleSBMYXBpbiA8c2xhcGluQG9zc2ZhbnMub3JnPgpEYXRlOglTYXQgQXVnIDkgMDE6Mzk6MDkgMjAwOCArMDQwMAoKICAgIERhdGFGbGFzaDogQVQ0NURCMDIxIGZpeCBhbmQgQVQ0NURCMDgxIHN1cHBvcnQKCiAgICBGaXggZm9yIHBhZ2Ugc2l6ZSBvZiBBVDQ1REIwMjEuIEFsc28gYWRkaW5nIGJpZ2dlciBBVDQ1REIwODEKICAgIHdoaWNoIGNvbWVzIHdpdGggc29tZSBuZXdlciBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+Cgpjb21taXQgYmE5MzI0NDUxYjY2MmRkMzkzYWZhNTNlNWNjMzZmYzVkM2QxMDk2NgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIEF1ZyA4IDE2OjMwOjIzIDIwMDggKzA5MDAKCiAgICBzaDogVXBkYXRlIHNoNzc2M3JkcCBjb25maWcKCiAgICBBZGQgc2hfZXRoIHN1cHBvcnQgdG8gc2g3NzYzcmRwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KCmNvbW1pdCAyMWY5NzFlYzI2NWY2MDQyZWMyMTYzNmQ1NWQwNmE2YmMwNzUxMDc3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCA3IDAxOjIyOjI5IDIwMDggKzAyMDAKCiAgICBUUU04MjNMOiByZS1lbmFibGUgbG9nbyBzdXBwb3J0OyB1cGRhdGUgTENEX0lORk8gdGV4dAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2I4ZDE3ZjBmMDgyMDczMzQ2YzBkZjAxN2M5ZGZkNmFjZGI0MGQ2ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgOCAxNjo0MTo1NiAyMDA4ICswMjAwCgogICAgVFFNOHh4TDogZml4IHN1cHBvcnQgZm9yIHNlY29uZCBmbGFzaCBiYW5rCgogICAgV2hlbiBzd2l0Y2hpbmcgdGhlIFRRTTh4eEwgbW9kdWxlcyB0byB1c2UgdGhlIENGSSBmbGFzaCBkcml2ZXIsCiAgICBzdXBwb3J0IGZvciB0aGUgc2Vjb25kIGZsYXNoIGJhbmsgd2FzIGJyb2tlbiBiZWNhdXNlIHRoZSBDRkkgZHJpdmVyCiAgICBkaWQgbm90IHN1cHBvcnQgZHluYW1pY2FsbHkgc2l6ZWQgYmFua3MuIFRoaXMgZ2V0cyBmaXhlZCBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYTExMmIyMzRkODc5ZjYzOTA1MDNhNWY0ZTM4MjQ2YWNjZTlkMGIwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyA4IDE2OjM5OjU0IDIwMDggKzAyMDAKCiAgICBDRkk6IGFsbG93IGZvciBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGZsYXNoIHNpemVzIGFuZCBhZGRyZXNzZXMKCiAgICBUaGUgQ0ZJIGRyaXZlciBhbGxvd2VkIG9ubHkgZm9yIHN0YXRpYyBpbml0aWFsaXplcnMgaW4gdGhlCiAgICBDRkdfRkxBU0hfQkFOS1NfTElTVCBkZWZpbml0aW9uLCBpLiBlLiBpdCBkaWQgbm90IGFsbG93IHRvIG1hcAogICAgc2V2ZXJhbCBmbGFzaCBiYW5rcyBjb250aWd1b3VzbHkgaWYgdGhlIGJhbmsgc2l6ZXMgd2VyZSBub3Qga25vd24gaW4KICAgIGFkdmFuY2UsIHdoaWNoIGtpbmQgb2YgdmlvbGF0ZXMgVS1Cb290J3MgZGVzaWduIHBoaWxvc29waHkuCgogICAgKHdpbGwgYmUgdXNlZCBmb3IgZXhhbXBsZSBieSB0aGUgVFFNOHh4TCBib2FyZHMpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkOWQ3OGVlNDZkOWEzOTZkMGE4MWQwMGMyYjAwM2E5YmQzMmMyZTYxCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyA3IDIzOjI2OjM1IDIwMDggLTA3MDAKCiAgICBRRSBVRUM6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKICAgIE1vdmVkIHN0YXRpYyBmdW5jdGlvbnMgZWFybGllciBpbiBmaWxlIHNvIGZvcndhcmQgZGVjbGFyYXRpb25zIGFyZSBub3QgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDVkMjhmZTRhYWQ1ZjQ1MzU0MDA2NDdhNTYxN2MxMTAzOTUwNjQ2NwpBdXRob3I6IERhdmlkIFNhYWRhIDxEYXZpZC5TYWFkYUBlY2l0ZWxlLmNvbT4KRGF0ZToJTW9uIE1hciAzMSAwMjozNzozOCAyMDA4IC0wNzAwCgogICAgUUUgVUVDOiBBZGQgTUlJIENvbW1hbmRzCgogICAgQWRkIE1JSSBjb21tYW5kcyB0byB0aGUgVUVDIGRyaXZlci4gTm90ZSB0aGF0IG9uY2UgYSBVRUMgZGV2aWNlIGlzIHNlbGVjdGVkLAogICAgYW55IGRldmljZSBvbiBpdHMgTURJTyBidXMgY2FuIGJlIGFkZHJlc3NlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTYWFkYSA8ZGF2aWQuc2FhZGFAZWNpdGVsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGZkMGYyZjM3OTZmZjJhN2EzMmQzNWRlYjFiNzk5NmU0ODU4NDlkZjcKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBKdWwgOSAyMTowNzozOCAyMDA4ICswOTAwCgogICAgdXNiOiBhZGQgc3VwcG9ydCBmb3IgUjhBNjY1OTcgdXNiIGNvbnRyb2xsZXIKCiAgICBhZGQgc3VwcG9ydCBmb3IgUmVuZXNhcyBSOEE2NjU5NyB1c2IgY29udHJvbGxlci4KICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgVVNCIEhvc3QgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDFkMTBkY2QwNDFhYWVhZTlmZDdjODIxMDA1NjkyODk4YTAzMDMzODIKQXV0aG9yOiBIdW50ZXIsIEpvbiA8am9uLWh1bnRlckB0aS5jb20+CkRhdGU6CVNhdCBKdWwgMjYgMTg6NTk6MTYgMjAwOCAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBPTUFQNTkxMiBhbmQgT01BUDE2eHggdG8gdXNiZGNvcmVfb21hcDE1MTAuYwoKICAgIEFkZCBzdXBwb3J0IHRvIGRyaXZlcnMvdXNiL3VzYmRjb3JlX29tYXAxNTEwLmMgZm9yIE9NQVA1OTEyIGFuZCBPTUFQMTZ4eCBkZXZpY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBIdW50ZXIgPGpvbi1odW50ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBlYWIxMDA3MzM0YjkzYTYyMDlmMWVjMzM2MTVlMjZlZjUzMTFlZGU3CkF1dGhvcjogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KRGF0ZToJV2VkIEF1ZyA2IDE1OjQyOjUyIDIwMDggLTA0MDAKCiAgICBwcGM0eHg6IFNlcXVvaWEgaGFzIHR3byBVQVJUcyBpbiAiNC1waW4iIG1vZGUuIENvbmZpZ3VyZSB0aGUgR1BJT3MgYXMgcGVyIHNjaGVtYXRpYy4KCiAgICBUaGUgU2VxdW9pYSBib2FyZCBoYXMgdHdvIFVBUlRzIGluICI0LXBpbiIgbW9kZS4gVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgR1BJTwogICAgY29uZmlndXJhdGlvbiB0byBtYXRjaCB0aGUgc2NoZW1hdGljLCBhbmQgYWxzbyBzZXRzIHRoZSBTRFIwX1BGQzEgcmVnaXN0ZXIgdG8KICAgIHNlbGVjdCB0aGUgY29ycmVzcG9uZGluZyBtb2RlIGZvciB0aGUgVUFSVHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZWI1NzE3YTg1YjZjYmEzZjY3YzExZmE4OWJkZGUzOGRjZDA4MWI1CkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGFucy1jaHJpc3RpYW4uZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CVdlZCBBdWcgNiAxNDo0MjoxMyAyMDA4ICswMjAwCgogICAgYXZyMzI6IGFkZCBzdXBwb3J0IGZvciBFYXJ0aExDRCBGYXZyLTMyIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBGYXZyLTMyIGJvYXJkIG1hZGUgYnkgRWFydGhMQ0QuCgogICAgVGhpcyBraXQsIHdoaWNoIGlzIGFsc28gY2FsbGVkIGV6TENELTEwMSB3aGVuIHJ1bm5pbmcgd2l0aCBFYXJ0aExDRCBmaXJtd2FyZSwKICAgIGhhcyBhIDEwLjQiIHRvdWNoIHNjcmVlbiBMQ0QgcGFuZWwsIDE2IE1CIDMyLWJpdCBTRFJBTSwgOCBNQiBwYXJhbGxlbCBmbGFzaCwKICAgIEV0aGVybmV0LCBhdWRpbyBvdXQsIFVTQiBkZXZpY2UsIFNELWNhcmQgc2xvdCwgVVNBUlQgYW5kIHZhcmlvdXMgb3RoZXIKICAgIGNvbm5lY3RvcnMgZm9yIGNlbm5lY3Rpbmcgc3R1ZmYgdG8gU1BJLCBJMkMsIEdQSU8sIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoYW5zLWNocmlzdGlhbi5lZ3R2ZWR0QGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiYzkwMTllMTk3NThhMTlhMzg4ZmIyMGVmMThkYzc3MWNkMzlmZGRhCkF1dGhvcjogUmFmYWVsIENhbXBvcyA8cmFmYWVsLmNhbXBvc0BoYW5zY2FuLmNvbT4KRGF0ZToJVGh1IEp1bCAzMSAxMDoyMjoyMCAyMDA4ICswMjAwCgogICAgY2ZpLWZsYXNoOiBBZGRlZCBzdXBwb3J0IHRvIGZsYXNoX3JlYWxfcHJvdGVjdCBmb3IgQXRtZWwgZmxhc2ggZGV2aWNlcwoKICAgIFNvbWUgb2YgdGhlIGZsYXNoIG1lbW9yaWVzIHByb2R1Y2VkIGJ5IEFUTUVMIHN0YXJ0IGluIHJlYWQtb25seSBtb2RlLgogICAgV2UgbmVlZCB0byB1bnByb3RlY3QgaXQuIFRoaXMgcGF0Y2ggYWxsb3dzIHRoZSBBVDQ5QlY2NDE2IHRvIHdvcmsgd2l0aAogICAgY2ZpX2ZsYXNoIG1lbW9yaWVzLiBUZXN0ZWQgaW4gdGhlIGF0OTFybTkyMDBlayBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhZWwgQ2FtcG9zIExhcyBIZXJhcyA8cmFmYWVsLmNhbXBvc0BoYW5zY2FuLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OTQ5ODM5ZTU4MzZiZjhiMTA3NGJiNjE0MmM0NmQzMGFjM2FhMzUwCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgQXVnIDUgMTU6MzY6MzkgMjAwOCArMDIwMAoKICAgIGNmaS1mbGFzaDogQWRkIGRlZmluaXRpb24gZm9yIHRoZSBBTTI5TFY4MDBCQiBBTUQgTk9SLWZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEzMTg2NzMwNDVmZTE4OGM2ZTI0YzU4MmIxZTZlZmMwMGFlMWM2MmMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgNiAxNDowNjowMyAyMDA4ICswMjAwCgogICAgRml4IG1lcmdlIHByb2JsZW1zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYyMzAyZDQ0MzBlN2YzZjQ4MzA4ZDZhNTg1MzIwZmU5NmFmOGFmYmQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgNiAxNDowNTozOCAyMDA4ICswMjAwCgogICAgRml4IG1lcmdlIHByb2JsZW1zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY2ODk0ODRjY2Q0MzE4OTMyMmFhYTVhMWM2Y2QwMmNkZDUxMWFkN2QKQXV0aG9yOiBLZW5uZXRoIEpvaGFuc3NvbiA8a2VubmV0aEBzb3V0aHBvbGUuc2U+CkRhdGU6CVR1ZSBKdWwgMTUgMTI6MTM6MzggMjAwOCArMDIwMAoKICAgIG1wYzUxMjE6IE1vdmUgaW9waW4gZmVhdHVyZXMgZnJvbSBib2FyZCBzcGVjaWZpYyB0byBjb21tb24gZmlsZXMuCgogICAgQW5kIGluIHRoZSBwcm9jZXNzIGVsaW1pbmF0ZSBzb21lIGR1cGxpY2F0ZSByZWdpc3RlciBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtlbm5ldGggSm9oYW5zc29uIDxrZW5uZXRoQHNvdXRocG9sZS5zZT4KCmNvbW1pdCBlZjExZGY2YjY2ZWNmNTc5N2U5NGJhMzIyMjU0YjhmYjdhNGUyZTEyCkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgNSAxNzozODo1NyAyMDA4IC0wNjAwCgogICAgbXBjNTEyMTogc3F1YXNoIHNvbWUgZmR0IGZpeHVwIGVycm9ycwoKICAgIE9uIEFEUzUxMjEgd2hlbiBib290aW5nIGxpbnV4IHRoZSBmb2xsb3dpbmcgZXJyb3JzIGFyZSBzZWVuOgoJVW5hYmxlIHRvIHVwZGF0ZSBwcm9wZXJ0eSAvc29jNTEyMUA4MDAwMDAwMDpidXMtZnJlcXVlbmN5LCBlcnI9RkRUX0VSUl9OT1RGT1VORAoJVW5hYmxlIHRvIHVwZGF0ZSBwcm9wZXJ0eSAvc29jNTEyMUA4MDAwMDAwMC9ldGhlcm5ldEAyODAwOmxvY2FsLW1hYy1hZGRyZXNzLCBlcnI9RkRUX0VSUl9OT1RGT1VORAoJVW5hYmxlIHRvIHVwZGF0ZSBwcm9wZXJ0eSAvc29jNTEyMUA4MDAwMDAwMC9ldGhlcm5ldEAyODAwOmFkZHJlc3MsIGVycj1GRFRfRVJSX05PVEZPVU5ECgogICAgVGhpcyBpcyBjYXVzZWQgYnkgZnRfY3B1X3NldHVwIHRyeWluZyB0byBkZWFsIHdpdGgKICAgIGJvdGggb2xkIGFuZCBuZXcgc29jIG5vZGUgbmFtaW5nLiAgVGhpcyBwYXRjaAogICAgZml4ZXMgdGhpcyBieSBiZWluZyBzbWFydGVyIGFib3V0IHdoYXQgdG8KICAgIGZpeHVwLgoKICAgIEFsc28gZG8gc29jIG5vZGUgZml4dXBzIGJ5IGNvbXBhdGlibGUgaW5zdGVhZCBvZiBieSBwYXRoLgogICAgQSBuZXcgYm9hcmQgY29uZmlnIGNhbGxlZCBPRl9TT0NfQ09NUEFUIGRlZmluZWQKICAgIHRvIGJlICJmc2wsbXBjNTEyMS1pbW1yIiByZXBsYWNlcyB0aGUgb2xkCiAgICBPRl9TT0Mgbm9kZSBwYXRoIHRoYXQgd2FzIGRlZmluZWQgdG8gYmUgInNvY0A4MDAwMDAwMCIuCgogICAgT2xkIGRldmljZSB0cmVlcyBzdGlsbCB3b3JrLCBidXQgdGhlIGNvbXBhdGlibGl0eQogICAgaXMgY29uZGl0aW9uYWwgb24gQ09ORklHX09GX1NVUFBPUlRfT0xEX0RFVklDRV9UUkVFUwogICAgd2hpY2ggaXMgb24gYnkgZGVmYXVsdCBpbiBpbmNsdWRlL2NvbmZpZ3MvYWRzNTEyMS5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxMDkxZjU4ZjBjNThlY2QyNmM1YjA1ZGUyYWUyMGNhNmNkYjUyMWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXVnIDIgMjM6NDg6MzAgMjAwOCArMDIwMAoKICAgIGRyaXZlcnMvc2VyaWFsOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlIGZvciBDT05GSUdfKiBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRjZDdlNjUyOGY2MWVjNjY5NzU1YzM3NTRiYjRmOTc3OTg3NGZhYjMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXVnIDIgMjM6NDg6MzIgMjAwOCArMDIwMAoKICAgIG5pb3MyL3N5c2lkOiBmaXggcHJpbnRmIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY2ZGE2ZmEwZTM1ZTdlZTU2NjI4Yzg1OTgxNzA5YWZlNzE4MGZjOGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXVnIDIgMjM6NDg6MzMgMjAwOCArMDIwMAoKICAgIEZpeCByZW1haW5pbmcgYnVpbGQgaXNzdWVzIHdpdGggTVBDOHh4IEZBRFMgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODFkM2YxZmRkZGFmZDFlYjUzYmJjYTg3MzlmNDg4ZDQxN2ViM2RkMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMiAyMzo0ODozMSAyMDA4ICswMjAwCgogICAgbmlvczI6IGZpeCBwaHlzX2FkZHJfdCBhbmQgcGh5c19zaXplX3Qgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNWZhNjIwMDBkYjZkMGI0NmVjZGVhZGJlYjUwZmFmNTE5N2RiNDllZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMiAyMzo0ODozNCAyMDA4ICswMjAwCgogICAgbXZiY19wOiBGaXggcHJvYmxlbSB3aXRoICcjaWYgKENPTkZJR19DTURfS0dEQiknCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxNDY0ZWZmNzdlN2ZkYWVkNjA5ZWNmMjYzYTI0MjNjOWRjZjk2YjFmCkF1dGhvcjogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+CkRhdGU6CUZyaSBBdWcgMSAwOTo0ODoyOSAyMDA4ICswMTAwCgogICAgRml4IGJpdG1hcCBkaXNwbGF5IGZvciBhdG1lbCBsY2QgY29udHJvbGxlcgoKICAgIFRoZSBjdXJyZW50IGxjZF9kaXNwbGF5X2JpdG1hcCgpIGZ1bmN0aW9uIGRvZXMgbm90IHdvcmsgcHJvcGVybHkKICAgIGZvciB0aGUgQXRtZWwgTENEIGNvbnRyb2xsZXIuCgogICAgMiBmaXhlcyBuZWVkIHRvIGJlIGRvbmU6LQoKICAgIChhKSB3aGVuIHNldHRpbmcgdGhlIGNvbG91ciBtYXAsIHVzZSB0aGUgbGNkX3NldGNvbHJlZygpIGZ1bmN0aW9uCglhcyBwcm92aWRlZCBieSB0aGUgQXRtZWwgZHJpdmVyCiAgICAoYikgdGhlIGRhdGEgaXMgbmV2ZXIgYWN0dWFsbHkgd3JpdHRlbiB0byB0aGUgbGNkIGZyYW1lYnVmZmVyICEhCgogICAgU2lnbmVkLW9mZi1ieTogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+Cgpjb21taXQgMmE0MzNjNjZiMWUyNzcwMzQ5ZmU0OTExYmUyM2MzNzVmMDUzZWJkOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBBdWcgMSAwODo0MDozNCAyMDA4ICswMjAwCgogICAgcWVtdV9taXBzOiB1cGRhdGUgUkVBRE1FIHRvIGZvbGxvdyBxZW11IHVwZGF0ZSBhYm91dCBkZWZhdWx0IG1hY2hpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGFjMTY5ZDY0NWY1ZjBlMGI5YTIzMjU2MzA5OTIwOWU5MmEzNTVkOGUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDMxIDE5OjUzOjIxIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGNvbXBpbGF0aW9uIGlzc3VlIGNhdXNlZCBieSBhIG1pc3NpbmcgZnVuY3Rpb24KCiAgICBJbXBsZW1lbnQgdXNlYzJ0aWNrcygpIHdoaWNoIGlzIHVzZWQgYnkgZnNsX2kyYy5jIGluCiAgICBsaWJfbTY4ay90aW1lLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAxYWU4NWI1OGI1MWQyZmIxZmFjNWI5MzA5NWY2MDQyY2Y0OGFlN2IKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDMxIDE5OjUzOjA2IDIwMDggLTA1MDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3IgZm9yIFRBU1JFRwoKICAgIFRBU1JFRyBpcyBDb2xkRmlyZSBwbGF0Zm9ybSwgdGhlIGluY2x1ZGUgcHBjNHh4LmggaW4KICAgIGJvYXJkL2VzZC9jb21tb24vZmxhc2guYyBjYXVzZXMgY29uZmxpY3QuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNWQzYmQzY2MzNWM1MDhhNjgyM2RhYzc3ZTBmZDEyNjgwOGU0ZmM3CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCAzMSAxOTo1MjozNiAyMDA4IC0wNTAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGZvciBNQ0Y1Mjc1CgogICAgUmVuYW1lIE9CSiB0byBDT0JKIGluIGJvYXJkL3BsYXRmb3JtL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YzQwNTQ4ZjAxMjE4MzYwYTFmMTM5NTE5OGM1MGZmNDVmMzAzNWI1CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCAzMSAxOTo1MjoyOCAyMDA4IC0wNTAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IgY2F1c2VkIGJ5IGluY29ycmVjdCBmdW5jdGlvbiByZXR1cm4gdHlwZQoKICAgIFJlbmFtZSBpbnQgbWlpX2luaXQodm9pZCkgdG8gdm9pZCBtaWlfaW5pdCh2b2lkKSBmb3IgaWRtcgogICAgQ29sZEZpcmUgcGxhdGZvcm0KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1OGM3ODA2N2M5Mjg5NzZjMDgyYzc1OGQzOTg3ZTg5ZWFkNWIxOTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEgMTI6MDY6MjIgMjAwOCArMDIwMAoKICAgIEZpeCBidWlsZCBpc3N1ZXMgd2l0aCBNUEM4eHggRkFEUyBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0YjUwY2QxMmEzYjNjNjQ0MTUzYzRjZjM5M2Y0YTRjMTIyODllNWFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzMSAxNzo1NDowMyAyMDA4ICswMjAwCgogICAgUHJlcGFyZSB2MS4zLjQtcmMyOiB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhNDgzMTE1NTdkYjZlN2U5NDczYTYxNjNiNDRiYjFlNmM2ZWQ2NGM0CkF1dGhvcjogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+CkRhdGU6CVRodSBKdWwgMzEgMTY6MDk6MDAgMjAwOCArMDEwMAoKICAgIEFkZCBnemlwcGVkIGxvZ28gc3VwcG9ydAoKICAgIFRoZSBSRUFETUUgZmlsZSBzdGF0ZXMgdGhhdCBDT05GSUdfVklERU9fQk1QX0daSVAgYmVoYXZlcyBhcyBmb2xsb3dzOgoKICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCBhZGRpdGlvbmFsbHkgdG8gc3RhbmRhcmQgQk1QCiAgICAgIGltYWdlcywgZ3ppcHBlZCBCTVAgaW1hZ2VzIGNhbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZQogICAgICBzcGxhc2hzY3JlZW4gc3VwcG9ydCBvciB0aGUgYm1wIGNvbW1hbmQuCgogICAgSG93ZXZlciwgdGhlIHNwbGFzaHNjcmVlbiBmdW5jdGlvbiAqb25seSogc3VwcG9ydHMgc3RhbmRhcmQgQk1QIGltYWdlcy4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGRvY3VtZW50ZWQgZ3ppcCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgoKY29tbWl0IGE1YmNiMDFmYmRlNmIxZjFjOTg2M2NkODZlNWM0YzM2OWYwMTIxYWMKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KRGF0ZToJVGh1IEp1bCAzMSAxNTo1Njo0OCAyMDA4ICswMTAwCgogICAgRml4IEF0bWVsIExDRCBjb250cm9sbGVyIGVuZGlhbmVzcyBmb3IgQVZSMzIgcHJvY2Vzc29ycwoKICAgIFRoZSBBdG1lbCBsY2QgY29udHJvbGxlciBpcyB1c2VkIG9uIEF0bWVsJ3MgQVQ5MSAobGl0dGxlIGVuZGlhbikgYW5kCiAgICBBVlIzMiAoYmlnIGVuZGlhbikgcGxhdGZvcm1zLgoKICAgIEFzIHN1Y2gsIHRoZSBjb250cm9sbGVyIGNhbiBoYW5kbGUgYm90aCBiaWcgYW5kIGxpdHRsZSBlbmRpYW4gbWVtb3J5LgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGRyaXZlciBmb3IgdGhlIEFWUjMyIHBsYXRmb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgoKY29tbWl0IGNkYjhiZDJmZDNiY2JlNjVkOGU0MzM0YTU1ZjVhNjY3ODQ1NDI2YTEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgSnVsIDMxIDE1OjU2OjAxIDIwMDggKzAyMDAKCiAgICBhcG9sbG9uOiBmaXggYnVpbGQgb3V0IG9mIHRyZWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDJlNzUyYmUzOWQzZTM5OGQ0YWI4OWZmYTY2MzRjMzk3ZGYyOTgyOTcKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMzEgMTI6MzU6MDQgMjAwOCArMDIwMAoKICAgIFVuY29tcHJlc3NlZCBpbWFnZXMgbG9hZGVkIHRvIHRoZWlyIHN0YXJ0IGFkZHJlc3Mgc2hhbGwgc2V0IGxvYWRfZW5kIHRvbwoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGMzNzIwN2Q3ZjUxZTE5YzE3Zjg1OTk2NmYzMTRlMjdjYzEyMzE4MDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDE2IDE2OjM4OjU5IDIwMDggKzAyMDAKCiAgICBGaXggcHJpbnRmKCkgZm9ybWF0IHByb2JsZW1zIHdpdGggY29uZmlndXJhYmxlIHByb21wdHMKCiAgICBVLUJvb3QgYWxsb3dzIGZvciBjb25maWd1cmFibGUgcHJvbXB0IHN0cmluZ3MgdXNpbmcgdGhlCiAgICBDT05GSUdfQVVUT0JPT1RfUFJPTVBUIHJlc3AuIENPTkZJR19NRU5VUFJPTVBUIGRlZmluaXRpb25zLiBTbyBmYXIsCiAgICB0aGUgYXNzdW1wdGlvbiB3YXMgdGhhdCBhbnkgc3VjaCB1c2VyIGRlZmluZWQgcHJvYmx0cyB3b3VsZCBjb250YWluCiAgICBleGFjdGx5IG9uZSAiJWQiIGZvcm1hdCBzcGVjaWZpZXIuIEJ1dCBzb21lIGJvYXJkcyBkaWQgbm90LgoKICAgIFRvIGFsbG93IGZvciBmbGV4aWJsZSBib290IHByb21wdHMgd2l0aG91dCBhZGRpbmcgdG9vIGNvbXBsZXggY29kZSB3ZQogICAgbm93IGFsbG93IHRvIHNwZWNpZnkgdGhlIHdob2xlIGxpc3Qgb2YgcHJpbnRmKCkgYXJndW1lbnRzIGluIHRoZSB1c2VyCiAgICBkZWZpbml0aW9uLiBUaGlzIGlzIHBvd2VyZnVsLCBidXQgcmVxdWlyZXMgYSByZXNwb25zaWJsZSB1c2VyIHdobwogICAgcmVhbGx5IHVuZGVyc3RhbmRzIHdoYXQgaGUgaXMgZG9pbmcsIGFzIGhlIG5lZWRzIHRvIGtub3cgZm9yIGV4YW5wbGUKICAgIHdoaWNoIHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSByZXNwZWN0aXZlIGNvbnRleHQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NDc1NDEyMDYzN2I2YTdmNGZmNzc0ZmIxOTlmYzU1MGJjZmVhMWRhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzMSAxNzowMjoxNCAyMDA4ICswMjAwCgogICAgVFFNODV4eDogZml4IHR5cG8gaW50cm9kdWNlIGJ5IGNvbW1pdCBmZmJiNWNiOQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGI0OTUxZDRjZGRjYTljYzgwMDc0NTg5MWM5NWIyOTFlNDdjYmJkNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMzEgMTU6Mjc6MDEgMjAwOCArMDIwMAoKICAgIG12YmNfcCBib2FyZDogZml4IG1vc3QgYnVpbGQgd2FybmluZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjNGVjNmRiMDc0MDUxZDJmNmZjNzZhNjY0MTFjNjA2MjFiMjJiYzAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzMSAxMzo1NzoyMCAyMDA4ICswMjAwCgogICAgRTEwMDA6IGNsZWFuIHVwIENPTkZJR19FMTAwMF9GQUxMQkFDS19NQUMgaGFuZGxpbmcKCiAgICBBdm9pZCAiaW50ZWdlciBjb25zdGFudCBpcyB0b28gbGFyZ2UgZm9yICdsb25nJyB0eXBlIiB3YXJuaW5ncy4KICAgIEFuZCBzaW1wbGlmeSB0aGUgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkxOTZiNDQzMzRjMzMwY2MxM2RlMjQ2NGM1OTE4MWU0ZGI3MWY1NDkKQXV0aG9yOiBNYXR2ZWpjaGlrb3YgSWx5YSA8bWF0dmVqY2hpa292QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1bCAzMCAyMzoyMToxOSAyMDA4ICswNDAwCgogICAgODI2MDogTWFraW5nIHRoZSB1c2Ugb2YgZ2QtPnBjaV9jbGsgZGVwZW5kYW50IG9uIHRoZSBDT05GSUdfUENJCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+Cgpjb21taXQgNjM2MWFkNGI1OTZmNWE5NDBhMDFjOTFhZTAyOTdkOThmNzkwY2JlMApBdXRob3I6IE1hdHZlamNoaWtvdiBJbHlhIDxtYXR2ZWpjaGlrb3ZAZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDMwIDIzOjIwOjMyIDIwMDggKzA0MDAKCiAgICBQUEM6IEFkZCBwY2lfY2xrIGluIHRoZSBnbG9iYWxfZGF0YSBmb3IgQ1BNMiBwcm9jZXNzb3JzCgogICAgVGhpcyBwYXRjaCBhZGRzIHBjaV9jbGsgZmllbGQgdG8gdGhlIGdsb2JhbF9kYXRhIHN0cnVjdHVyZSBmb3IgdGhlCiAgICBwcm9jZXNzb3JzIHdoaWNoIGhhdmUgQ1BNMiBtb2R1bGUgaW4gY2FzZSB0aGUgQ09ORklHX1BDSSBpcyBkZWZpbmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHZlamNoaWtvdiBJbHlhIDxtYXR2ZWpjaGlrb3ZAZ21haWwuY29tPgoKY29tbWl0IGYwZmY4ODVjYTY0NjU1YmVlNjU0MGViOGEyNWVlZDkwYjExNTI2ODYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSnVsIDMwIDE0OjEzOjMwIDIwMDggLTA1MDAKCiAgICBtcGM4NXh4OiBVcGRhdGUgbGlua2VyIHNjcmlwdHMgZm9yIEZyZWVzY2FsZSBib2FyZHMKCiAgICAqIE1vdmUgdG8gdXNpbmcgYWJzb2x1dGUgYWRkcmVzc2luZyBhbHdheXMuICBNYWtlcyB0aGUgc2NyaXB0cyBhIGJpdCBtb3JlCiAgICAgIHBvcnRhYmxlIGFuZCBjb21tb24KICAgICogTW92ZWQgLmJzcyBhZnRlciB0aGUgZW5kIG9mIHRoZSBpbWFnZS4gIFRoZXNlIGFsbG93cyB1cyB0byBoYXZlIG1vcmUKICAgICAgcm9vbSBpbiB0aGUgcmVzdWx0aW5nIGJpbmFyeSBpbWFnZSBmb3IgY29kZSBhbmQgZGF0YS4KICAgICogUmVtb3ZlZCAudGV4dCBvYmplY3QgZmlsZXMgdGhhdCBhcmVuJ3QgcmVhbGx5IG5lZWRlZAogICAgKiBNYWtlIHN1cmUgX2VuZCBpcyA0LWJ5dGUgYWxpZ25lZCBhcyB0aGUgLmJzcyBpbml0IGNvZGUgZXhwZWN0cyB0aGlzLgogICAgICAoSXRzIHBvc3NpYmxlIHRoYXQgdGhlIGVuZCBvZiAuYnNzIGlzbid0IDQtYnl0ZSBhbGlnbmVkKQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTdjMjE5YWQ1ZDM0ZGQ5ZDQ5OTkxNzc3YTYyZTM4OTk1OTVmMmVjNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKdWwgMzAgMDg6MDE6MTUgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxlIHdhcm5pbmdzIGluIGRsbWFsbG9jCgogICAgVGhlIG9yaWdpb25hbCBjb2RlIHdhcyB1c2luZyBvbiBvZGQgcmVmZXJlbmNlIHRvIGdldCB0byB0aGUgZmlyc3QKICAgIHJlYWwgZWxlbWVudCBpbiBhdl9bXS4gIFRoZSBmaXJzdCB0d28gZWxlbWVudHMgb2YgdGhlIGFycmF5IGFyZQogICAgbm90IHVzZWQgZm9yIGFjdHVhbCBiaW5zLCBidXQgZm9yIGhvdXNlIGtlZXBpbmcuICBJZiB3ZSBhcmUgbW9yZQogICAgZXhwbGljaXQgYWJvdXQgaG93IHVzZSB0aGUgZmlyc3QgZmV3IGVsZW1lbnRzIHdlIGNhbiBnZXQgcmlkIG9mIHRoZQogICAgd2FybmluZ3M6CgogICAgZGxtYWxsb2MuYzogSW4gZnVuY3Rpb24gJ21hbGxvY19leHRlbmRfdG9wJzoKICAgIGRsbWFsbG9jLmM6MTk3MTogd2FybmluZzogZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0LWFsaWFzaW5nIHJ1bGVzCiAgICBkbG1hbGxvYy5jOjE5OTk6IHdhcm5pbmc6IGRlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdC1hbGlhc2luZyBydWxlcwogICAgZGxtYWxsb2MuYzoyMDI5OiB3YXJuaW5nOiBkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QtYWxpYXNpbmcgcnVsZXMKICAgIC4uLgoKICAgIFRoZSBsb2dpYyBvZiBob3cgdGhpcyBjb2RlIGNhbWUgdG8gYmUgaXM6CgliaW5fYXQoMCkgPSAoY2hhciopJihhdl9bMl0pIC0gMipTSVpFX1NaCgogICAgU0laRV9TWiBpcyB0aGUgc2l6ZSBvZiBwb2ludGVyLCBhbmQgYXZfIGlzIGFycnkgb2YgcG9pbnRlcnMgc286CgliaW5fYXQoMCkgPSAmKGF2X1swXSkKCiAgICBHb2luZyBmcm9tIHRoZXJlIHRvIGJpbl9hdCgwKS0+ZmQgb3IgYmluX2F0KDApLT5zaXplIHNob3VsZCBiZSBzdHJhaWdodCBmb3J3YXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2Y5YWUxYTVkNDNjNDlhOGVjZjQ5NzQ3MGMzZDFkODAyNTVlNDRiOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAzMCAxMDoyMTowMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggVzdPTE1HIGNvbXBpbGUgcHJvYmxlbXMgYnkgYWRkaW5nIG1pc3NpbmcgTE03NSBkZWZpbmVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViYjg2YzRlY2QzN2E3NzAxMzU4Mjg0ZTQ5N2NhNGM2NDgzYzdjYzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMzAgMDk6NTk6NTEgMjAwOCArMDIwMAoKICAgIGNtZF9ib290bS5jOiBGaXggcHJvYmxlbSB3aXRoICcjaWYgKENPTkZJR19DTURfVVNCKScKCiAgICBBIHJlY2VudCBwYXRjaCB1c2VkICcjaWYgKENPTkZJR19DTURfVVNCKScgaW5zdGVhZCBvZgogICAgJyNpZiBkZWZpbmVkKENPTkZJR19DTURfVVNCKScuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtIGFuZCBtYWtlcwogICAgY29tbW9uL2Jvb3RtLmMgY29tcGlsZSBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAyY2I5MDgwNDI3ZmU2NDFkY2I3MWRhNDZjZDA2MzRkZDQwNmYzN2VkCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVR1ZSBKdWwgMjIgMDg6MDE6NDMgMjAwOCArMDkwMAoKICAgIFJlbW92ZSB1bnVzZWQgSTJDIGF0IGFwb2xsb24gYm9hcmQKCiAgICBUaGVyZSBhcmUgbm8gSTJDIGRldmljZXMgb24gdGhpcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDNjOTU5NjBlNTI2YjNiMDI2ZGEyMDIwMWRiNjQ1MjZmNDZmYWYxNGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMxIDEwOjEyOjA5IDIwMDggKzAyMDAKCiAgICBhdDkxcm05MjAwZGssIGNzYjYzNzogZml4IE5BTkQgcmVsYXRlZCBidWlsZCBwcm9ibGVtcwoKICAgIFRyaWVkIGZpeGluZyBOQU5EIHN1cHBvcnQgZm9yIHRoZSBhdDkxcm05MjAwZGsgYm9hcmQ7IHVudGVzdGVkLgogICAgRGlzYWJsZWQgTkFORCBzdXBwb3J0IGluIHRoZSBjc2I2MzcgYm9hcmQgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MjQ2ZjVlY2ZkMzUzYWUyOTdhMDJmZmQ1MzI4NDAyYWNmMTZjOWRkCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVdlZCBKdWwgMzAgMTI6Mzk6MjggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTUw1MDc6IEVudmlyb25tZW50IGluIGZsYXNoIGFuZCBNVEQgU3VwcG9ydAoKICAgIC0gUmVsb2NhdGUgdGhlIGxvY2F0aW9uIG9mIFUtQm9vdCBpbiB0aGUgZmxhc2gKICAgIC0gU2F2ZSB0aGUgZW52aXJvbm1lbnQgaW4gb25lIHNlY3RvciBvZiB0aGUgZmxhc2ggbWVtb3J5CiAgICAtIE1URCBTdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYThhMTZhZjRkNTlkMTRjYzFjMTE4N2MxMGFhYWQ4MGQ2YjgzOTRiNQpBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglUdWUgSnVsIDI5IDE3OjE2OjEwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IE1MNTA3OiBVc2Ugb2YgZ2V0X3JhbV9zaXplIGluIGJvYXJkIG1sNTA3CgogICAgLSBDaGFuZ2Ugc3VnZ2VzdGVkIGJ5IFdECgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDFhMDA0MzEzYzVlYzJkMTI4YjYxMWRmNGMyMDhiMWIwZDNjM2ZiNApBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglNb24gSnVsIDIxIDIwOjMwOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IE1MNTA3OiBVLUJvb3QgaW4gZmxhc2ggYW5kIFN5c3RlbSBBQ0UKCiAgICBUaGlzIHBhdGNoIGFsbG93cyBib290aW5nIGZyb20gRkxBU0ggdGhlIE1MNTA3IGJvYXJkIGJ5IFhpbGlueC4KICAgIFByZXZpb3VzbHksIFUtQm9vdCBuZWVkZWQgdG8gYmUgbG9hZGVkIGZyb20gSlRBRyBvciBhIFN5dGVtIEFDRSBDRgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVjMzc0YzllZTE2ZmVlMmJmNjg1MzNjYzQwMTBiM2MwZGYyMWY3ODMKQXV0aG9yOiBKdWxpZW4gTWF5IDxtYWlsaW5nbGlzdEBtaXJvbWljby5jaD4KRGF0ZToJTW9uIEp1biAyMyAxMzo1Nzo1MiAyMDA4ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBoYW1tZXJoZWFkIChBVlIzMikgYm9hcmQKCiAgICBUaGUgSGFtbWVyaGVhZCBwbGF0Zm9ybSBpcyBidWlsdCBhcm91bmQgYSBBVlIzMiAzMi1iaXQgbWljcm9jb250cm9sbGVyCiAgICBmcm9tIEF0bWVsLiAgSXQgb2ZmZXJzIHZlcnNhdGlsZSBwZXJpcGhlcmFscywgc3VjaCBhcyBldGhlcm5ldCwgdXNiCiAgICBkZXZpY2UsIHVzYiBob3N0IGV0Yy4KCiAgICBUaGUgYm9hcmQgYWxzbyBpbmNvb3BlcmF0ZXMgYSBwb3dlciBzdXBwbHkgYW5kIGlzIGEgUG93ZXIgb3ZlciBFdGhlcm5ldAogICAgKFBvRSkgUG93ZXJlZCBEZXZpY2UgKFBEKS4KCiAgICBBZGRpdG9uYWxseSwgYSBDeWNsb25lIElJSSBGUEdBIGZyb20gQWx0ZXJhIGlzIGludGVncmF0ZWQgb24gdGhlIGJvYXJkLgogICAgVGhlIEZQR0EgaXMgbWFwcGVkIGludG8gdGhlIDMyLWJpdCBBVlIgbWVtb3J5IGJ1cy4gVGhlIEZQR0Egb2ZmZXJzIHR3bwogICAgRERSMiBTRFJBTSBpbnRlcmZhY2VzLCB3aGljaCB3aWxsIGNvdmVyIGV2ZW4gdGhlIG1vc3QgZXhjZXB0aW9uYWwgbmVlZAogICAgb2YgbWVtb3J5IGJhbmR3aWR0aC4gVG9nZXRoZXIgd2l0aCB0aGUgb25ib2FyZCB2aWRlbyBkZWNvZGVyIHRoZSBib2FyZAogICAgaXMgcmVhZHkgZm9yIHZpZGVvIHByb2Nlc3NpbmcuCgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlOiBodHRwOi8vL3d3dy5taXJvbWljby5jb20vaGFtbWVyaGVhZAoKICAgIFNpZ25lZC1vZmYtYnk6IEp1bGllbiBNYXkgPG1haWxpbmdsaXN0QG1pcm9taWNvLmNoPgogICAgW2hhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb206IHZhcmlvdXMgc21hbGwgZml4ZXMgYW5kIGFkYXB0aW9uc10KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwOWQzMThhOGJiMTQ0NGVjOTJlMzFjYWZjZGJhODc3ZWI5NDA5ZTU4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEp1bCAyOSAxMjoyMzo0OSAyMDA4IC0wNTAwCgogICAgZnNsX2kyYzogVXNlIHRpbWViYXNlIHRpbWVyIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIGdldF90aW1lcigpCgogICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgZ2V0X3RpbWVyKCkgaXMgb25seSByZWFsbHkgdXNlZnVsIGFmdGVyIHdlCiAgICBoYXZlIHJlbG9jYXRlZCB1LWJvb3QgdG8gbWVtb3J5LiAgVGhlIGkyYyBjb2RlIGlzIHVzZWQgYmVmb3JlIHRoYXQgYXMgcGFydAogICAgb2YgdGhlIFNQRCBERFIgc2V0dXAuCgogICAgV2UgYWN0dWFsbHkgaGF2ZSBhIGJ1ZyB3aGVuIHVzaW5nIHRoZSBnZXRfdGltZXIoKSBjb2RlIGJlZm9yZSByZWxvY2F0aW9uCiAgICBiZWNhdXNlIHRoZSAuYnNzIGhhc24ndCBiZWVuIHNldHVwIGFuZCB0aHVzIHdlIGNvdWxkIGJlIHJlYWRpbmcvd3JpdGluZwogICAgYSByYW5kb20gbG9jYXRpb24gKHByb2JhYmx5IGluIGZsYXNoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRmYzcyYTBkNmNhODUwNzBhNWU5MGQ3NmNjNWE4NTM1MjZhYzA5YzQKQXV0aG9yOiBGcmFuayBTdmVuZHNiw7hlIDxmcmFuay5zdmVuZHNib2VAZ21haWwuY29tPgpEYXRlOglUdWUgSnVsIDI5IDE0OjQ5OjMxIDIwMDggKzAyMDAKCiAgICBBZGRlcjh4eDogRml4IENGR19NT05JVE9SX0xFTgoKICAgIER1ZSB0byBpbmNyZWFzZWQgc3BhY2UgdXNhZ2UsIFUtQm9vdCBjYW4gbm8gbG9uZ2VyIGJlIHN0b3JlZCBpbiB0aHJlZSBzZWN0b3JzLgogICAgVGhlIGN1cnJlbnQgVS1Cb290IHVzZSBqdXN0IG92ZXIgdGhyZWUgZmxhc2ggc2VjdG9ycyAoMTk3ayksIGFuZCBVLUJvb3Qgd2lsbAogICAgYmVjb21lIGNvcnJ1cHQgYWZ0ZXIgc2F2aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcy4gVGhpcyBwYXRjaCBhZGRzIGFub3RoZXIgNjRrCiAgICB0byBDRkdfTU9OSVRPUl9MRU4uCgogICAgU2lnbmVkLW9mZi1ieTogRnJhbmsgRS4gU3ZlbmRzYsO4ZSA8ZnJhbmsuc3ZlbmRzYm9lQGdtYWlsLmNvbT4KCmNvbW1pdCBhNGM1OWFkNGEyMTE0MDU1MGFkYTZmOTc2OTBkMjUyN2M0MTQ2Y2U1CkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVR1ZSBKdWwgMjkgMDg6NDc6NTcgMjAwOCArMDkwMAoKICAgIEFkZCBPbmVOQU5EIElQTCByZWxhdGVkIGZpbGVzIHRvIGdpdGlnbm9yZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgOGQ4NzU4OWU4ZTg3NGRmNzEyMGEzZDk2NjdmMDUxYmMzM2JhYzI1MApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBKdWwgMjggMjA6Mzg6MjUgMjAwOCArMDIwMAoKICAgIEFQSTogVGVhY2ggdGhlIHN0b3JhZ2UgbGF5ZXIgYWJvdXQgU0FUQSBhbmQgTU1DIG9wdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgQ3p1YmFrIDxyY3pAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgNmI3M2I3NTRmNzgyZTFlY2NlNTA0OGJmMjBiMjJjZTU2YTA3YTViOApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBKdWwgMjggMjA6Mzc6NDggMjAwOCArMDIwMAoKICAgIEFQSTogRHVtcCBjb250ZW50cyBvZiBzZWN0b3IgMCBpbiB0aGUgZGVtbyBhcHBsaWNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxM2NhNjMwNWYyZWJhNDljMTc1ZjYzNzBjMzUyODYxNDEwNTljNzg5CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEp1bCAyOCAyMDozNzoxMCAyMDA4ICswMjAwCgogICAgQVBJOiBDb3JyZWN0IHN0b3JhZ2UgZW51bWVyYXRpb24gcm91dGluZSwgb3RoZXIgbWlub3IgZml4ZXMgaW4gQVBJIHN0b3JhZ2UgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAwNWM3ZmUwZjA0OWIxYzllYjlhMTk5MmYyN2U1ZTM1MGQ4NjVmNGE4CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEp1bCAyOCAyMDozNjoxOSAyMDA4ICswMjAwCgogICAgQVBJOiBGaXggY29tcGlsYXRpb24gd2FybmluZ3MgaW4gYXBpX2V4YW1wbGVzL2RlbW8uYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+Cgpjb21taXQgYzE0ZWVmY2M0ODIxMmFmMmYzMzE0ODA5NjA1Njk4ZGQ4MzkzYTkwYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBKdWwgMjcgMTc6MDk6NDMgMjAwOCArMDIwMAoKICAgIEZpeCBtb3JlIHByaW50ZigpIGZvcm1hdCB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTM2ODk3ZDRkMTM2NTQ1MmJiYmRmODQzMGRiNWU3NzY5ZWYwOGQzOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBKdWwgMjUgMTU6MTg6MTYgMjAwOCArMDIwMAoKICAgIEZpeCByZW1haW5pbmcgQ0ZHX0NNRF8gZGVmaW5lLCBpZmRlZiBhbmQgY29tbWVudHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDVkMWQwMGZiMzYwMDU0ODJlMTgwM2EwMGRkYzQ2ZWZhMTFkNzE5YWYKQXV0aG9yOiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAyNSAwODo1Nzo0MCAyMDA4ICswMjAwCgogICAgQWRkIGluY2x1ZGUgZm9yIGNvbmZpZy5oIGluIGNvbW1hbmQuaC4KCiAgICBCZWNhdXNlIHRoZSBjbWRfdGJsX3Mgc3RydWN0dXJlIGRlcGVuZHMgb24gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgaXQKICAgIG11c3QgYmUgYXNzdXJlZCB0aGF0IGNvbmZpZy5oIGlzIGluY2x1ZGVkIGJlZm9yZSB0aGUgc3RydWN0dXJlIGlzCiAgICBldmFsdWF0ZWQgYnkgdGhlIGNvbXBpbGVyLiBJZiB0aGlzIGlzIG5vdCBjZXJ0YWluLCBpdCBjb3VsZCBoYXBwZW4KICAgIHRoYXQgdGhlIGNvbXBpbGVyIGdlbmVyYXRlcyBzdHJ1Y3R1cmVzIG9mIGRpZmZlcmVudCBzaXplLCBkZXBlbmRpbmcKICAgIG9uIHRoZSBmYWN0IGlmIHRoZSBzb3VyY2UgZmlsZSBpbmNsdWRlcyA8Y29uZmlnLmg+IGJlZm9yZSBvciBhZnRlcgogICAgPGNvbW1hbmQuaD4uCgogICAgVGhlIGVmZmVjdCBpcyB0aGF0IHUtYm9vdCBjcmFzaGVzIHdoZW4gdHJpZXMgdG8gcmVsb2NhdGUgdGhlIGNvbW1hbmQKICAgIHRhYmxlIChmb3IgcHBjKSBvciB0cnkgdG8gYWNjZXNzIHRvIHRoZSBjb21tYW5kIHRhYmxlIGZvciBvdGhlcgogICAgYXJjaGl0ZWN0dXJlcy4KCiAgICBUaGUgcHJvYmxlbSBjYW4gaGFwcGVuIG9uIGJvYXJkLWRlcGVuZGluZyBjb21tYW5kcy4gQWxsIGdlbmVyYWwKICAgIGNvbW1hbmRzIHVuZGVyIC9jb21tb24gYXJlIHVuYWZmZWN0ZWQsIGJlY2F1c2UgdGhleSBpbmNsdWRlIGFscmVhZHkKICAgIGNvbmZpZy5oIGJlZm9yZSBjb21tYW5kLmguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgMmRhY2I3MzRiYWM5ZGJhMWRiOWU3MDRkM2UwYjIwMGVmNTIxYzc5YQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDIzIDEzOjE2OjA2IDIwMDggLTA1MDAKCiAgICBOQU5EOiAkKG9iaiktcXVhbGlmeSBlY2MuaCBpbiBraWxhdWVhIE5BTkQgYm9vdCBNYWtlZmlsZS4KCiAgICBUaGlzIGZpeGVzIGJ1aWxkaW5nIG91dC1vZi10cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM2ZDU5YmQ5ZGE5ZTE1ZDE5Yjg2N2I0ODQ0OTQwODgzMGY0ZTJhZDUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAyMyAwNzozMDo0NiAyMDA4ICswMjAwCgogICAgRml4IHdhcm5pbmdzIGlmIGNvbXBpbGluZyB3aXRoIElERSBzdXBwb3J0LgoKICAgIGNtZF9pZGUuYzo4Mjc6IFdhcm51bmc6IHdlYWsgZGVjbGFyYXRpb24gb2YgYGlkZV9vdXRiJyBhZnRlciBmaXJzdCB1c2UgcmVzdWx0cyBpbiB1bnNwZWNpZmllZCBiZWhhdmlvcgogICAgY21kX2lkZS5jOjgzOTogV2FybnVuZzogd2VhayBkZWNsYXJhdGlvbiBvZiBgaWRlX2luYicgYWZ0ZXIgZmlyc3QgdXNlIHJlc3VsdHMgaW4gdW5zcGVjaWZpZWQgYmVoYXZpb3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA3NjEwZGIxN2ZkNGQ1OWM1MWQ4MjU0ODg1MjZkODVlZGUyZjA2NzY3CkF1dGhvcjogQWRyaWFuIEZpbGlwaSA8YWRyaWFuLmZpbGlwaUBldXJvdGVjaC5jb20+CkRhdGU6CVR1ZSBKdWwgMjIgMTQ6Mjg6MTEgMjAwOCAtMDQwMAoKICAgIFJlbW92ZWQgc3VwcG9ydCBmb3IgdGhlIGFkc3ZpeCBib2FyZC4KCiAgICBTdXBwb3J0IGZvciB0aGUgYWRzdml4IHdhcyBvcmlnaW5hbGx5IHByb3ZpZGVkIGJ5IEFwcGxpZWQgRGF0YQogICAgU3lzdGVtcyAoQURTKSwgaW5jLiwgbm93IEV1cm9UZWNoLCBJbmMuCiAgICBUaGUgYm9hcmQgbmV2ZXIgc2hpcHBlZCBhc2lkZSBmcm9tIHNvbWUgc2FtcGxlIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZHJpYW4gRmlsaXBpIDxhZHJpYW4uZmlsaXBpQGV1cm90ZWNoLmNvbT4KCmNvbW1pdCBmOTZiNDRjZWY4OTdiZDM3MmJlYjg2ZGRlMWIzMzYzN2MxMTlkODRkCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBKdWwgMjIgMTY6MjI6MTEgMjAwOCArMDIwMAoKICAgIEFSTTogc2V0IEdEX0ZMR19SRUxPQyBmb3IgYm9hcmRzIHNraXBwaW5nIHJlbG9jYXRpb24gdG8gUkFNCgogICAgSWYgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QgaXMgc2V0IHRoZSBmbGFnIEdEX0ZMR19SRUxPQyBpcyB1c3VhbGx5CiAgICBuZXZlciBzZXQsIGJlY2F1c2UgcmVsb2NhdGlvbiB0byBSQU0gaXMgYWN0dWFsbHkgbmV2ZXIgZG9uZSBieSBVLWJvb3QKICAgIGl0c2VsZi4gSG93ZXZlciwgc2V2ZXJhbCBwaWVjZXMgb2YgY29kZSBjaGVjayBpZiB0aGlzIGZsYWcgaXMgc2V0IGF0CiAgICBzb21lIHRpbWUuCgogICAgU28sIHRvIG1ha2Ugc3VyZSB0aGlzIGZsYWcgaXMgc2V0IG9uIGJvYXJkcyBza2lwcGluZyByZWxvY2F0aW9uLCB0aGlzCiAgICBpcyBhZGRlZCB0byB0aGUgaW5pdGlhbGlzYXRpb24gb2YgVS1ib290IGF0IGEgbW9tZW50IHdoZXJlIGl0IGlzIHNhZmUKICAgIHRvIGRvIHNvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGU0ZGFmZmY4NmYyODliNTY3NzE0M2EzZTQxZGE3YjQ1YzZkMjdmYzcKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDIxIDE0OjI2OjIzIDIwMDggLTA1MDAKCiAgICBmc2wtaTJjOiBmaXggd3JpdGVzIHRvIGRhdGEgc2VnbWVudCBiZWZvcmUgcmVsb2NhdGlvbgoKICAgIFByZXZlbnQgaTJjX2luaXQoKSBpbiBmc2xfaTJjLmMgZnJvbSB3cml0aW5nIHRvIHRoZSBkYXRhIHNlZ21lbnQgYmVmb3JlCiAgICByZWxvY2F0aW9uLiAgQ29tbWl0IGQ4YzgyZGI0IGFkZGVkIHRoZSBhYmlsaXR5IGZvciBpMmNfaW5pdCgpIHRvIHByb2dyYW0gdGhlCiAgICBJMkMgYnVzIHNwZWVkIGFuZCBzYXZlIHRoZSB2YWx1ZSBpbiBpMmNfYnVzX3NwZWVkW10sIHdoaWNoIGlzIGEgZ2xvYmFsCiAgICB2YXJpYWJsZS4gIEl0IGlzIGFuIGVycm9yIHRvIHdyaXRlIHRvIHRoZSBkYXRhIHNlZ21lbnQgYmVmb3JlIHJlbG9jYXRpb24sCiAgICB3aGljaCBpcyB3aGF0IGkyY19pbml0KCkgZG9lcyB3aGVuIGl0IHN0b3JlcyB0aGUgYnVzIHNwZWVkIGluIGkyY19idXNfc3BlZWRbXS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRiZDMyMzg3OTIwZTVhZDZmOWRkNThhN2I1MDEyYmJhYmUyYTZhMjEKQXV0aG9yOiBXb2xmZ2FuZyBPY2tlciA8d2VvQHJlY2Nvd2FyZS5kZT4KRGF0ZToJTW9uIEp1bCAyOCAxNjo1Njo1MSAyMDA4ICswMjAwCgogICAgbWlwczogRml4IGJhdWRyYXRlIGRpdmlzb3IgY29tcHV0YXRpb24gb24gYWxjaGVteSBjcHVzCgogICAgVXNlIENGR19NSVBTX1RJTUVSX0ZSRVEgd2hlbiBjb21wdXRpbmcgdGhlIGJhdWRyYXRlIGRpdmlzb3IKICAgIG9uIGFsY2hlbXkgY3B1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBPY2tlciA8d2VvQHJlY2Nvd2FyZS5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgYzhjODQ1Y2ZkYzZkMDIxNzEzNWMxZDU5MjdlZWJkMmIxMzNhMzMxNApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVNhdCBKdWwgNSAwMDowODo0OCAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgQVZSMzIgRXRoZXJuZXQgY29udHJvbGxlcnMgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIFJlbmFtZWQgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIGZvciBhdG5ndzEwMCBhbmQgYXRzdGsxMDAwLgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbnMgZm9yIHRoZXNlIGJvYXJkcyBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYTIyOWQyOTFmMzMzMDhhYjc3NjFkMzlmMjVmYTFhNTNjMGZjMDBhMgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEp1bCAyMyAxMDo1NTo0NiAyMDA4ICswMjAwCgogICAgc3BpIGZsYXNoOiBGaXggcHJpbnRmKCkgZm9ybWF0IHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDI1MmE1ZTA3MzhiY2FmYWYyNWY3ZmJiNDBmMTlhNTlhYmMyY2IxM2UKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTA6NTU6MzEgMjAwOCArMDIwMAoKICAgIGF0bWVsX21jaTogRml4IHByaW50ZigpIGZvcm1hdCB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3ZjRiMDA5ZjQyMzJkNTcwODRjZTBlYzVhZWIzYjU3YmNjYjA4ZTRjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgSnVsIDIzIDEwOjU1OjE1IDIwMDggKzAyMDAKCiAgICBhdnIzMjogRml4IHByaW50ZigpIGZvcm1hdCB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBhNzljM2U4ZDljMzFkYjI1ZDVjYTNlYzhlMDhhOTdmMzIzNDEwZGQ0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgSnVsIDIzIDEwOjUyOjE5IDIwMDggKzAyMDAKCiAgICBhdnIzMjogYXNtL2lvLmggbmVlZHMgYXNtL3R5cGVzLmgKCiAgICBtYXBfcGh5c21lbSgpIHRha2VzIGEgcGh5c19hZGRyX3QgYXMgcGFyYW1ldGVyLiBUaGlzIHR5cGUgaXMgZGVmaW5lZCBpbgogICAgYXNtL3R5cGVzLmgsIHNvIHdlIG5lZWQgdG8gaW5jbHVkZSB0aGF0IGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDE5NTNkMTI4ZmQwN2YwN2QxYzM4MTBhMjhjMDg2M2VhNjRkYWUxYjYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVRodSBKdWwgMTcgMTI6MjU6NDYgMjAwOCArMDIwMAoKICAgIG1pY3JvYmxhemU6IEZpeCBwcmludGYoKSBmb3JtYXQgaXNzdWVzCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGRlMmEwN2U1MzRmMThiMWNhNWY5ODY5YTRlZjA2MDRjYTgyOWNmZjAKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglUaHUgSnVsIDE3IDA3OjI3OjUxIDIwMDggKzA1MzAKCiAgICBSZW1vdmUgdW51c2VkIGNvZGUgZnJvbSBsaWJfYXJtL2Jvb3RtLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgZmZiYjVjYjk0MmU5ODU2ZmEyNGU5NDY5NzdlMGE2MGM2NGRmMDRhYgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDE2IDE4OjU2OjQ1IDIwMDggKzAyMDAKCiAgICB0cW04NXh4OiBEZW15c3RpZnkgJ0RLOiAhISEnIGNvbW1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBiMmY0NGJhNTcwZjNhMDExMTNiYmI3NDVkYWY0NmYzODU4ZDIyZjUzCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTYgMTg6NTY6NDQgMjAwOCArMDIwMAoKICAgIDgzeHgvODV4eC84Nnh4OiBBZGQgTFRFRFIgbG9jYWwgYnVzIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZjEzZjY0Y2Y0MmQ1YWJlYzNlMGY5MjAyMzNmNmE3YTYxZTdhZTQ5NApBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglXZWQgSnVsIDE2IDE2OjIyOjMyIDIwMDggKzAyMDAKCiAgICBzZXJpYWxfeHVhcnRsaXRlLmM6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4NjQ0NmQzYTVkOWQzY2E4MWU4NWQxY2NkM2FjY2FhYWU2ZjhlM2M5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDE4IDExOjAzOjM1IDIwMDggKzAyMDAKCiAgICBQT1NUOiBBZGQgZGlzYWJsZSBpbnRlcnJ1cHRzIGluIHNvbWUgb2YgdGhlIG1pc3NpbmcgQ1BVIFBPU1QgdGVzdHMKCiAgICBTb21lIENQVSBQT1NUIHRlc3RzIGRpZCBub3QgZGlzYWJsZSB0aGUgaW50ZXJydXB0cyB3aGlsZSBydW5uaW5nLiBUaGlzCiAgICBzZWVtcyB0byBiZSBuZWNlc3NhcnkgdG8gcHJvdGVjdCB0aGlzIHNlbGYgbW9kaWZ5aW5nIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk3YTNiZjI2OGQwOTZlMGU5N2U1NDA0ODQ0OGMzNTExNGVkY2Y1NTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTggMTA6NDM6MjQgMjAwOCArMDIwMAoKICAgIGlkZTogVXNlIENGR182NEJJVF9MQkEgaW5zdGVhZCBvZiBDRkdfNjRCSVRfU1RSVE9VTAoKICAgIFRoaXMgaXMgbmVlZGVkIGZvciBib2FyZHMgdGhhdCBkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwgYnV0IGRvbid0IGRlZmluZQogICAgQ0ZHXzY0QklUX0xCQS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDA0M2FjNTUwMjQ5NjMyOTVmYzc5YjM5YWY4NWI2ZGMzYjI2MWUxNwpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CUZyaSBKdWwgMTggMTE6MjI6MjMgMjAwOCArMDIwMAoKICAgIFBPU1QgUFBDNHh4L3NwciBJVlBSIG9ubHkgaWYgUFBDNDQwCgogICAgVGhlIFNQUiBJVlBSIHJlZ2lzdGVyIGlzIG9ubHkgcHJlc2VudCAoYXMgZmFyIGFzIEkga25vdykgZm9yCiAgICBwcm9jZXNzb3JzIHdpdGggYSBQUEM0NDAgY29yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMDkyZmJkNjQ3NDhkZmEyZTk3OWIxMDI2MTFlY2U5YmM1ZWMxODU1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDE4IDEwOjQyOjI5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEVuYWJsZSA2NGJpdCBwcmludGYgZm9ybWF0IG9uIDQ0MC80NjAgcGxhdGZvcm1zCgogICAgVGhpcyBwYXRjaCBkZWZpbmVzIENGR182NEJJVF9WU1BSSU5URiBhbmQgQ0ZHXzY0QklUX1NUUlRPVUwgZm9yIGFsbAogICAgNDQwLzQ2MCBwbGF0Zm9ybXMuIFRoaXMgbWF5IGJlIG5lZWRlZCBzaW5jZSB0aG9zZSBwbGF0Zm9ybXMgc3VwcG9ydAogICAgMzZiaXQgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjZmZTE4M2IxZGQ5Yzc1MzQ2MDUxNDdhOGVjZmVkMWMwMjM0NWVlNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxOCAxNTo1NzoyMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggaW5jb3JyZWN0IE1PRFR4IHNldHVwIGZvciBzb21lIERJTU0gY29uZmlndXJhdGlvbnMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB3aXRoIGluY29ycmVjdCBNT0RUeCAoT24gRGllIFRlcm1pbmF0aW9uKQogICAgc2V0dXAgZm9yIGEgY29uZmlndXJhdGlvbiB3aXRoIG11bHRpcGxlIERJTU0ncyBhbmQgbXVsdGlwbGUgcmFua3MuCiAgICBXaXRob3V0IHRoaXMgY2hhbmdlIEthdG1haSB3YXMgdW5hYmxlIHRvIGJvb3QgTGludXggd2l0aCBERFIyIGZyZXF1ZW5jeQogICAgPj0gNTMzTUh6IGFuZCBtZW0+PTNHQi4gV2l0aCB0aGlzIHBhdGNoIEthdG1haSBzdWNjZXNzZnVsbHkgYm9vdHMgTGludXgKICAgIHdpdGggRERSMiBmcmVxdWVuY3kgPSA2NDBNSHogYW5kIG1lbT00R0IuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYwMjA0ZDA2ZWQ5ZjhjMmE2N2NjNzllYjY3ZmQyYjFkMjJiY2JjOGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTggMTI6MjQ6NDEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAgb2YgWGlsaW54IFZpcnRleDUgbWw1MDcgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwODY1MTFmYzk2YThhOWJiNTZlNWUxOWEzZDg0YzQwZjRkYmE4MGNjCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVRodSBKdWwgMTcgMTI6NDc6MDkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTUw1MDcgQm9hcmQgU3VwcG9ydAoKICAgIFRoZSBYaWxpbnggTUw1MDcgQm9hcmQgaXMgYSBWaXJ0ZXggNSBwcm90b3R5cGluZyBib2FyZCB0aGF0IGluY2x1ZGVzLAoJYW1vbmcgb3RoZXJzOgoJLVZpcnRleCA1IEZYIEZQR0EgKFdpdGggYSBwcGM0NDB4NSBpbiBpdCkKCS0yNTZNQiBvZiBTRFJBTTIKCS0zMk1CIG9mIEZsYXNoCgktSTJDIEVlcHJvbQoJLVN5c3RlbSBBQ0UgY2hpcAoJLVNlcmlhbCBBVEEgY29ubmVjdG9ycwoJLVJTMjMyIExldmVsIENvbnZlcnNvcnMKCS1FdGhlcm5ldCBUcmFuc2NlaXZlcgoKICAgIFRoaXMgcGF0Y2ggZ2l2ZXMgc3VwcG9ydCB0byBhIHN0YW5kYXJkIGRlc2lnbiBwcm9kdWNlZCBieSBFREsgZm9yIHRoaXMKICAgIGJvYXJkOiBwcGM0NDAsIHVhcnRsaXRlLCB4aWxpbnhfaW50IGFuZCBmbGFzaAoKICAgIC0gSW5jbHVkZXMgQ2hhbmdlcyBwcm9wb3NzZWQgYnkgU3RlZmFuIFJvZXNlIGFuZCBNaWNoYWwgU2ltZWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDg2NWZkMDk4MDlhM2ExODY2OWYzNWY5NzA3ODE4MjBhZjQwZTRkZQpBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglUaHUgSnVsIDE3IDExOjQ0OjEyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENQVSBQUEM0NDB4NSBvbiBWaXJ0ZXg1IEZYCgogICAgLVRoaXMgcGF0Y2hzIGdpdmVzIHN1cHBvcnQgZm9yIHRoZSBlbWJiZWRkZWQgcHBjNDQwCiAgICAgb24gdGhlIFZpcnRleDUgRlBHQXMKICAgIC1pbnRlcnJ1cHRzLmMgZGl2aWRlZCBpbiB1aWMuYyBhbmQgaW50ZXJydXB0cy5jCiAgICAteGlsaW54X2lycS5jIGZvciB4aWxpbnggaW50ZXJydXB0IGNvbnRyb2xsZXIKICAgIC1JbmNsdWRlIG1vZGlmaWNhdGlvbnMgcHJvcG9zc2VkIGJ5ICBTdGVmYW4gUm9lc2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQwY2NiMjYwZjIxNTE2YmUzNjA3NDVkNWM1ZTNiZDA2NTc2OThkZgpBdXRob3I6IFNlYmFzdGlhbiBTaWV3aW9yIDxiaWdlYXN5QGxpbnV0cm9uaXguZGU+CkRhdGU6CVdlZCBKdWwgMTYgMjA6MDQ6NDkgMjAwOCArMDIwMAoKICAgIGNmaV9mbGFzaDogZml4IGZsYXNoIG9uIEJFIG1hY2hpbmVzIHdpdGggQ0ZHX1dSSVRFX1NXQVBQRURfREFUQQoKICAgIFRoaXMgZ290IGJyb2tlbiBieSBjb21taXRzIDkzYzU2ZjIxMmMKICAgICBbY2ZpX2ZsYXNoOiBzdXBwb3J0IG9mIGxvbmcgY21kIGluIFUtYm9vdC5dCgogICAgVGhhdCBjb21tYW5kIG5lZWRzIHRvIGJlIGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0IG9uIEJFIG1hY2hpbmVzCiAgICB3aXRoIENGR19XUklURV9TV0FQUEVEX0RBVEEuIFdpdGhvdXQgdGhpcyBwYXRjaCwgdGhlIGNvbW1hbmQgMHhmMAogICAgZ2V0cyBzYXZlZCBvbiBzdGFjayBhcyAweDAwIDAwIDAwIGYwIGFuZCAweDAwIGdldHMgd3JpdHRlbiBpbnRvCiAgICB0aGUgY21kYnVmIGluIGNhc2UgcG9ydHdpZHRoID0gY2hpcHdpZHRoID0gOGJpdC4KCiAgICBDYzogQWxleGV5IEtvcm9sZXYgPGFrb3JvbGV2QGluZnJhZGVhZC5vcmc+CiAgICBDYzogVmFzaWxpeSBMZW9uZW5rbyA8dmFzaWxpeS5sZW9uZW5rb0BtYWlsLnJ1PgogICAgU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5kZT4KCmNvbW1pdCAxMTE4OGQ1NWJjMTZkZDkwNzQ1MWMwMDI4MmUwMGEwMzhmNzNkZDYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDE3IDEwOjQwOjUxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBhbHBoYWJldGljYWwgb3JkZXIgaW4gNHh4IE1ha2VmaWxlIHBhcnQgKHJlZHdvb2QpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyMWY2ZGY2ZTk2YWY1YjM4NzgxMGNmOTZkMjQ4NDhkYTFmYWE1NWMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEp1bCAxMCAxNzoyMDo1MSAyMDA4ICswNDAwCgogICAgODN4eDogbXBjODMxNWVyZGI6IGZpeCBzaWxseSB0aGlua28gaW4gZmR0X3RzZWMxX2ZpeHVwCgogICAgVGhlIHRoaW5rbyB3YXMgcXVpdGUgc2lsbHkgaW5kZWVkLCBJIG1lc3NlZCB3aXRoICFwdHIuIE5vcm1hbGx5IHRoaXMKICAgIHdvdWxkIHRyaWdnZXIgc29tZSBmYXVsdCwgYnV0IGluIFUtQm9vdCBOVUxMIHBvaW50ZXIgaXMgZXF1YWwgdG8gcGh5cwogICAgMCwgc28gdGhlIGNvZGUgd2FzIHdvcmtpbmcgc3RpbGwsIGp1c3QgZGlkbid0IGFjdHVhbGx5IHRlc3QgbXBjODMxNWVyZGIKICAgIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlLiBIZWguCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1ZjVmMGQ0OWEzYWU4OWJmNDM5NmYyNTU3Y2U5OGRlYmZlZjIxZGEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVHVlIEp1bCA4IDIxOjAwOjA0IDIwMDggKzA0MDAKCiAgICA4M3h4OiBtcGM4MzE1ZXJkYjogYWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIFVMUEkvVVRNSSBVU0IgUEhZcwoKICAgIEZyZWVzY2FsZSBzaGlwcyBNUEM4MzE1RS1SREIgYm9hcmRzIGVpdGhlciB3aXRoIFRTRUMxIGFuZCBVU0IgVVRNSQogICAgc3VwcG9ydCwgb3Igd2l0aG91dCBUU0VDMSBidXQgd2l0aCBVU0IgVUxQSSBQSFkgc3VwcG9ydCBpbiBhZGRpdGlvbi4KICAgIFdpdGggdGhpcyBwYXRjaCB1c2VyIGNhbiBzcGVjaWZ5IGRlc2lyZWQgVVNCIFBIWS4KCiAgICBBbHNvLCBpdCBzZWVtcyB0aGF0IHdlIGNhbid0IGRpc3Rpbmd1aXNoIHRoZSB0d28gYm9hcmRzIGluIHNvZnR3YXJlLCBzbwogICAgdXNlciBoYXZlIHRvIHNldCBgbXBjODMxNWVyZGInIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGVpdGhlciAndHNlYzEnCiAgICAoVFNFQzEgZW5hYmxlZCkgb3IgYHVscGknIChib2FyZCB3aXRoIFVMUEkgUEhZLCBUU0VDMSBkaXNhYmxlZCksIHNvIHRoYXQKICAgIExpbnV4IHdpbGwgbm90IHByb2JlIGZvciBUU0VDMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDE1YjI3YjllMTY1ZmNmMjIwZTQyZjJjNGFmYmFlYWEyNzU4ZmNmNgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUdWUgSnVsIDggMjA6NTk6NDMgMjAwOCArMDQwMAoKICAgIGZkdF9zdXBwb3J0OiBmZHRfZml4dXBfZHJfdXNiOiBhZGQgc3VwcG9ydCBmb3IgcGh5X3R5cGUgZml4dXBzCgogICAgQ3VycmVudGx5IFUtQm9vdCBjYW4gb25seSBmaXh1cCB0aGUgdXNiIGRyX21vZGUsIGJ1dCBzb21lIGJvYXJkcyAobmFtZWx5CiAgICBNUEM4MzE1RS1SREIpIGNhbiB1c2UgdHdvIFBIWSB0eXBlczogVUxQSSAoc3RhbmQtYWxvbmUgT1RHIHBvcnQpIG9yIFVUTUkKICAgIChjb25uZWN0ZWQgdG8gdGhlIGZvdXItcG9ydHMgaHViLCB1c2IgaG9zdCBvbmx5KS4KCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgcGFzc2luZyBEdWFsLVJvbGUgVVNCIGNvbnRyb2xsZXIncwogICAgZGV2aWNlIHRyZWUgcHJvcGVydHkgcGh5X3R5cGUgdGhyb3VnaCB0aGUgdXNiX3BoeV90eXBlIGVudmlyb25tZW50CiAgICB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTlmMDUxMjU1MDkyNDkwNzJhMGI4NjVjOGQzNTUyMGQ5N2NkNTAxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAxNSAyMjoyMjo0NCAyMDA4ICswMjAwCgogICAgUHJlcGFyZSB2MS4zLjQtcmMxOiBDb2RlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0csIHNvcnQgTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGJjYWI3NGJhYTZiMWIxYzk2OTAzOGFiNmY2NGExODYyMzkxODA0MDUKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJVHVlIEp1bCAxNSAxMToyMzowMiAyMDA4IC0wNDAwCgogICAgUm91bmQgdGhlIHNlcmlhbCBwb3J0IGNsb2NrIGRpdmlzb3IgdmFsdWUgcmV0dXJuZWQgYnkgY2FsY19kaXZpc29yKCkKCiAgICBSb3VuZCB0aGUgc2VyaWFsIHBvcnQgY2xvY2sgZGl2aXNvciB2YWx1ZSByZXR1cm5lZCBieQogICAgY2FsY19kaXZpc29yKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDAzMjhlZjBlZGZlOTUwZjBiN2I4YjM2OGRhZTQ4MjUzMTUwNmI3NGEKQXV0aG9yOiBSb2JpbiBHZXR6IDxyZ2V0ekBibGFja2Zpbi51Y2xpbnV4Lm9yZz4KRGF0ZToJVHVlIEp1bCAxNSAyMTo0NDo0NiAyMDA4ICswMjAwCgogICAgRml4IERIQ1AgcHJvdG9jb2wgc28gVS1Cb290IGRvZXMgbm90IHJlc3BvbmQgdG9vIGVhcmx5CiAgICBvbiB0aGUgbmV0d29yayB3aXRoIGl0J3Mgb2ZmZXJlZCBJUCBudW1iZXI7IGl0IHNob3VsZCBub3QgcmVwbHkgdW50aWwKICAgIGFmdGVyIGl0IGhhcyByZWNlaXZlZCBhIERIQ1AgQUNLIG1lc3NhZ2UuIEFsc28gZW5zdXJlcyB0aGF0IFUtQm9vdAogICAgZG9lcyBpdCdzIERIQ1BSRVFVRVNUIGFzIGJyb2FkY2FzdCAocGVyIFJGQyAyMTMxKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2JpbiBHZXR6IDxyZ2V0ekBibGFja2Zpbi51Y2xpbnV4Lm9yZz4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3Mjg4Zjk3MmZjYWVlMTRhOTc0MWNiMDhjODY4OGEyMzg3NGI0YTJlCkF1dGhvcjogU2ViYXN0aWFuIFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5kZT4KRGF0ZToJVHVlIEp1bCAxNSAxMzozNToyMyAyMDA4ICswMjAwCgogICAgY2ZpX2ZsYXNoOiBtYWtlIHRoZSBjb21tYW5kIHUzMiBvbmx5CgogICAgVGhpcyBnb3QgY2hhbmdlZCBieSBjb21taXQgOTNjNTZmMjEyYwogICAgW2NmaV9mbGFzaDogc3VwcG9ydCBvZiBsb25nIGNtZCBpbiBVLWJvb3QuXQoKICAgIExvbmcgaXMgdGhlIHdyb25nIHR5cGUgYmVjYXVzZSBpdCB3aWxsIGJlaGF2ZSBkaWZmZXJlbnRseSBvbiA2NGJpdAogICAgbWFjaGluZXMgaW4gYSB3YXkgdGhhdCBpcyBwcm9iYWJseSBub3QgZXhwZWN0ZWQuIHUzMiBzaG91bGQgYmUKICAgIGVub3VnaC4KCiAgICBDYzogQWxleGV5IEtvcm9sZXYgPGFrb3JvbGV2QGluZnJhZGVhZC5vcmc+CiAgICBDYzogVmFzaWxpeSBMZW9uZW5rbyA8dmFzaWxpeS5sZW9uZW5rb0BtYWlsLnJ1PgogICAgU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5kZT4KCmNvbW1pdCAzMWNmZTU3NDkxYjE4M2FjYWU1NzVkNDg2NzI5ZTE1OGYwMTZjMjdiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEp1bCAxNCAyMzo0ODo0MSAyMDA4ICswMjAwCgogICAgdG9vbHMvZ2l0aWdub3JlOiB1cGRhdGUgdG8gYWxsIGdlbmVyYXRlZCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNWUwZGUwZTIxNmI4ZmIyNzYzNGFmYjExYzYwYTJmYTI0YzIzMzQ5ZQpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJV2VkIEp1bCA5IDE4OjMwOjQ0IDIwMDggKzAyMDAKCiAgICBtcGM1eHh4OiBBZGQgTVZCQ19QIGJvYXJkIHN1cHBvcnQKCiAgICBUaGUgTVZCQ19QIGlzIGEgTVBDNTIwMEIgYmFzZWQgY2FtZXJhIHN5c3RlbSB3aXRoIEludGVsIEdpZ2FiaXQgZXRoZXJuZXQKICAgIGNvbnRyb2xsZXIgKHVzaW5nIGUxMDAwKSBhbmQgY3VzdG9tIEFsdGVyYSBDeWNsb25lLUlJIEZQR0Egb24gUENJLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlMmQzMWZiMzQ1MDY1MzExNTQ1MjE0NDM2M2Q1YmRlNGU1ZTNlNjkzCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxOSAxNzo1NjoxMSAyMDA4IC0wNTAwCgogICAgVXBkYXRlIEZyZWVzY2FsZSBzeXNfZWVwcm9tLmMgdG8gaGFuZGxlIENDSUQgZm9ybWF0cwoKICAgIFVwZGF0ZSB0aGUgc3lzX2VlcHJvbS5jIGZpbGUgdG8gaGFuZGxlIGJvdGggTlhJRCBhbmQgQ0NJRCBFRVBST00gZm9ybWF0cy4gIFRoZQogICAgTlhJRCBmb3JtYXQgcmVwbGFjZXMgdGhlIG9sZGVyIENDSUQgZm9ybWF0LCBidXQgaXQncyBpbXBvcnRhbnQgdG8gc3VwcG9ydCBib3RoCiAgICBzaW5jZSBtb3N0IGJvYXJkcyBvdXQgdGhlcmUgc3RpbGwgdXNlIHRoZSBDQ0lEIGZvcm1hdC4gIFRoaXMgY2hhbmdlIGlzIGluCiAgICBwcmVwYXJhdGlvbiBmb3IgdXNpbmcgb25lIGZpbGUgdG8gaGFuZGxlIGJvdGggZm9ybWF0cy4gIFRoaXMgd2lsbCBhbHNvIHVuaWZ5CiAgICBFRVBST00gc3VwcG9ydCBmb3IgYWxsIEZyZWVzY2FsZSA4NXh4IGFuZCA4Nnh4IGJvYXJkcy4KCiAgICBBbHNvIHVwZGF0ZSB0aGUgODZ4eCBib2FyZCBoZWFkZXIgZmlsZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBDRkdfSTJDX0VFUFJPTV9BRERSCiAgICBpbnN0ZWFkIG9mIElEX0VFUFJPTV9BRERSLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDg1ZjQ2YTI1Y2NiMzNlZDliMjk1ZGUzYzJjZmUxY2UyNzBlY2U5YQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNzoyMjo0MyAyMDA4ICswOTAwCgogICAgcGNpOiBzaDogQWRkIHBjaV9za2lwX2RldiBhbmQgcGNpX3ByaW50X2RldiBmdW5jdGlvbgoKICAgIEFkZCBmdW5jdGlvbiBvZiBuZXcgUENJLCBwY2lfc2tpcF9kZXYgYW5kIHBjaV9wcmludF9kZXYuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDExMDcwMTRlODM1ZWM5ZDQ2YzAzMzNmNDIxMWQxMDRmNzc0NDJkYjAKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgMTQgMjA6Mjk6MDcgMjAwOCAtMDUwMAoKICAgIENsZWFuIHVwIElOSVRfUkFNIG9wdGlvbnMKCiAgICBUaGUgTDJfSU5JVF9SQU0gb3B0aW9uIHdhcyB1bnVzZWQsIGFuZCByZWNlbnQgY2hhbmdlcyB0byB0aGUgVExCIGNvZGUKICAgIG1lYW50IHRoYXQgdGhlIElOSVRfUkFNIFRMQnMgd2VyZW4ndCBiZWluZyBjbGVhcmVkIG91dC4gIEluIG9yZGVyIHRvIHJlZHVjZQogICAgdGhlIGFtb3VudCBvZiBtYXBwZWQgc3BhY2UgYXR0YWNoZWQgdG8gbm90aGluZywgd2UgY2hhbmdlIHRoaW5ncyBzbyB0aGUgVExCcwogICAgZ2V0IGNsZWFyZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1MjQ1NjE4MjBhOTMyN2U4OTEwNzg1NGIzYTcxODc4MDBjY2Y3MTkKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgMTQgMjA6MjY6NTcgMjAwOCAtMDUwMAoKICAgIFJlbW92ZSBmYWtlIGZsYXNoIGJhbmsgZnJvbSA4NTQ0IERTCgogICAgVGhlIGZha2UgZmxhc2ggYmFuayB3YXMgZ2VuZXJhdGluZyBlcnJvcnMgZm9yIGFueW9uZSB3aG8gZGlkbid0IGhhdmUgYQogICAgUHJvbUpFVCBob29rZWQgdXAgdG8gdGhlIGJvYXJkLiAgQXMgdGhhdCBjb25zdGl0dXRlcyB0aGUgdmFzdCBtYWpvcml0eSBvZgogICAgdXNlcnMsIHdlIHJlbW92ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjMwZDliZmNiNWY2ZDNhNDNmMjUxOTAxYTZiNDgwOTk0ZGNiNmVhMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKdWwgMTQgMTQ6MDc6MDMgMjAwOCAtMDUwMAoKICAgIE1QQzg1NDREUzogQWRkIEFUSSBWaWRlbyBjYXJkIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgYSBQQ0llIEFUSSBWaWRlbyBjYXJkIG9uIFBDSWUyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2Y5ZjQzNDdjZjMyNWM2M2EzOWZlMzA5MTBmM2ZiMjExYWUyY2MxNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKdWwgMTQgMTQ6MDc6MDIgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZCBzb21lIEwxL0wyIFNQUiByZWdpc3RlciBkZWZpbml0aW9ucwoKICAgIEFkZCBuZXcgTDEvTDIgU1BScyByZWxhdGVkIHRvIGU1MDBtYyBjYWNoZSBjb25maWcgYW5kIGNvbnRyb2wuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlNTg1Mjc4N2YwYzNjNDQyYTI3NjI2MmYxM2Q5MWNhNDUwNjA1YWMwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1bCAxNCAxNDowNzowMSAyMDA4IC0wNTAwCgogICAgTVBDODU0NERTOiBSZXBvcnQgYm9hcmQgaWQsIGJvYXJkIHZlcnNpb24gYW5kIGZwZ2EgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDczZjE1YTA2MGY2N2EyNDYyNTUxYzMzNDIxNWJkMjBmYWM2YjgxZDEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVsIDE0IDE0OjA3OjAwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBDbGVhbnVwIEwyIGNhY2hlIHNpemUgZGV0ZWN0aW9uCgogICAgVGhlIEwyIHNpemUgZGV0ZWN0aW9uIGNvZGUgd2FzIGEgYml0IGNvbmZ1c2luZyBhbmQgd2Uga2VwdCBoYXZpbmcgdG8gYWRkCiAgICBjb2RlIHRvIGl0IHRvIGhhbmRsZSBuZXcgcHJvY2Vzc29ycy4gIENoYW5nZSB0aGUgc2Vuc2Ugb2YgZGV0ZWN0aW9uIHNvIHdlCiAgICBsb29rIGZvciB0aGUgb2xkZXIgcHJvY2Vzc29ycyB0aGF0IGFyZW4ndCBjaGFuZ2luZy4KCiAgICBBbHNvIGFkZGVkIHN1cHBvcnQgZm9yIDFNIGNhY2hlIHNpemUgb24gODU3Mi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGMzY2E3ZTVlMDBhMjQ0NTFmMjBkZjNiZGVkOWE2MWJhNTQxOTIxZGYKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNTozMzowOCAyMDA4IC0wNDAwCgogICAgc2JjODU2MDogZW5hYmxlIENPTkZJR19PRl9MSUJGRFQgYnkgZGVmYXVsdAoKICAgIE1ha2UgdGhlIGRlZmF1bHQgYnVpbGQgZm9yIHRoZSBzYmM4NTYwIGJvYXJkIGJlIHBvd2VycGMKICAgIGNhcGFibGUgd2l0aCBsaWJmZHQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCA2YjQ0YTQ0ZWMyYWFiMTgwZDcwOTVjMWM5MmU2NjljZWUxZDNlM2JkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDE0IDIwOjA0OjQwIDIwMDggLTA1MDAKCiAgICBGaXggaW5kZW50YXRpb24gZm9yIGRlZmF1bHQgYm9vdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCiAgICBUaGlzIHdhcyBwcm9wb3NlZCBieSBQYXVsIEdvcnRtYWtlciBpbiByZXNwb25zZSB0byBXb2xmZ2FuZydzIGNvbW1lbnRzIG9uCiAgICBzaW1pbGFyICNkZWZpbmVzIGluIHNiYzg1NjAuaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzdmZWY0OTkxMDRlMjhlMGE4M2IwMmI4NWNhMGQxZmJlODBkMjk0YQpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDE1OjMzOjA3IDIwMDggLTA0MDAKCiAgICBzYmM4NTYwOiBhZGQgZGVmYXVsdCBmZHQgdmFsdWVzCgogICAgQWRkIGluIHRoZSBkZWZhdWx0IGZkdCBzZXR0aW5ncyBhbmQgdGhlIHR5cGljYWwgRVhUUkFfRU5WCiAgICBzZXR0aW5ncyBhcyBib3Jyb3dlZCBmcm9tIHRoZSBtcGM4NTYwYWRzLiAgRml4IGEgY291cGxlCiAgICBvZiBzdGFsZSByZWZlcmVuY2VzIHRvIHRoZSBtcGM4NTYwYWRzIGRhdGluZyBiYWNrIHRvIHRoZQogICAgb3JpZ2luYWwgY2xvbmUvZm9yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMDRlNzZlZGY5MmY3Zjg5Njk2OTg5ZTg3MDJiOTdlMDIwNDU1YWYzCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MzM6MDYgMjAwOCAtMDQwMAoKICAgIHNiYzg1NjA6IGFkZCBpbiBmdF9ib2FyZF9zZXR1cCgpCgogICAgQWRkIGluIGZvciB0aGUgc2JjODU2MCwgdGhlIGZ0X2JvYXJkX3NldHVwKCkgcm91dGluZSwgYmFzZWQgb24gd2hhdCBpcwogICAgaW4gdXNlIGZvciB0aGUgRnJlZXNjYWxlIE1QQzg1NjBBRFMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgYzE1OGJjYWNhM2IzMWNiZTM4YzQxNDM4MTJlNjE3MGUzOGE1NzM5MwpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDE1OjMzOjA1IDIwMDggLTA0MDAKCiAgICBzYmM4NTYwOiBkZWZpbmUgZXRoMCBhbmQgZXRoMSBpbnN0ZWFkIG9mIGV0aDEgYW5kIGV0aDIKCiAgICBUaGUgZXhpc3RpbmcgY29uZmlnIGRvZXNuJ3QgZGVmaW5lIENPTkZJR19IQVNfRVRIMCwgYW5kIHNvIHRoZQogICAgZmR0IHN1cHBvcnQgZG9lc24ndCB1cGRhdGUgdGhlIHplcm9zIGluIHRoZSBkdGIgbG9jYWwtbWFjIHdpdGgKICAgIHJlYWwgZGF0YSBmcm9tIHRoZSB1LWJvb3QgZW52LiAgU2luY2UgdGhlIGV4aXN0aW5nIGNvbmZpZyBpcwogICAgdGFpbG9yZWQgdG8ganVzdCB0d28gaW50ZXJmYWNlcywgZ2V0IHJpZCBvZiB0aGUgRVRIMiBkZWZpbml0aW9ucwogICAgYXQgdGhlIHNhbWUgdGltZS4KCiAgICBBbHNvIGRvbid0IGluY2x1ZGUgYW55IGVuZCB1c2VyIHNwZWNpZmljIGRhdGEgaW50byB0aGUgZW52aXJvbm1lbnQKICAgIGJ5IGRlZmF1bHQgLS0gdGhpbmdzIGxpa2UgTUFDIGFkZHJlc3MsIG5ldHdvcmsgcGFyYW1ldGVycyBldGMuIG5lZWQKICAgIHRvIGNvbWUgZnJvbSB0aGUgZW5kIHVzZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGVjNDM2ZDJmOTUwNzZkOWU0NmFlNTk0ZGI2ZTliMWQ4NzMyODQwZApBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDE1OjMzOjA0IDIwMDggLTA0MDAKCiAgICBzYmM4NTYwOiBwcm9wZXJseSBzZXQgY3MwX2JuZHMgZm9yIDUxMk1CCgogICAgVGhlIHNiYzg1NjAgYm9hcmQgc2hpcHMgd2l0aCA1MTJNQiBvZiBtZW1vcnkgaW5zdGFsbGVkLAogICAgYnV0IHRoZSBjdXJyZW50IGNzMF9ibmRzIGlzIGhhcmQgY29kZWQgZm9yIDI1Nk1CLiAgU2V0IHRoZQogICAgdmFsdWUgYmFzZWQgb24gQ0ZHX1NEUkFNX1NJWkUuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgNmRlNWJmMjQwMDRjOGQ5YzliMDcwYmI4Zjc0MThkMWM0NWU1ZWIyNwpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDE1OjMzOjAzIDIwMDggLTA0MDAKCiAgICBzYmM4NTYwOiBwcm9wZXIgZGVmaW5pdGlvbnMgZm9yIFRTRUMuCgogICAgVGhlIGRlZmluaXRpb25zIGZvciB0aGUgVFNFQyBoYXZlIGJlY29tZSBvdXQgb2YgZGF0ZS4gIFRoZXJlIGlzIG5vCiAgICBsb25nZXIgYW55IHN1Y2ggb3B0aW9ucyBsaWtlICJDT05GSUdfTVBDODV4eF9UU0VDMSIgb3Igc2ltaWxhci4KICAgIFVwZGF0ZSB0byBtYXRjaCB0aG9zZSBvZiBvdGhlciBib2FyZHMsIGxpa2UgdGhlIE1QQzg1NjBBRFMuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA3MTA3NGFiYmUwYzc2NDI5NTc3YWZmNThhZWZmMGEyNGFkMjEwYjIzCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVdlZCBKdWwgOSAxMzoyMzowNSAyMDA4IC0wNDAwCgogICAgOHh4eC1mZHQ6IHNldCBuczE2NTUwIGNsb2NrIGZyb20gQ0ZHX05TMTY1NTBfQ0xLLCBub3QgYmlfYnVzZnJlcQoKICAgIFNvbWUgYm9hcmRzIHRoYXQgaGF2ZSBleHRlcm5hbCAxNjU1MCBVQVJUcyBkb24ndCBoYXZlIGEgZGlyZWN0CiAgICB0aWUgYmV0d2VlbiBiaV9idXNmcmVxIGFuZCB0aGUgY2xvY2sgdXNlZCBmb3IgdGhlIFVBUlRzLiAgQm9hcmRzCiAgICB0aGF0IGRvIGhhdmUgc3VjaCBhIHRpZSBzaG91bGQgc2V0IENGR19OUzE2NTUwX0NMSyB0byBiZQogICAgZ2V0X2J1c19mcmVxKDApIC0tIHdoaWNoIG1vc3Qgb2YgdGhlbSBkbyBhbHJlYWR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjRlZjc2ZjMyMGZiYWRmMDc0MTA1MjI5ODI2NTE0ZGIxNDBmOTM5ZgpBdXRob3I6IEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CkRhdGU6CVdlZCBKdWwgMiAwNzowMzo1MyAyMDA4IC0wNzAwCgogICAgQ2hhbmdlIHRoZSB0ZW1wIG1hcCB0byBST00gdG8gYWxpZ24gYWRkcmVzc2VzIHRvIHBhZ2Ugc2l6ZS4KCiAgICBXaXRoIGEgcGFnZSBzaXplIG9mIEJPT0tFX1BBR0VTWl8xNk0sIGJvdGggdGhlIHJlYWwgYW5kIGVmZmVjdGl2ZQogICAgYWRkcmVzc2VzIG11c3QgYmUgbXVsdGlwbGVzIG9mIDE2TUIuICBUaGUgaGFyZHdhcmUgc2lsZW50bHkgdHJ1bmNhdGVzCiAgICB0aGVtIHNvIHRoZSBjb2RlIGhhcHBlbnMgdG8gd29yay4gIFRoaXMgcGF0Y2ggY2xhcmlmaWVzIHRoZSBzaXR1YXRpb24KICAgIGJ5IGVzdGFibGlzaGluZyBhZGRyZXNzZXMgdGhhdCB0aGUgaGFyZHdhcmUgZG9lc24ndCBuZWVkIHRvIHRydW5jYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDZiNDE4NmMxMDIwNGI2NjgzZWRiMDQ3YWM1ZjUwNmZiMGNlMDkzNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTc6NDU6MjIgMjAwOCAtMDUwMAoKICAgIG1wYzg1eHg6IHVzZSBJU19FX1BST0NFU1NPUiBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmI3MGZmYjlkMWIyZTc5MTE2MWYzY2Y5MjkzN2FhNDViNGEwN2I3OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTYgMTU6NTU6NTMgMjAwOCAtMDUwMAoKICAgIGZkdDogYWRkIGNyeXB0byBub2RlIGhhbmRsaW5nIGZvciBNUEM4ezMsIDV9eHhFIHByb2Nlc3NvcnMKCiAgICBEZWxldGUgdGhlIGNyeXB0byBub2RlIGlmIG5vdCBvbiBhbiBFLXByb2Nlc3Nvci4gIElmIG9uIDgzNjAgb3IgODM0eCBmYW1pbHksCiAgICBjaGVjayByZXYgYW5kIHVwLXJldiBjcnlwdG8gbm9kZSAodG8gU0VDIHJldi4gMi40IHByb3BlcnR5IHZhbHVlcykKICAgIGlmIG9uIGFuICdFQScgcHJvY2Vzc29yLCBlLmcuIE1QQzgzNDlFQS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1ZTU4MDhlOGVhOWY3N2RhNTIxOWYyMzM5NDExMmYwYjQyNGZhNWUKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNToxMDoxMSAyMDA4IC0wNDAwCgogICAgQVJNIERhVmluY2k6IFJlbW92ZSBleHRlcm4gcGh5X3QgZGVjbGFyYXRpb24gYnkgbW92aW5nIGNvZGUgdG8gcHJvcGVyIHBsYWNlCgogICAgQVJNIERhVmluY2k6IFJlbW92ZSBleHRlcm4gcGh5X3QgZGVjbGFyYXRpb24gYnkgbW92aW5nCiAgICBjb2RlIHRvIHByb3BlciBwbGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCAzYTllN2JhMmFjMTQwMThjNWRkMWU3OGE3ZGQ3MzU1NzE1NjljOTcxCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MTA6MTAgMjAwOCAtMDQwMAoKICAgIEFSTSBEYVZpbmNpOiBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb25zIG9mIE1BQ0hfVFlQRSBhbmQgcHJvdG90eXBlIG9mIGkyY19pbml0KCkKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBvZiBNQUNIX1RZUEUKICAgIGFuZCBwcm90b3R5cGUgb2YgaTJjX2luaXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCAzNDg3NTNkNDE2Y2QyYzllN2VjNjUyMGE1NDRjOGYzM2NmMDJhNTYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1bCAxNCAxNDowMzowMiAyMDA4IC0wNTAwCgogICAgRml4IHNvbWUgbW9yZSBwcmludGYoKSBmb3JtYXQgcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NWIxNmQyMmM2NDY3NGNjZDhjNDYzNzQ1NmE5ODc0NjM2MDkxNDFjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNCAyMjozODo0MiAyMDA4ICswMjAwCgogICAgRml4IGNvZGluZyBzdHlsZTsgbWFrZSBjb2RlIGJldHRlciBwYXJzYWJsZSBieSBleHRlcm5hbCB0b29scwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjg4MGNiZjIwN2IxYzEwOWQzYTY2MTQxN2E4ZmVkZGNiZDcyOWE5ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMjE6MTk6MDggMjAwOCArMDIwMAoKICAgIGNwdS9pMzg2L3NlcmlhbC5jOiBGaXggc3ludGF4IGVycm9ycwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTJkNDVlNmY0ZDk5MTllMWFmZWFjNWUwOTU1N2IyMjUyODMyZmNjZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMjA6NDE6MzUgMjAwOCArMDIwMAoKICAgIGVscHBjIGJvYXJkOiBDb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgyYjI0YThhNTA1ZmM4MTQ2NjQ4NGIzYzU1YjU3NGVlMGI0MjA1YmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE0IDIwOjQwOjIyIDIwMDggKzAyMDAKCiAgICBlbHBwYyBib2FyZDogZml4IHN5bnRheCBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDBmZTM0MDU4NWE2YTQ4YmQzOTJkMzE1YjBkZDg0ZDA2OGIxYzM3OTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE0IDIwOjM4OjI2IDIwMDggKzAyMDAKCiAgICBFQitNQ0YtRVYxMjMgYm9hcmQ6IGZpeCBjb2Rpbmcgc3R5bGUgKGFsaW5nbWVudCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY4NDE3ODVhMGJiMGYzODE3NTQ1NmE5MjNlZGQ2MzRmYjdkZDY5NDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE0IDIwOjM2OjQ0IDIwMDggKzAyMDAKCiAgICBFQitNQ0YtRVYxMjMgYm9hcmQ6IGZpeCBzeW50eCBlcnJvcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWI1Y2RhOWY4OGMzZWFmOWNmNTk5YWRjM2EzMzc1OTA2YzRlZDkwNApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA3IDE4OjAyOjA4IDIwMDggLTA1MDAKCiAgICBSZW1vdmUgTEJDX0NBQ0hFX0JBU0UgZnJvbSA4NTQ0IERTCgogICAgVGhlIDg1NDQgRFMgZG9lc24ndCBoYXZlIGFueSBjYWNoZWFibGUgTG9jYWwgQnVzIG1lbW9yaWVzIHNldCB1cC4gIEJ5IG1hcHBpbmcKICAgIHNwYWNlIGZvciBzb21lIGFueXdheSwgd2Ugd2VyZSBhbGxvd2luZyBzcGVjdWxhdGl2ZSBsb2FkcyBpbnRvIHVubWFwcGVkIHNwYWNlLAogICAgd2hpY2ggd291bGQgY2F1c2UgYW4gZXhjZXB0aW9uIChhbm5veWluZywgZXZlbiBpZiB1bHRpbWF0ZWx5IGhhcm1sZXNzKS4KICAgIFJlbW92aW5nIExCQ19DQUNIRV9CQVNFLCBhbmQgdXNpbmcgTEJDX05PTkNBQ0hFX0JBU0UgZm9yIHRoZSBMQkMgTEFXIHNvbHZlcyB0aGUKICAgIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQwZmY1MWJhNWQwMzA5ZGJlOWUyNWVhNTRmOGEwMjg1YTZkNWRiOTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE0IDE1OjE5OjA3IDIwMDggKzAyMDAKCiAgICBDb2RlIGNsZWFudXA6IGZpeCBvbGQgc3R5bGUgYXNzaWdubWVudCBhbWJpZ3VpdGllcyBsaWtlICI9LSIgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDc4NTQyMjNjNWM4NWI1ODQ5ZmJmNDIyY2M4YWMwZWZlZjQ2MWMzNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMTU6MTA6NTMgMjAwOCArMDIwMAoKICAgIEFtaWdhT25lRzNTRTogcmVtb3ZlIGRlYWQgYW5kIGluY29tcGxldGUgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGI2NGYxOTBiN2EzNDIyNGRmMDliNTU5Y2ExMTFlYjFiNzMzZjAwYWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE0IDE1OjA2OjM1IDIwMDggKzAyMDAKCiAgICBGaXggcHJpbnRmKCkgZm9ybWF0IGlzc3VlcyB3aXRoIHNpemVvZl90IHR5cGVzIGJ5IHVzaW5nICV6dQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGYzNTRiNzNlMTZhODZmOWU5MDg1NDcxYTgzMDYwNWY3NGY4NGVhNWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSnVsIDE0IDE0OjExOjQ1IDIwMDggKzAyMDAKCiAgICB2c3ByaW50ZjogYWRkIHogYW5kIHQgb3B0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjVkYmU5OGFiYjY4NmQ4MjEwZTE3MzFmYmE4NWNlZDdkM2NlODc0YwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgMTMgMjM6MDc6MzUgMjAwOCArMDIwMAoKICAgIEZpeCBzb21lIG1vcmUgcHJpbnRmKCkgZm9ybWF0IGlzc3Vlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ1OTk2ZGQ1NTVlZGY1MjcyMWI3NjkxYTRjNTlkZTAxNjI1MWVkMzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSnVsIDEzIDE5OjUxOjAwIDIwMDggKzAyMDAKCiAgICBGaXggc29tZSBtb3JlIHByaW50ZigpIGZvcm1hdCBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDBmOWQ1ZjZkNmU4MTQ5MDc3OTQ5OTVjNmEyMmFmNzUyMDQwYzM1ZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSnVsIDEzIDE5OjQ4OjI2IDIwMDggKzAyMDAKCiAgICBBRFM1MTIxOiBGaXggKGRlbGV0ZSkgaW5jb3JyZWN0IGFkczUxMjFfZGl1X2luaXQoKSBwcm90b3R5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDMyMjcxNmExZDFlYjMzYTcxMDY3YmEwZWIxYzUzNDZmYjJkZDZiMzQKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVNhdCBKdWwgMTIgMTc6MzE6MzYgMjAwOCArMDIwMAoKICAgIEZpeCBidWcgaW4gTGltZSB2aWRlbyBkcml2ZXIKCiAgICBXZSBuZWVkIHRvIHdhaXQgd2hpbGUgZHJhd2luZyBlbmdpbmUgY2xlYXJzIGZyYW1lCiAgICBidWZmZXIgYmVmb3JlIGFueSBmdXJ0aGVyIHNvZnR3YXJlIGFjY2Vzc2VzIHRvIGZyYW1lCiAgICBidWZmZXIgd2lsbCBiZSBpbml0aWF0ZWQuIE90aGVyd2lzZSBzb2Z0d2FyZSBkcmF3bgogICAgcGFydHMgY291bGQgYmUgcGFydGlhbGx5IGRlc3Ryb3llZCBieSB0aGUgZHJhd2luZwogICAgZW5naW5lIG9yIGV2ZW4gR0RDIGNoaXAgZnJlZXplIGNvdWxkIG9jY3VyIChhcwogICAgb2JzZXJ2ZWQgb24gc29jcmF0ZXMgYm9hcmQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAwYTU2NzZiZWZiMGM1OTAyMTJhNTNmNzYyN2ZhNWQwZDhhODRiZjM0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEp1bCAxMiAxNDozNjozNCAyMDA4ICswMjAwCgogICAgRml4IHNvbWUgbW9yZSBwcmludGYoKSBmb3JtYXQgaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMThjOGEyOGFhZDQ5ODAzNzgwYmQ4ZDUyNDMyZGVkNTI4ZTM3ZTcwMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMSAxNToxMTo1NyAyMDA4ICswMjAwCgogICAgaHdtb246IHJlbmFtZSBDT05GSUdfRFMxNzIyIHRvIENPTkZJR19EVFRfRFMxNzIyCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZWNiYjQ1YmIwMjdlOTBjMTlkNjNiNDhlN2IwYzA1YWNjMWE4N2MwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDExIDExOjUwOjUzIDIwMDggKzAyMDAKCiAgICBod21vbjogQ2xlYW5pbmcgaHdtb24gZGV2aWNlcwoKICAgIENsZWFuIE1ha2VmaWxlCiAgICBNb3ZlIGRldmljZSBzcGVjaWZpYyB2YWx1ZXMgdG8gZHJpdmVyIGZvciBiZXR0ZXIgcmVhZGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzc4ZmNlNjk5YzdmZjQ2N2VjZDg0MWRhNmE3OWYwNjUxODBiZjU3OApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMSAxMDo0MzoxMyAyMDA4ICswMjAwCgogICAgRklTOiByZXBhcmUgaW5jb3JyZWN0IHJldHVybiB2YWx1ZSB3aXRoIHJhbWRpc2sgaGFuZGxpbmcKCiAgICBNaWNyb2JsYXplIGFuZCBQb3dlclBDIHVzZSBib290X2dldF9yYW1kaXNrIGZvciBsb2FkaW5nCiAgICByYW1kaXNrIHRvIG1lbW9yeSB3aXRoIGNoZWNraW5nIHJldHVybiB2YWx1ZS4KICAgIFJldHVybiAwIG1lYW5zIHN1Y2Nlc3MuIFJldHVybiAxIG1lYW5zIGZhaWxlZC4KICAgIEhlcmUgaXMgY29ycmVzcG9uZCBwYXJ0IG9mIGNvZGUgZnJvbSBib290bS5jIHdoaWNoIGNoZWNrCiAgICByZXR1cm4gY29kZS4KCiAgICByZXQgPSBib290X2dldF9yYW1kaXNrIChhcmdjLCBhcmd2LCBpbWFnZXMsIElIX0FSQ0hfUFBDLAoJCSZyZF9kYXRhX3N0YXJ0LCAmcmRfZGF0YV9lbmQpOwogICAgaWYgKHJldCkKCWdvdG8gZXJyb3I7CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDg0YTJjNjRhMjZkYzVlMjc1ZTFjZjRlNzZhNmUxOTRhMThmYjU0NzcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTEgMTA6MTA6MzIgMjAwOCArMDIwMAoKICAgIG1pY3JvYmxhemU6IFJlbW92ZSB1c2VsZXNzIGFuY2llbnQgaGVhZGVycwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA1M2VhOTgxYzMxMjRiMTNjMTM3YzJkMTBlOTc1YjdjNjY3MjI2NmUwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDExIDEwOjEwOjMxIDIwMDggKzAyMDAKCiAgICBtaWNyb2JsYXplOiBDbGVhbiB1YXJ0bGl0ZSBkcml2ZXIKCiAgICBSZWRlc2lnbiB1YXJ0bGl0ZSBkcml2ZXIgdG8gaW5fYmUzMiBhbmQgb3V0X2JlMzIgbWFjcm9zCiAgICBGaXggbWlzc2luZyBoZWFkZXIgaW4gaW8uaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZGJmM2RmYjM4NmEyZDVkMjM4MTgxNGUzOTk4NWFiMmUyMTg5NDU1MApBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAwMjozOToxNCAyMDA4ICswMjAwCgogICAgRW5hYmxlIHBhc3Npbmcgb2YgQVRBR3MgcmVxdWlyZWQgYnkgbGF0ZXN0IExpbnV4IGtlcm5lbC4KCmNvbW1pdCBlZjEzMGQzMDkzYmRmODhmMDFjZjNlMDAwZmU1ZGYyNDllYmYyYjFhCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTA6MjQ6MTUgMjAwOCAtMDQwMAoKICAgIEZpeCBpbnRlZ2VyIG92ZXJmbG93IHdhcm5pbmcgaW4gY2FsY19kaXZpc29yKCkKCiAgICB3aGljaCBoYXBwZW5lZCB3aGVuIHJvdW5kaW5nIHRoZSBzZXJpYWwgcG9ydCBjbG9jayBkaXZpc29yCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgNmI3NjAxODlkNzdmMDAxNjg0ZTMxNjBiMzU1YzE4NWNhMzgwNDk2MQpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAwMTowOTo1OSAyMDA4ICswMjAwCgogICAgRml4IGJ1aWxkIHRpbWUgd2FybmluZ3MgaW4gZnVuY3Rpb24gbW1jX2RlY29kZV9jc2QoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCBjMTU5NDdkNmNlMGQ1OTkyNWM5N2ZkZmFjNjkyNDc2YWY2ZTI2MmQwCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVRodSBKdWwgMTAgMTA6NDY6MzMgMjAwOCAtMDQwMAoKICAgIEFSTTogRml4IGZvciBicm9rZW4gY29tcGlsYXRpb24gd2hlbiBkZWZpbmluZyBDT05GSUdfQ01EX0VMRgoKICAgIGNhdXNlZCBieSBtaXNzaW5nIGRjYWNoZSBzdGF0dXMvZW5hYmxlL2Rpc2FibGUgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgoKY29tbWl0IDA2OGMxYjc3YzhmNDJhMWEzMTA4NGQyZjRiMWQ1Y2M4MDdjMWE5Y2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTM6NTM6MzEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHJlZHVuZGFudCBmdF9ib2FyZF9zZXR1cCgpIGZ1bmN0aW9ucyBmcm9tIHNvbWUgNHh4IGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIGZ0X2JvYXJkX3NldHVwKCkgZnVuY3Rpb25zIGZyb20gc29tZSA0eHggYm9hcmRzLgogICAgVGhpcyBjYW4gYmUgZG9uZSBzaW5jZSB3ZSBub3cgaGF2ZSBhIGRlZmF1bHQgd2VhayBpbXBsZW1lbnRhdGlvbiBmb3IgdGhpcwogICAgaW4gY3B1L3BwYzR4eC9mZHQuYy4gT25seSBib2FyZCBpbiBuZWVkIGZvciBhIGRpZmZlcmVudC9jdXN0b20KICAgIGltcGxlbWVudGF0aW9uIGxpa2UgY2FueW9ubGFuZHMgbmVlZCB0aGVpciBvd24gdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDM5YTA4OWY4YmM5NjBiYTlhZTZhMDhmZGE1NTgyYjU3ODYyMGNjMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgMTMgMTQ6NTg6MTYgMjAwOCArMDIwMAoKICAgIEFkZCBsYXN0IGtub3duIG1haW50YWluZXIgZm9yIG9ycGhhbmVkIGJvYXJkczsgcmVmb3JtYXQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1Yzc2MWQ1N2JiOTk0MGUwMTZkNTYxZmRhOGIyZWQ4NGM1NWRlNWI2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgSnVsIDEwIDEzOjE2OjA0IDIwMDggKzAyMDAKCiAgICBSZW1vdmUga2hhcnJpc0BuZXh1cy10ZWNoLm5ldCBmcm9tIE1BSU5UQUlORVJTCgogICAgTWFpbCB0byBraGFycmlzQG5leHVzLXRlY2gubmV0IGJvdW5jZXMgYmVjYXVzZSB0aGUgdXNlciBkb2Vzbid0IGV4aXN0CiAgICBhbnltb3JlLiBZb3UgY2FuJ3QgYmUgYSBtYWludGFpbmVyIHdpdGhvdXQgYSB2YWxpZCBlLW1haWwgYWRkcmVzcywgc28KICAgIG1vdmUgYWxsIGJvYXJkcyB0aGF0IHVzZWQgdG8gYmUgbWFpbnRhaW5lZCBieSBLeWxlIEhhcnJpcyB0byB0aGUKICAgICJvcnBoYW5lZCIgbGlzdC4KCiAgICBDdXJyZW50bHksIG9ubHkgUG93ZXJQQyBoYXMgYSBsaXN0IG9mIG9ycGhhbmVkIGJvYXJkcywgc28gdGhpcyBwYXRjaAogICAgY3JlYXRlcyBvbmUgZm9yIEFSTSBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxN2JkMTcwNzE0NjNiMGNkZTM5MWFjNGEwODYzZDYwMDQ3NGI0ZWExCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDAxOjE1OjEwIDIwMDggKzAyMDAKCiAgICBhdDkxOiBGaXggdG8gZW5hYmxlIHVzaW5nIFRlcmlkaWFuIE1JSSBwaHkgKDc4UTIxeDMpIHdpdGggYXQ5MXNhbTkyNjAKCiAgICBPbiB0aGUgYXQ5MXNhbTkyNjBlcCBkZXZlbG9wbWVudCBib2FyZCB0aGVyZSBpcyBhbiBFRVBST00KICAgIGNvbm5lY3RlZCB0byB0aGUgVFdJIGludGVyZmFjZSAoUEEyMywgUEEyNCBQZXJpcGhlcmFsIEEKICAgIG11bHRpcGxleGluZyksIHNvIHdlIGNhbm5vdCB1c2UgdGhlc2UgcGlucyBhcyBFVFgyLCBFVFgzLgogICAgVGhpcyBwYXRjaCBjb25maWd1cmVzIFBBMTAsIFBBMTEgcGlucyBmb3IgRVRYMiwgRVRYMwogICAgaW5zdGVhZCBvZiBQQTIzLCBQQTI0IHBpbnMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogTWFudWVsIFNhaG0gPE1hbnVlbC5TYWhtQGZlaWcuZGU+Cgpjb21taXQgZjg4OTI2NTc1M2RkZjQ0NjVkOWQ1ODA4MjdiYjkyODliZmFjNTVkNgpBdXRob3I6IEtlbm5ldGggSm9oYW5zc29uIDxrZW5uZXRoQHNvdXRocG9sZS5zZT4KRGF0ZToJU2F0IEp1bCAxMiAxMzoxODozNCAyMDA4IC0wNjAwCgogICAgZml4IERJVSBmb3Igc21hbGwgc2NyZWVucwoKICAgIFRoZSBESVVfRElWIHJlZ2lzdGVyIGlzIDggYml0IG5vdCA1IGJpdC4gVGhpcyBwcmV2ZW50ZWQgbGFyZ2UgRElWIHZhbHVlcwogICAgc28gaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBzZXQgYSBzbG93IHBpeGVsIGNsb2NrIGFuZCB0aHVzIHByZXZlbnRlZAogICAgZGlzcGxheSBvbiBzbWFsbCBzY3JlZW5zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtlbm5ldGggSm9oYW5zc29uIDxrZW5uZXRoQHNvdXRocG9sZS5zZT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNjBiODU3Mzg3NWU2NTBlNGM2OWJlNjY3YmZjODhkM2VkNDc0YTdjCkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTQ6NDQ6MDkgMjAwOCAtMDYwMAoKICAgIEFEUzUxMjEgY2xlYW51cCBjb21waWxlIHdhcm5pbmdzCgogICAgYm9hcmQvYWRzNTEyMS9pb3Bpbi5jCglSZXBsYWNlIGJpdCBmaWVsZHMgaW4gc3RydWN0IGlvcGluX3Qgd2l0aCBhIHNpbmdsZQoJZmllbGQgYW5kIGludGlhbGl6ZSBpdCB2aWEgcGxhaW4gb2xkIG1hY3Jvcy4KCVRoaXMgZml4ZXMgdGhlIHR5cGUgcHVuIHdhcm5pbmdzIGFuZCBtYWtlcyB0aGUgY29kZQoJbW9yZSByZWFkYWJsZS4KCiAgICBib2FyZC9hZHM1MTIxL2FkczUxMjEuYwoJQWRkIGluY2x1ZGUgaW9waW4uaCB0byBhZHM1MTIxLmMgZm9yIHRoZSBpb3Bpbl9pbml0aWFsaXplCglwcm90b3R5cGUuCgoJQWRkIGFuIGV4dGVybiB2b2lkIGFkczUxMjFfZGl1X2luaXQodm9pZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZGU2MzU4NzYyMmM0YjgzMGEyN2QxZGRmNzI2NTg0M2RlOWU5OTRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMSAyMjo1NjoxMSAyMDA4ICswMjAwCgogICAgRml4IHNvbWUgbW9yZSBwcmludGYoKSBmb3JtYXQgaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTg0ZjFiNDA0YTkwZWVmOGI0MjVjMGU3YjMwMThkNTllZjk5ODJjOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTEgMjI6NTU6MzEgMjAwOCArMDIwMAoKICAgIEZpeGVkIHNvbWUgb3V0LW9mLXRyZWUgYnVpbGQgaXNzdWVzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0N2JmOWM3MWFlODM4MzA1YTNlYTMxNjFhZjhkMTRlNmYzZmMyYzgyCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDE2OjIwOjIzIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IEZCIENTIG5vdCBzZXR1cCBwcm9wZXJseSBmb3IgTWNmNTI4MgoKICAgIFJlbW92ZSBhbGwgQ0ZHX0NTbl9STyBpbiBjcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jLiBJZgogICAgQ0ZHX0NTbl9STyBpcyBkZWZpbmVkIGFzIDAsIHRoZSBjaGlwc2VsZWN0IHdpbGwgbm90CiAgICBiZSBhc3NpZ25lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJjM2NjYjEzOWYwODM2ZjBhODM0Y2ZkMzcwYTEyMGEwMGFkN2U2M2EKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTU6NDc6MjcgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggaW5jb3JyZWN0IGRlZmluZSBmb3IgbWNmNTIyN3ggYW5kIG1jZjU0NDV4IFJUQwoKICAgIFJlbmFtZSBDT05GSUdfTUNGVE1SIHRvIENPTkZJR19NQ0ZSVEMgdG8gaW5jbHVkZSByZWFsIHRpbWUKICAgIGNsb2NrIG1vZHVsZSBpbiBjcHUvPGNmIGFyY2g+L2NwdV9pbml0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY5NDk0NWI1MTdmMTBlMDE5MjcxMDE2NzljNjIzNjFlMDNkNGU4MzcKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTU6MjU6MDEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggaW5jb3JyZWN0IGJvYXJkIG5hbWUgaW4gTUFLRUFMTCBmb3IgTTUyNTNFVkJFCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZTBjNDM1N2QxNGEzNTYzYzZhMmExZTZkNWFkNmEyY2M0ZjM1Y2FiCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDE1OjIxOjQ0IDIwMDggLTA1MDAKCiAgICBGaXggY29tcGlsZSBlcnJvciBjYXVzZWQgYnkgbWlzc2luZyB0aW1lciBmdW5jdGlvbgoKICAgIEFkZCAjZGVmaW5lIENPTkZJR19NQ0ZUTVIgaW4gRUIrTUNGLUVWMTIzLmggY29uZmlndXJhdGlvbiBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMzdlYTAzMTE3NWI4MDdjNTRlNmJhZDliMjcwZTliZWRlNmMwMDc4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDE1OjE0OjI1IDIwMDggLTA1MDAKCiAgICBGaXggY29tcGlsZSBlcnJvciBjYXVzZWQgYnkgaW5jb3JyZWN0IGZ1bmN0aW9uIHJldHVybiB0eXBlCgogICAgUmVuYW1lIGludCBtaWlfaW5pdCh2b2lkKSB0byB2b2lkIG1paV9pbml0KHZvaWQpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjQ4NjBiMjU1MjM5ZGJhZWNjY2RkMDAyYzhkMTFmNGVmNTRkZDc1CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAxOCAxOToyNzoyMyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBwb3dlciB1cCBpc3N1ZSBmb3IgTUNGNTIzNQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGQwOGU5NzM2MWZiYzllNzlmYTVlZjFhOGFjZjI5MjczYjkzNGIxMQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMTggMTk6MTk6MDcgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggY29tcGlsaW5nIGVycm9yIGZvciBNQ0Y1Mjc1CgogICAgVGhlIGNvbXBpbGluZyBlcnJvciB3YXMgY2F1c2VkIGJ5IG1pc3NpbmcgYSBjbG9zZWQgcGFyZW50aGVzZXMKICAgIGluIHNwZWVkLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk0NjAzYzJmZDRkYmUwNjU1ODc4NDE2YWEwZGE5ZjMwMmQ0YzMwZDMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDE4IDE5OjE0OjAxIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IHRpbWVyIGlzc3VlIGZvciBNQ0Y1MjcyCgogICAgVGhlIHRpbWVyIHdhcyBhc3NpZ25lZCB0byB3cm9uZyB0aW1lciBtZW1vcnkgbWFwcGVkIHdoaWNoCiAgICBjYXVzZWQgdWRlbGF5KCkgYW5kIHRpbWVyKCkgbm90IHdvcmtpbmcgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYjFlOGFjOWI0M2Y4OWNjOTI5MWE2YTg2ZTZiMzNlZjU1ODAxNTE1CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAxOCAxOToxMjoxMyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IENoYW5nZSBpbnZhbGlkIEpNUCB0byBCUkEgY2F1Z2h0IGJ5IG5ldyB2NGUgdG9vbGNoYWluCgogICAgU2lnbmVkLW9mZi1ieTogS3VydCBNYWhhbiA8a21haGFuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODM3MWRjMjA2NjEzNmJlMjFlMTBiN2I5MjkzZTQ2OTI5N2Q3NzI5OApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMTggMTk6MDU6MjMgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgLWdvdD1zaW5nbGUgcGFyYW0gZm9yIG5ldyBsaW51eCB2NGUgdG9vbGNoYWlucwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1cnQgTWFoYW4gPGttYWhhbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2ZDUyNjE1Y2Q0N2JjNTIyZWUxM2JiN2VjN2U1OWQ2Y2U5NDI2YzcKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDE4IDEzOjIxOjE5IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGNvZGUgZmxhc2ggY29uZmlndXJhdGlvbiBmb3IgTTU0N3gvTTU0OHggYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogS3VydCBNYWhhbiA8a21haGFuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmUzNzA5MWFmYzA3ZmRjYzE1NTkwMDkzZmQwNjZiMGNiNzM5OWY4NQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjQgMTI6MTI6MTYgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggd2FybmluZyBtZXNzYWdlcyBieSBwYXNzaW5nIGNvcnJlY3QgZGF0YSB0eXBlIGluIGJvYXJkLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxY2MzMjMyMmFjYjFiMzIyNWVlNDU2MDZjZWQ0OGUyYTE0ODI0ZGMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDI5IDEyOjIxOjU0IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IFVBUlQgYmF1ZHJhdGUgZm9ybXVsYQoKICAgIFRoZSBmb3JtdWxhICJjb3VudGVyID0gKHUzMikgKGdkLT5idXNfY2xrIC8gZ2QtPmJhdWRyYXRlKSAvIDMyIgogICAgY2FuIGdlbmVyYXRlIHRoZSB3cm9uZyBkaXZpc29yIGR1ZSB0byBpbnRlZ2VyIGRpdmlzaW9uIHRydW5jYXRpb24uCiAgICBSb3VuZCB0aGUgY2FsY3VsYXRlZCBkaXZpc29yIHZhbHVlIGJ5IGFkZGluZyAxLzIgdGhlIGJhdWRyYXRlCiAgICBiZWZvcmUgZGl2aWRpbmcgYnkgdGhlIGJhdWRyYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBiNTc4ZmI0NzE0NDRjYmQ3ZGIxMjg1NzAxYmE1MTM0M2JhYWY3M2ZiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDExOjM4OjI2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpbmNsdWRlIHNlcXVlbmNlIGluIDR4eF9wY2llLmMKCiAgICBUaGlzIHBhdGNoIG5vdyBtb3ZlcyBjb21tb24uaCB0byB0aGUgdG9wIG9mIHRoZSBpbmxjdWRlIGxpc3QuIFRoaXMKICAgIGlzIG5lZWRlZCBmb3IgYm9hcmRzIHdpdGggQ09ORklHX1BIWVNfNjRCSVQgc2V0IChlLmcuIGthdG1haSksIHNvIHRoYXQKICAgIHRoZSBwaHlzX3NpemVfdC9waHlzX2FkZHJfdCBhcmUgZGVmaW5lZCB0byB0aGUgY29ycmVjdCBzaXplIGluIHRoaXMKICAgIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjllMmM2ZDBkMTNkN2M4Y2YxNjEyYWMwOTBiZGM0YzU5YmE2ODU4ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMSAxMzoxMDo1NiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsZSB3YXJuaW5nIGluIDQ0eF9zcGRfZGRyMi5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZiZDkxMzg0OThjMmU0ZjRmMDkxOTAxMDhiOTkxNTdkMWIyMTQwYjUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTEgMTE6NDA6MTMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IHNtYWxsIGtvcmF0IG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWQwNTU0NzM2YTBhMWRkNTk3MThhY2RhNjYwODcxY2U1NmI2OWUxOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMSAxMTozNDo1MiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBTb21lIFJld29vZCBjbGVhbnVwcyAoY29kaW5nIHN0eWxlLCBsZWFkaW5nIHdoaXRlIHNwYWNlcykKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2E4MjExM2VkNTkzNGQ0OThmMjUwODA0NDFhODI2MWZjOTQ1NGIxNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMCAxNjozNzowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNDYwU1ggVUlDIGRlZmluZXMKCiAgICBPbmx5IHRoZSByZWFsbHkgbmVlZGVkIG9uZXMgYXJlIGFkZGVkIChjYXNjYWRpbmcgYW5kIEVNQUMvTUFMKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYxNzNmYzZmNjA1MjFjMmE4MDcyZjY1MmY4NjM2MTdmYzExYmE5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAzMCAxNDoxMTowNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb250aW51ZSBjbGVhbnVwIG9mIHBwYzQ0MC5oCgogICAgVGhpcyBwYXRjaCBjb250aW51ZXMgdGhlIHBwYzQ0MC5oIGNsZWFudXAgYnkgcmVtb3Zpbmcgc29tZSBvZiB0aGUgdW51c2VkCiAgICBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkOTA1NmI3OTEzZWQ2YTIyOGQyZjMzNjcxZDkxNmVmZWRlZTU0MWRkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDMwIDE0OjA1OjA1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgS2F0bWFpICYgWXVjY2EgUENJZSByZWdpc3RlciB1c2FnZQoKICAgIFRoaXMgcGF0Y2ggY2xlYW5zIHVwIHRoZSA0NDBTUGUgUENJZSByZWdpc3RlciB1c2FnZS4gTm93IG9ubHkgZGVmaW5lcwogICAgZnJvbSB0aGUgaW5jbHVkZS9hc20tcHBjLzR4eF9wY2llLmggYXJlIHVzZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkZTg1MTQwM2IwMTQ4OWI0OTNmYTgzMTM3YWQ5OTBiOGNlNjBkMWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdW4gMjYgMTc6MzY6MzkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIDQ0MEdYIFVJQyBoYW5kbGluZwoKICAgIFRoaXMgcGF0Y2ggcmV3b3JrcyB0aGUgNDQwR1ggaW50ZXJydXB0IGhhbmRsaW5nIHNvIHRoYXQgdGhlIGNvbW1vbiA0eHgKICAgIGNvZGUgY2FuIGJlIHVzZWQuIFRoZSA0NDBHWCBpcyBhbiBleGNlcHRpb24gdG8gYWxsIG90aGVyIDR4eCB2YXJpYW50cwogICAgYnkgaGF2aW5nIHRoZSBjYXNjYWRpbmcgaW50ZXJydXB0IHZlY3RvcnMgbm90IG9uIFVJQzAgYnV0IG9uIGEgc3BlY2lhbAogICAgVUlDIG5hbWVkIFVJQ0IwIChVSUMgQmFzZSAwKS4gV2l0aCB0aGlzIHBhdGNoIG5vdywgVS1Cb290IHJlZmVyZW5jZXMKICAgIHRoZSA0NDBHWCBVSUNCMCB3aGVuIFVJQzAgaXMgc2VsZWN0ZWQuIEFuZCB0aGUgY29tbW9uIDR4eCBpbnRlcnJ1cHQKICAgIGhhbmRsaW5nIGlzIHNpbXBsZXIgd2l0aG91dCBhbnkgNDQwR1ggc3BlY2lhbCBjYXNlcy4KCiAgICBBbHNvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIHRvIGNwdS9wcGM0eHgvaW50ZXJydXB0LmMgaXMgZG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDE2MzFmZTFhMDViMDYzY2NhZjYyZWE4OTJhODg4N2I4Mjk4NDdkMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1biAyNiAxMzo0MDo1NyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb25zb2xpZGF0ZSBQUEM0eHggVUlDIGRlZmluZXMKCiAgICBUaGlzIDJuZCBwYXRjaCBub3cgcmVtb3ZlcyBhbGwgVUlDIG1hc2sgYml0IGRlZmluaXRpb24uIFRoZXkgc2hvdWxkIGJlCiAgICBnZW5lcmF0ZWQgZnJvbSB0aGUgdmVjdG9ycyBieSB1c2luZyB0aGUgVUlDX01BU0soKSBtYWNybyBmcm9tIG5vdyBvbi4KICAgIFRoaXMgd2F5IG9ubHkgdGhlIHZlY3RvcnMgbmVlZCB0byBnZXQgZGVmaW5lZCBmb3IgbmV3IFBQQydzLgoKICAgIEFsc28gb25seSB0aGUgcmVhbGx5IHVzZWQgaW50ZXJydXB0IHZlY3RvcnMgYXJlIG5vdyBkZWZpbmVkLiBUaGlzIG1ha2VzCiAgICBkZWZpbml0aW9ucyBmb3IgbmV3IFBQQyB2ZXJzaW9ucyBlYXNpZXIgYW5kIGxlc3MgZXJyb3IgcHJvbmUuCgogICAgQW5vdGhlciBwYXJ0IG9mIHRoaXMgcGF0Y2ggaXMgdGhhdCB0aGUgNHh4IGVtYWMgZHJpdmVyIGdvdCBhIGxpdHRsZQogICAgY2xlYW51cCwgc2luY2Ugbm93IHRoZSB1c2FnZSBvZiB0aGUgaW50ZXJydXB0cyBpcyBjbGVhcmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZmIyNWEzZGIzYjM4MzkwOTRhYTlhYjc0OGVmZDdhOTU5MjQ2OTBiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDI1IDEwOjU5OjIyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvbnNvbGlkYXRlIFBQQzR4eCBVSUMgZGVmaW5lcwoKICAgIFRoaXMgcGF0Y2ggaXMgdGhlIGZpcnN0IHN0ZXAgdG8gY29uc29saWRhdGUgdGhlIFVJQyByZWxhdGVkIGRlZmluZXMgaW4gdGhlCiAgICA0eHggaGVhZGVycy4gTW92ZSBoZWFkZXIgZnJvbSBhc20tcHBjL3BwYzR4eC1pbnR2ZWMuaCB0bwogICAgYXNtLXBwYy9wcGM0eHgtdWljLmggYXMgaXQgd2lsbCBob2xkIGFsbCBVSUMgcmVsYXRlZCBkZWZpbmVzIGluIHRoZSBuZXh0CiAgICBzdGVwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2VlMjYxOWMyMGNjZWNkNTc5NjZkNzRkODQ0ZTYzMjllMTQxMjYxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAyNCAxNzoxODo1MCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb25zb2xpZGF0ZSBQUEM0eHggRUJDIGRlZmluZXMKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYWxsIEVCQyByZWxhdGVkIGRlZmluZXMgZnJvbSB0aGUgUFBDNHh4IGhlYWRlcnMKICAgIHBwYzQwNS5oIGFuZCBwcGM0NDAuaCBhbmQgaW50cm9kdWNlcyBhIG5ldyBoZWFkZXIKCiAgICBpbmNsdWRlL2FzbS1wcGMvcHBjNHh4LWViYy5oCgogICAgd2l0aCBhbGwgdGhvc2UgZGVmaW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTMyMTgwMWJlZDVhNmQ4OTZkMjk4YzAwZmQyMDA0NmYwMzlkNWQ2NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMCAxMzo1Mjo0NCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgcmVkdW5kYW50IGZ0X2JvYXJkX3NldHVwKCkgZnVuY3Rpb25zIGZyb20gc29tZSA0eHggYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgZnRfYm9hcmRfc2V0dXAoKSBmdW5jdGlvbnMgZnJvbSBzb21lIDR4eCBib2FyZHMuCiAgICBUaGlzIGNhbiBiZSBkb25lIHNpbmNlIHdlIG5vdyBoYXZlIGEgZGVmYXVsdCB3ZWFrIGltcGxlbWVudGF0aW9uIGZvciB0aGlzCiAgICBpbiBjcHUvcHBjNHh4L2ZkdC5jLiBPbmx5IGJvYXJkIGluIG5lZWQgZm9yIGEgZGlmZmVyZW50L2N1c3RvbQogICAgaW1wbGVtZW50YXRpb24gbGlrZSBjYW55b25sYW5kcyBuZWVkIHRoZWlyIG93biB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwODI1MGViMmVkYmQ5NjUxNGQwNDk2MDJkOWUxMzQxMTBhYzMxODVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDE1OjMyOjMyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBtZXJnZSBwcm9ibGVtcyBpbiA0NHhfc3BkX2RkcjIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNzQwYzFiZjQwZTNjNmQwM2FjMTZjMjk5NDNmZGQ5ZmMxZTg3MDM4CkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJVHVlIEp1bCA4IDA4OjM1OjAwIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFkZCBNSUkgbW9kZSBzdXBwb3J0IHRvIHRoZSBFTUFDIFJHTUlJIEJyaWRnZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBwbGFjaW5nIHRoZSBSR01JSSBicmlkZ2Ugb24gdGhlCiAgICBQUEM0MDVFWChyKSBpbnRvIE1JSS9HTUlJIG1vZGUgYW5kIGFsbG93cyBhIGJvYXJkLXNwZWNpZmljCiAgICBjb25maWd1cmF0aW9uIHRvIHNwZWNpZnkgdGhlIGJyaWRnZSBtb2RlIGF0IGNvbXBpbGUtdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJlMjA1MDg0MmU3MzFjODIzY2U4ZDQxZmIwYzE1NTc5ZWI3MGNlZDkKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglXZWQgSnVsIDkgMTY6NDY6MzUgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWRkIE1uZW1vbmljcyBmb3IgQU1DQy9JQk0gRERSMiBTRFJBTSBDb250cm9sbGVyCgogICAgVGhpcyBwYXRjaCBjb21wbGV0ZXMgdGhlIHByZXByb2Nlc3NvciBtbmVvbWljcyBmb3IgdGhlIElCTSBERFIyIFNEUkFNCiAgICBjb250cm9sbGVyIHJlZ2lzdGVycyAoTU9EVCBhbmQgSU5JVFBMUikgdXNlZCBieSB0aGUKICAgIFBvd2VyUEM0MDVFWChyKS4gVGhlIE1NT0RFIGFuZCBNRU1PREUgcmVnaXN0ZXJzIGFyZSB1bmlmaWVkIHdpdGggdGhlaXIKICAgIHBlZXIgdmFsdWVzIHVzZWQgZm9yIHRoZSBJTklUUExSIE1SIGFuZCBFTVIgcmVnaXN0ZXJzLAogICAgcmVzcGVjdGl2ZWx5LiBGaW5hbGx5LCBhIHNwZWxsaW5nIHR5cG8gaXMgY29ycmVjdCAoTUFOVUVMIHRvIE1BTlVBTCkuCgogICAgV2l0aCB0aGVzZSBtbmVtb25pY3MgaW4gcGxhY2UsIHRoZSBDRkdfU0RSQU0wXyogbWFnaWMgbnVtYmVycyBmb3IKICAgIEtpbGF1ZWEgYXJlIHJlcGxhY2VkIGJ5IGVxdWl2YWxlbnQgbW5lbW9uaWNzIHRvIG1ha2UgaXQgZWFzaWVyIHRvCiAgICBjb21wYXJlIGFuZCBjb250cmFzdCBvdGhlciA0MDVFWChyKS1iYXNlZCBib2FyZHMgKGUuZy4gZHVyaW5nIGJvYXJkCiAgICBicmluZy11cCkuCgogICAgRmluYWxseSwgdW5pZmllZCB0aGUgU0RSQU0gY29udHJvbGxlciByZWdpc3RlciBkdW1wIHJvdXRpbmUgc3VjaCB0aGF0CiAgICBpdCBjYW4gYmUgdXNlZCBhY3Jvc3MgYWxsIHByb2Nlc3NvciB2YXJpYW50cyB0aGF0IHV0aWxpemUgdGhlIElCTSBERFIyCiAgICBTRFJBTSBjb250cm9sbGVyIGNvcmUuIEl0IHByb2R1Y2VzIG91dHB1dCBvZiB0aGUgZm9ybToKCglQUEM0eHggSUJNIEREUjIgUmVnaXN0ZXIgRHVtcDoKCQkuLi4KCQlTRFJBTV9NQjBDRls0MF0gPSAweDAwMDA2NzAxCgkJLi4uCgogICAgd2hpY2ggaXMgJzxtbmVtb25pYz5bPERDUiAjPl0gPSA8dmFsdWU+Jy4gVGhlIERDUiBudW1iZXIgaXMgaW5jbHVkZWQKICAgIHNpbmNlIGl0IGlzIG5vdCB1bmNvbW1vbiB0aGF0IHRoZSBEQ1IgdmFsdWVzIGluIGhlYWRlciBmaWxlcyBnZXQgbWl4ZWQKICAgIHVwIGFuZCBpdCBoZWxwcyB0byB2YWxpZGF0ZSwgYXQgYSBnbGFuY2UsIHRoZXkgbWF0Y2ggd2hhdCBpcyBwcmludGVkCiAgICBpbiB0aGUgdXNlciBtYW51YWwuCgogICAgVGVzdGVkIG9uOgogICAgICBBTUNDIEtpbGF1ZWEvSGFsZWFrYWxhOgogICAgICAtIE5GUyBMaW51eCBCb290OiBQQVNTRUQKICAgICAgLSBOQU5EIExpbnV4IEJvb3Q6IFBBU1NFRAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWQ3MzgyZDgyODk4MmU5YzFiYWZjNDMxM2VmMWI2NjZmNjE0NWY1OApBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNjozMTo1OSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgQU1DQy9JQk0gRERSMiBTRFJBTSBFQ0MgRmllbGQgTW5lbW9uaWNzCgogICAgQWRkIGFkZGl0aW9uYWwgRERSMiBTRFJBTSBtZW1vcnkgY29udHJvbGxlciBEQ1IgbW5lb21uaWNzLCBjb25kaXRpb24KICAgIHJldmlzaW9uIElEIERDUiBiYXNlZCBvbiA0MDVFWCwgYW5kIGFkZCBmaWVsZCBtbmVtb25pY3MgZm9yIGJ1cyBlcnJvcgogICAgc3RhdHVzIGFuZCBFQ0MgZXJyb3Igc3RhdHVzIHJlZ2lzdGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEwMzIwMTczMWJkOGU4NTQwNGQwZjUxYTViNGU4YWJkMTRjMGI2YzYKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglXZWQgSnVsIDkgMTY6MzE6MzYgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWRkIFNEUjBfU1JTVCBNbmVtb25pY3MgZm9yIHRoZSA0MDVFWChyKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiaXQgZmllbGQgbW5lbW9uaWNzIGZvciB0aGUgNDA1RVgocikgU0RSMF9TUlNUIHNvZnQgcmVzZXQgcmVnaXN0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1YjQ1N2QwMDczMGQ0YWEwYzY0NTBkMjFhOTEwNDcyM2U2MDZmYjk4CkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDExOjU1OjQ2IDIwMDggLTA3MDAKCiAgICBQUEM0eHg6IENvcnJlY3QgU0RSQU1fTUNTVEFUIGZvciBQUEM0MDVFWChyKQoKICAgIFdoaWxlIHRoZSBQb3dlclBDIDQwNUVYKHIpIHNoYXJlcyBpbiBjb21tb24gdGhlIEFNQ0MvSUJNIEREUjIgU0RSQU0KICAgIGNvbnRyb2xsZXIgY29yZSBhbHNvIHVzZWQgaW4gdGhlIDQ0MFNQLCA0NDBTUGUsIDQ2MEVYLCBhbmQgNDYwR1QsIGluCiAgICB0aGUgNDA1RVgociksIFNEUkFNX01DU1RBVCBoYXMgYSBkaWZmZXJlbnQgRENSIHZhbHVlLgoKICAgIEl0cyBwcmVzZW50IHZhbHVlIG9uIHRoZSA0MDVFWChyKSBjYXVzZXMgYSByZWFkIGJhY2sgb2YgMHhGRkZGRkZGRgogICAgd2hpY2ggY2F1c2VzIFNEUkFNIGluaXRpYWxpemF0aW9uIHRvIHBlcmlvZGljYWxseSBmYWlsIHNpbmNlIGl0IGNhbgogICAgcHJlbWF0dXJlbHkgaW5kaWNhdGUgU0RSQU0gcmVhZHkgc3RhdHVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGNlNWM4Njc1YmIyYzYxZjFkNzFmYjk3ZjBiYmU4MjI2NjNmYjkzZApBdXRob3I6IEZlbmcgS2FuIDxma2FuQGFtY2MuY29tPgpEYXRlOglUdWUgSnVsIDggMjI6NDg6NDIgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogSW5pdGlhbCBmcmFtZXdvcmsgb2YgdGhlIEFNQ0MgUFBDNDYwU1ggcmVkd29vZCByZWZlcmVuY2UgYm9hcmQuCgogICAgQWRkIEFNQ0MgUmVkd29vZCByZWZlcmVuY2UgYm9hcmQgdGhhdCB1c2VzIHRoZSBsYXRlc3QKICAgIFBQQyA0NjQgQ1BVIHByb2Nlc3NvciBjb21iaW5lZCB3aXRoIGEgcmljaCBtaXggb2YgcGVyaXBoZXJhbAogICAgY29udHJvbGxlcnMuIFRoZSBib2FyZCB3aWxsIHN1cHBvcnQgUENJZSwgbXV0aXBsZSBHaWcgZXRoZXJuZXQKICAgIHBvcnRzLCBhZHZhbmNlZCBoYXJkd2FyZSBSQUlEIGFzc2lzdGFuY2UgYW5kIElFRUUgMTU4OC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBGZW5nIEthbiA8ZmthbkBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NmU1ZmMwZTZhMTg2MWQwZmVhNGVmYTNjZDM3NmRmOTVhNWIxYjg5CkF1dGhvcjogRmVuZyBLYW4gPGZrYW5AYW1jYy5jb20+CkRhdGU6CVR1ZSBKdWwgOCAyMjo0ODowNyAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCA0NjBTWCByZWZlcmVuY2UgYm9hcmQgKHJlZHdvb2QpIGNvbmZpZyBmaWxlIGFuZCBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEZlbmcgS2FuIDxma2FuQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdkMzA3OTM2ODVlZmNhZGExODM4OTFjNzhmYzg5MmU2YzliYTUwYzcKQXV0aG9yOiBGZW5nIEthbiA8ZmthbkBhbWNjLmNvbT4KRGF0ZToJVHVlIEp1bCA4IDIyOjQ3OjMxIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIDQ2MFNYIGRlZmluZXMgZm9yIHRoZSBjcHUvcHBjNHh4IGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBGZW5nIEthbiA8ZmthbkBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YjU1YTI1MzY5MTlmNGRlMWJiMTA0NGU2ZWI4MjYyYzJmNTNiYzk2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMSAwMToxNjowMCAyMDA4ICswMjAwCgogICAgRml4IHNvbWUgbW9yZSBwcmludCgpIGZvcm1hdCBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZGQ3MGQxOTIxYjg3Mjg3ZDlhOTlkMWJlOTliYzM1MjI2YzJiNDEyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IEp1bCAxMCAyMDo1Nzo1NCAyMDA4ICswMjAwCgogICAgTUFLRUFMTDogcmVtb3ZlIGR1cGxpY2F0ZWQgYXQ5MSBmcm9tIEFSTTkgbGlzdCBhbmQgYWRkIExJU1RfYXQ5MSB0byBhcm0KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGM2NDU3ZTNiOGJjNzlhOTczODFjZjdkZWZmYTA4ZjdjNWEyNGY4NmMKQXV0aG9yOiBTZXJnZXkgTGFwaW4gPHNsYXBpbkBvc3NmYW5zLm9yZz4KRGF0ZToJVGh1IEp1biA1IDExOjA2OjI5IDIwMDggKzA0MDAKCiAgICBEYXRhRmxhc2ggQVQ0NURCMDIxIHN1cHBvcnQKCiAgICBTb21lIGJvYXJkcyBiYXNlZCBvbiBBVDkxU0FNOTI2WC1FSyB1c2Ugc21hbGxlciBERiBjaGlwcyB0byBrZWVwCiAgICBib290c3RyYXAsIHUtYm9vdCBhbmQgaXRzIGVudmlyb25tZW50LCB1c2luZyBOQU5EIG9yIG90aGVyIGV4dGVybmFsCiAgICBzdG9yYWdlIGZvciBrZXJuZWwgYW5kIHJvb3Rmcy4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yCiAgICBzbWFsbCAxMDI0eDI2MyBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBMYXBpbiA8c2xhcGluQG9zc2ZhbnMub3JnPgoKY29tbWl0IDQxMDlkZjZmNzVmYzAwYWI3ZGE1NmQyODZiYTUwMTQ5YTBkMTZhNjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDEwIDE0OjAwOjE1IDIwMDggLTA1MDAKCiAgICBzaWxlbmNlIG1pc2MgcHJpbnRmIGZvcm1hdHRpbmcgY29tcGlsZXIgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkNzFjODFhOWJiMDNmODY2YTFlOThkYTk2MzYzZWYzZjQ2Yzc2YjMKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDE0OjQ3OjA5IDIwMDggKzAyMDAKCiAgICBVU0I6IHNodXRkb3duIFVTQiBiZWZvcmUgYm9vdGluZwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWxseSBzZXJpb3VzIGlzc3VlIHJlbGF0ZWQgdG8gVVNCIHdoaWNoIHdhcwogICAgZGlzY291dmVyZWQgYnkgTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+IGFuZCBmaXhlZCBmb3IKICAgIEFSTTkyMFQuIE1hcnRpbiB3cm90ZToKCiAgICAgIFR1cm4gb2ZmIFVTQiB0byBwcmV2ZW50IHRoZSBob3N0IGNvbnRyb2xsZXIgZnJvbSB3cml0aW5nIHRvIHRoZQogICAgICBTRFJBTSB3aGlsZSBMaW51eCBpcyBib290aW5nLiBUaGlzIGNvdWxkIGhhcHBlbiwgYmVjYXVzZSB0aGUgSENDQQogICAgICAoSG9zdCBDb250cm9sbGVyIENvbW11bmljYXRpb24gQXJlYSkgbGllcyB3aXRoaW4gdGhlIFNEUkFNIGFuZCB0aGUKICAgICAgaG9zdCBjb250cm9sbGVyIHdyaXRlcyBjb250aW5vdXNseSB0byB0aGlzIGFyZWEgKGFzIGJ1c21hc3RlciEpLCBmb3IKICAgICAgZXhhbXBsZSB0byBpbmNyZWFzZSB0aGUgSGNjYUZyYW1lTnVtYmVyIHZhcmlhYmxlLCB3aGljaCBoYXBwZW5zCiAgICAgIGV2ZXJ5IDEgbXMuCgogICAgVGhpcyBpcyBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIHBhdGNoIGluIG9yZGVyIHRvIHNodXRkb3duCiAgICBVU0Igd2hlbiBib290aW5nIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZjMxYzQ5ZGIyYTVlMDc2ZjQxNWMwNzg1ZWIzN2Y2N2YyZmFhNWZjOApBdXRob3I6IE1hcnRoYSBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KRGF0ZToJVGh1IE1heSAyOSAxNDoyMzoyNSAyMDA4IC0wNDAwCgogICAgQ29uZmlndXJhdGlvbiBjaGFuZ2VzIGZvciBBRFM1MTIxIFJldiAzCgogICAgQURTNTEyMSBSZXYgMyBib2FyZCBpcyBub3cgdGhlIGRlZmF1bHQgY29uZmlnCgogICAgY29uZmlnIHRhcmdldHMgYXJlIG5vdwoKICAgIGFkczUxMjFfY29uZmlnCglSZXYgMyBib2FyZCB3aXRoCglQQ0kKCU00MVQ2MiBvbiBib2FyZCBSVEMKCTUxMk1CIERSQU0KCiAgICBhZHM1MTIxX3JldjJfY29uZmlnCglSZXYgMiBib2FyZCB3aXRoCglObyBQQ0kKCTI1Nk1CIERSQU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aGEgTWFyeCA8bW1hcnhAc2lsaWNvbnRreC5jb20+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE2YmVlN2IwZGMyOTRlZTAxY2EyNDM0YWExZGQzYmQ3MTdhNjk2MTUKQXV0aG9yOiBNYXJ0aGEgTWFyeCA8bW1hcnhAc2lsaWNvbnRreC5jb20+CkRhdGU6CVRodSBNYXkgMjkgMTU6Mzc6MjEgMjAwOCAtMDQwMAoKICAgIENvbnNvbGlkYXRlIEFEUzUxMjEgSU8gUGluIGNvbmZpZ3VyYXRpb24KCiAgICBDb25zb2xpZGF0ZSBBRFM1MTIxIElPIFBpbiBjb25maWd1cmF0aW9uIHRvIG9uZSBmaWxlCiAgICBib2FyZC9hZHM1MTIxL2lvcGluLmMuCgogICAgUmVtb3ZlIHBpbiBjb25maWcgZnJvbSBjcHUvbXBjNTEyeC9mZWMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRoYSBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDQ2OTJiMGJhODNiN2I0NTRiYmQ5MmJhZDFmNGJlZmU2ZTE2NTdiNwpBdXRob3I6IENocmlzdGlhbiBFZ2dlcnMgPGNocmlzdGlhbkBwMjQwMC53Z25ldHoueHg+CkRhdGU6CUZyaSBKdW4gMjcgMTk6NDY6NTEgMjAwOCArMDIwMAoKICAgIEZpeCAidXNiIHBhcnQiIGNvbW1hbmQKCiAgICBPbmx5IHByaW50IHBhcnRpdGlvbiBmb3Igc2VsZWN0ZWQgZGV2aWNlIGlmIHVzZXIgc3VwcGxpZWQgdGhlIDxkZXY+CiAgICBhcmcgd2l0aCB0aGUgInVzYiBwYXJ0IFtkZXZdIiBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgY2M4M2IyNzIxN2Y3MzgwMDQxZmVhMzg2ZGRiNmQ2ZDliMjYxNjE3ZApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBnbnVtb25rcy5vcmc+CkRhdGU6CU1vbiBKdWwgNyAwMDo1ODowNSAyMDA4ICswODAwCgogICAgZml4IFVTQiBkZXZpY2VzIHdpdGggbXVsdGlwbGUgY29uZmlndXJhdGlvbnMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGJ1Z3MgaW4gdXNiZGNvcmUqLmMgcmVsYXRlZCB0byB0aGUgdXNlIG9mIGRldmljZXMKICAgIHdpdGggbXVsdGlwbGUgY29uZmlndXJhdGlvbnMuCgogICAgVGhlIG9yaWdpbmFsIGNvZGUgbWFkZSBtaXN0YWtlcyBhYm91dCB0aGUgbWVhbmluZyBvZiBjb25maWd1cmF0aW9uIHZhbHVlIGFuZAogICAgY29uZmlndXJhdGlvbiBpbmRleCwgYW5kIHRoZSByZXN1bHRpbmcgb2ZmLWJ5LW9uZSBlcnJvcnMgcmVzdWx0ZWQgaW46CgogICAgKiBTRVRfQ09ORklHVVJBVElPTiBhbHdheXMgc2VsZWN0ZWQgdGhlIGZpcnN0IGNvbmZpZ3VyYXRpb24sIG5vIG1hdHRlciB3aGF0CiAgICAgIHdWYWx1ZSBpcyBiZWluZyBwYXNzZWQuCiAgICAqIEdFVF9ERVNDUklQVE9SL0NPTkZJR1VSQVRJT04gYWx3YXlzIHJldHVybmVkIHRoZSBkZXNjcmlwdG9yIGZvciB0aGUgZmlyc3QKICAgICAgY29uZmlndXJhdGlvbiAoaW5kZXggMCkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDA2YzUzYmVhZTFhNzI2ZTcwNzk3MWM1NTU2MTNmMDliMjcwYTI0NjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDEzOjE2OjA5IDIwMDggKzAyMDAKCiAgICBGaXggc29tZSBtb3JlIHByaW50KCkgZm9ybWF0IGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ0YjVmM2ZhMDAxMjI4ZDc2ZTJjMzM4MGNlZGFkZjgwNGI4MDJjMmEKQXV0aG9yOiBDaHJpc3RpYW4gRWdnZXJzIDxjaHJpc3RpYW5AcDI0MDAud2duZXR6Lnh4PgpEYXRlOglGcmkgSnVuIDI3IDE5OjQ2OjUxIDIwMDggKzAyMDAKCiAgICBGaXggInVzYiBwYXJ0IiBjb21tYW5kCgogICAgT25seSBwcmludCBwYXJ0aXRpb24gZm9yIHNlbGVjdGVkIGRldmljZSBpZiB1c2VyIHN1cHBsaWVkIHRoZSA8ZGV2PgogICAgYXJnIHdpdGggdGhlICJ1c2IgcGFydCBbZGV2XSIgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gRWdnZXJzIDxjZWdnZXJzQGdteC5kZT4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGU3M2I1MjEyZTA0NjNhM2RiMGFmMGE1Yzk1Yzc1YmZiNzYyY2E5NzMKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAZ251bW9ua3Mub3JnPgpEYXRlOglNb24gSnVsIDcgMDA6NTg6MDUgMjAwOCArMDgwMAoKICAgIGZpeCBVU0IgZGV2aWNlcyB3aXRoIG11bHRpcGxlIGNvbmZpZ3VyYXRpb25zCgogICAgVGhpcyBwYXRjaCBmaXhlcyBidWdzIGluIHVzYmRjb3JlKi5jIHJlbGF0ZWQgdG8gdGhlIHVzZSBvZiBkZXZpY2VzCiAgICB3aXRoIG11bHRpcGxlIGNvbmZpZ3VyYXRpb25zLgoKICAgIFRoZSBvcmlnaW5hbCBjb2RlIG1hZGUgbWlzdGFrZXMgYWJvdXQgdGhlIG1lYW5pbmcgb2YgY29uZmlndXJhdGlvbiB2YWx1ZSBhbmQKICAgIGNvbmZpZ3VyYXRpb24gaW5kZXgsIGFuZCB0aGUgcmVzdWx0aW5nIG9mZi1ieS1vbmUgZXJyb3JzIHJlc3VsdGVkIGluOgoKICAgICogU0VUX0NPTkZJR1VSQVRJT04gYWx3YXlzIHNlbGVjdGVkIHRoZSBmaXJzdCBjb25maWd1cmF0aW9uLCBubyBtYXR0ZXIgd2hhdAogICAgICB3VmFsdWUgaXMgYmVpbmcgcGFzc2VkLgogICAgKiBHRVRfREVTQ1JJUFRPUi9DT05GSUdVUkFUSU9OIGFsd2F5cyByZXR1cm5lZCB0aGUgZGVzY3JpcHRvciBmb3IgdGhlIGZpcnN0CiAgICAgIGNvbmZpZ3VyYXRpb24gKGluZGV4IDApLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CiAgICBBY2tlZC1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBlODcwNjkwYmRjYTE1NDk0M2VjYWRkNTIxMmQyZDU5YzFiOWQzOTFiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDEwOjEwOjU0IDIwMDggKzAyMDAKCiAgICBNVEQvTkFORDogRml4IHByaW50ZiBmb3JtYXQgd2FybmluZyBpbiBuYW5kIGNvZGUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIE5BTkQgcmVsYXRlZCBwcmludGYgZm9ybWF0IHdhcm5pbmcuIFRob3NlIHdhcm5pbmdzIGFyZQogICAgbm93IHZpc2libGUgc2luY2UgcGF0Y2ggZGM0YjBiMzhkNGFhZGYwODgyNmY2YzMxMjcwZjFlZWNkMjc5NjRmZAogICAgW0ZpeCBwcmludGYgZXJyb3JzLl0gYnkgQW5kcmV3IEtsb3NzbmVyIGhhcyBiZWVuIGFwcGxpZWQuIFRoYW5rcywgdGhpcyBpcwogICAgcmVhbGx5IGhlbHBmdWwuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEwOTQzYzlhZmEyNTY5NGJkOTk5OTQ2MWY0ZTllNTBjZTIyZmZmMmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTA6MDA6NDUgMjAwOCArMDIwMAoKICAgIHJ0YzogRml4IHByaW50ZiBmb3JtYXQgd2FybmluZyBpbiBtNDF0NjAuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYzFkYTQyZjgxNGNkNzFlNjc1NmMyY2Y2MmFmMWFkYTFkMDU4MWZiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDggMTI6MDE6NDcgMjAwOCArMDIwMAoKICAgIHBjaTogTW92ZSBQQ0kgZGV2aWNlIGNvbmZpZ3VyYXRpb24gY2hlY2sgaW50byBhIHNlcGFyYXRlIHdlYWsgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBjaGVjaywgaWYgYSBkZXZpY2Ugc2hvdWxkIGJlIHNraXBwZWQgaW4gUENJIFBOUAogICAgY29uZmlndXJhdGlvbiBpbnRvIHRoZSBmdW5jdGlvbiBwY2lfc2tpcF9kZXYoKS4gVGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkCiAgICBhcyB3ZWFrIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IGEgcGxhdGZvcm0gc3BlY2lmaWMgb25lIGlmCiAgICBuZWVkZWQuIFRoZSBjaGVjayBpZiB0aGUgZGV2aWNlIHNob3VsZCBnZXQgcHJpbnRlZCBpbiB0aGUgUENJIHN1bW1hcnkgdXBvbgogICAgYm9vdHVwICh3aGVuIENPTkZJR19QQ0lfU0NBTl9TSE9XIGlzIGRlZmluZWQpIGlzIG1vdmVkIHRvIHRoZSBmdW5jdGlvbgogICAgcGNpX3ByaW50X2RldigpIHdoaWNoIGlzIGFsc28gZGVmaW5lZCBhcyB3ZWFrIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjAwMjE0NGUxZGMyMTM3NGIxZWY1MjgxZmU2YjVkMDE0YWY5NjY1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMCAwOTo1ODowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5ncyBub3cgdmlzaWJsZSB3aXRoIHRoZSB1cGRhdGVkIGZvcm1hdCBjaGVjawoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgcHBjNHh4IHJlbGF0ZWQgcHJpbnRmIGZvcm1hdCB3YXJuaW5nLiBUaG9zZSB3YXJuaW5ncyBhcmUKICAgIG5vdyB2aXNpYmxlIHNpbmNlIHBhdGNoIGRjNGIwYjM4ZDRhYWRmMDg4MjZmNmMzMTI3MGYxZWVjZDI3OTY0ZmQKICAgIFtGaXggcHJpbnRmIGVycm9ycy5dIGJ5IEFuZHJldyBLbG9zc25lciBoYXMgYmVlbiBhcHBsaWVkLiBUaGFua3MsIHRoaXMgaXMKICAgIHJlYWxseSBoZWxwZnVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZDgxMmI4YjRhZDk2NjdjNzdhNWJmOTJiNGJhODE2OTlhYmM5ZmMzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDkgMTc6MzM6NTcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRW5hYmxlIHN1cHBvcnQgZm9yID4gMkdCIFNEUkFNIG9uIEFNQ0MgS2F0bWFpCgogICAgTmV3ZXIgUFBDJ3MgbGlrZSA0NDBTUGUsIDQ2MEVYL0dUIGNhbiBiZSBlcXVpcHBlZCB3aXRoIG1vcmUgdGhhbiAyR0Igb2YgU0RSQU0uCiAgICBUbyBzdXBwb3J0IHN1Y2ggY29uZmlndXJhdGlvbnMsIHdlICJvbmx5IiBtYXAgdGhlIGZpcnN0IDJHQiB2aWEgdGhlIFRMQidzLiBXZQogICAgbmVlZCBzb21lIGZyZWUgdmlydHVhbCBhZGRyZXNzIHNwYWNlIGZvciB0aGUgcmVtYWluaW5nIHBlcmlwaGVyYWxzIGxpa2UsIFNvQwogICAgZGV2aWNlcywgRkxBU0ggZXRjLgoKICAgIE5vdGUgdGhhdCBFQ0MgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gY29uZmlndXJhdGlvbnMgd2l0aCBtb3JlIHRoYW4gMkdCCiAgICBTRFJBTS4gVGhpcyBpcyBiZWNhdXNlIHdlIG9ubHkgbWFwIHRoZSBmaXJzdCAyR0Igb24gc3VjaCBzeXN0ZW1zLCBhbmQgdGhlcmVmb3JlCiAgICB0aGUgRUNDIHBhcml0eSBieXRlIG9mIHRoZSByZW1haW5pbmcgYXJlYSBjYW4ndCBiZSB3cml0dGVuLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZjFjMmVkOTFkZjI2OTAzYjk1Njk0OGYzN2Y4MmRlOWUxMTU4YTg5CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVNhdCBKdW4gMTQgMTc6MDI6NDkgMjAwOCAtMDQwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGltcGxlbWVudGF0aW9uIG9mIHRlc3RkcmFtKCkgZnJvbSBLb3JhdCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDdjZTRhMjhjY2ZjZmI4MDNhYTY4ZDNkNDUwNWE4ZGUwNTZhOGE1ZQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglTYXQgSnVuIDE0IDE2OjUzOjAyIDIwMDggLTA0MDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBhbmQgYWRkIEZEVCB0byBLb3JhdCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDE4OGYwNDkxODg2YjNiNDg2MTY0ZTgxOWMwYTgzZmRiOTdlZmQ3ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMDE6MTM6MzAgMjAwOCArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4OTE1ZjExODljMWQyOWQ4YmU3ZjRkZTMyNTcwMmQ5MGE4OTg4MjE5CkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNzo1MDo0NSAyMDA4IC0wNDAwCgogICAgZTEwMDA6IGFkZCBzdXBwb3J0IGZvciA4MjU0NUdNIDY0Yml0IFBDSS1YIGNvcHBlciB2YXJpYW50CgogICAgVGhpcyBQQ0ktWCBlMTAwMCB2YXJpYW50IHdvcmtzIGJ5IGp1c3QgYWRkaW5nIGluIHRoZSBjb3JyZWN0CiAgICBQQ0kgSURzIGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZXMuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgMjFhZTZjYTAzMTVhZmRiYzY1ZGMzZTk1ZmZkNTc2M2U2NzczZDAzMApBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDEyOjM0OjExIDIwMDggKzAwMDAKCiAgICBTUEFSQzogQnVpbGQgZXJyb3IgZml4CgogICAgKGludHJvZHVjZWQgYnkgY29tbWl0IDM5MWZkOTNhYjIzZTE1YWIzZGQ1OGE1NGY1YjYwOTAyNDAwOWMzNzgpCgogICAgVGhpcyBwYXRjaCBtYWtlcyBTUEFSQyB0YXJnZXRzIGJ1aWxkIGFnYWluLiBJdCBpcyBjYXVzZWQgYnkKICAgIHBoeXNfYWRkcl90IGFuZCBwaHlzX3NpemVfdCBiZWluZyBkZWZpbmVkIGluIHRoZSB3cm9uZyBoZWFkZXIKICAgIGZpbGUuIGluY2x1ZGUvbG1iLmggbmVlZCB0aG9zZSB0eXBlZGVmcyB0byBidWlsZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgMTFjY2MzM2ZhMjFhY2NlMTA4ZjZiNGE2OTM2ZTMyNzFhZjkwNGM2NApBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDA4OjE3OjE1IDIwMDggKzAyMDAKCiAgICBNYW55IHNwZWxsaW5nIGZpeGVzIGluIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgZGJhYjA2OTFkMjUzMzU2MGY3ZTkxYjkyYWU4NDQwNDZhOWFkMWRmMwpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDA4OjE3OjA2IDIwMDggKzAyMDAKCiAgICBNaW5vciBzcGVsbGluZyBmaXggaW4gY29tbWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgODkxMzRlYTFmNjcyMDhmZDMxNjBiZGJiMGI5ZWFhYjRlYWI5ODQ4NApBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgSnVsIDggMTQ6NTQ6NTggMjAwOCAtMDQwMAoKICAgIFJvdW5kIHRoZSBzZXJpYWwgcG9ydCBjbG9jayBkaXZpc29yIHZhbHVlIHJldHVybmVkIGJ5IGNhbGNfZGl2aXNvcigpCgogICAgUm91bmQgdGhlIHNlcmlhbCBwb3J0IGNsb2NrIGRpdmlzb3IgdmFsdWUgcmV0dXJuZWQgYnkKICAgIGNhbGNfZGl2aXNvcigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSb2JlcnRzIDxqb2huLnJvYmVydHNAcHdhdi5jb20+Cgpjb21taXQgOWQyZTM5NDdiMjk0NGU1YmI4NWI0MzM1NTMzZjhjOTNjNTg0NDVmZQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTc6NDc6NTIgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IGlmZGVmLXByb3RlY3QgbW9zdCBvZiBuYW5kLmggd2hlbiB1c2luZyBsZWdhY3kgTkFORC4KCiAgICBTb21lIG1hY3JvcyBzdWNoIGFzIE5BTkRfQ1RMX1NFVEFMRSBjb25mbGljdCBiZXR3ZWVuIGN1cnJlbnQgYW5kIGxlZ2FjeQogICAgTkFORCwgYmVpbmcgZGVmaW5lZCBieSB0aGUgc3Vic3lzdGVtIGluIHRoZSBmb3JtZXIgY2FzZSBhbmQgdGhlIGJvYXJkCiAgICBjb25maWcgZmlsZSBpbiB0aGUgbGF0dGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJiMWZhOWQzODNjYmJiN2QzNDdjMTU4M2JkNmNhNGUxODFiYThlOWUKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJVHVlIEp1bCA4IDExOjAyOjA1IDIwMDggLTA0MDAKCiAgICBBUk06IEZpeCBmb3Igd3JvbmcgcGF0Y2ggdmVyc2lvbiBhcHBsaWVkIGZvciBMeXJ0ZWNoIFNGRi1TRFIgYm9hcmQgKEFSTTkyNkVKUykKCiAgICBBUk06IEZpeCBmb3IgaW5jb3JyZWN0IHZlcnNpb24gb2YgcGF0Y2ggYXBwbGllZCB3aGVuCiAgICBhZGRpbmcgc3VwcG9ydCBmb3IgdGhlIEx5cnRlY2ggU0ZGLVNEUiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBoaWxpcCBCYWxpc3RlciwgT3BlblNEUiA8cGhpbGlwQG9wZW5zZHIuY29tPgoKY29tbWl0IDQ3MDQyYjM2M2VlNTAyMmI4MTgwYzY1ZDNmNDU1OGU3OTcyYzc5Y2QKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIEp1bCA4IDA5OjA4OjQwIDIwMDggKzA5MDAKCiAgICBSZW1vdmUgdXNlbGVzcyBwcmludCBtZXNzYWdlIGF0IGFwb2xsb24KCiAgICBSZW1vdmUgdXNlbGVzcyBwcmludCBtZXNzYWdlIGF0IGFwb2xsb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDk4ODc0ZmYzMjlkNGE1YjMyYzQ2N2I0M2Y2ZTk2NmUxYWE2ODQ3OWYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgNyAxNDoyNDozOSAyMDA4IC0wNTAwCgogICAgRml4IExNQiB0eXBlIGlzc3VlcwoKICAgIFRoZSBMTUIgY29kZSBub3cgdXNlcyBwaHlzX2FkZHJfdCBhbmQgcGh5c19zaXplX3QuCUFsc28sIHRoZXJlIHdlcmUgYSBjb3VwbGUKICAgIG9mIGNhc3RpbmcgcHJvYmxlbXMgaW4gdGhlIGJvb3RtIGNvZGUgdGhhdCBjYWxsZWQgdGhlIExNQiBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRhODY5M2E5MWI4ZWVmNzVhZGU4ZGU1MGExYjJjZTAzNWJjNWZiNTQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVsIDcgMDk6Mzk6MDYgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncwoKICAgIGdjYy00LjMueCBnZW5lcmF0ZXMgdGhlIGZvbGxvd2luZzoKCiAgICBib290bS5jOiBJbiBmdW5jdGlvbiAnZG9fYm9vdG1fbGludXgnOgogICAgYm9vdG0uYzoyMDg6IHdhcm5pbmc6IGNhc3QgZnJvbSBwb2ludGVyIHRvIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUKICAgIGJvb3RtLmM6MjE1OiB3YXJuaW5nOiBjYXN0IGZyb20gcG9pbnRlciB0byBpbnRlZ2VyIG9mIGRpZmZlcmVudCBzaXplCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1YmIxMmRiZDdhZTAzMTg5YjZjMTNkODczN2I1YTFiMzdjM2RmNjk4CkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQGdudW1vbmtzLm9yZz4KRGF0ZToJTW9uIEp1bCA3IDE1OjQwOjM5IDIwMDggKzA4MDAKCiAgICBSZW1vdmUgY29kZSBkdXBsaWNhdGlvbiBmb3Igc2V0dGluZyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudAoKICAgIGNvbW1vbi9lbnZfY29tbW9uLmMgKGRlZmF1bHRfZW52KTogbmV3IGZ1bmN0aW9uIHRoYXQgcmVzZXRzIHRoZSBlbnZpcm9ubWVudCB0bwoJCSAgICB0aGUgZGVmYXVsdCB2YWx1ZQogICAgY29tbW9uL2Vudl9jb21tb24uYyAoZW52X3JlbG9jYXRlKTogdXNlIGRlZmF1bHRfZW52IGluc3RlYWQgb2Ygb3duIGNvcHkKICAgIGNvbW1vbi9lbnZfbmFuZC5jIChlbnZfcmVsb2NhdGVfc3BlYyk6IHVzZSBkZWZhdWx0X2VudiBpbnN0ZWFkIG9mIG93biBjb3B5CiAgICBpbmNsdWRlL2Vudmlyb25tZW50Lmg6IGFkZGVkIGRlZmF1bHRfZW52IHByb3RvdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdlcm5lciBBbG1lc2JlcmdlciA8d2VybmVyQG9wZW5tb2tvLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgOTljMmI0MzRkMzc4NjNkZjVkZGE1MjA3YTUzNzYwYzY1MDZmYzJiZQpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJU3VuIEp1biAyMiAxNjoxMzo0NiAyMDA4ICswMjAwCgogICAgTkFORDogRml4IHdhcm5pbmcgZHVlIHRvIG1pc3NpbmcgZW52X3B0ciBjYXN0cyB0byB1X2NoYXIgKiBpbiBlbnZfbmFuZC5jLgoKICAgIFRoZSB3cml0ZWVudigpIGFuZCByZWFkZW52KCkgY2FsbHMgaW50cm9kdWNlZCBieSB0aGUgcmVjZW50bHkgYWRkZWQgYmFkIGJsb2NrCiAgICBtYW5hZ2VtZW50IGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2VyZSBtaXNzaW5nIGNhc3RzIHRoZXJlZm9yZSBwcm9kdWNpbmcKICAgIGNvbXBpbGUgdGltZSB3YXJuaW5ncy4KICAgIFdoaWxlIGF0IGl0IGZpeGluZyBzb21lIHR5cG8gaW4gYSBjb21tZW50IGFuZCBpbmRlbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMTY3YzUzODZlYTFjOThiNjM4YmU1ZDg3NjNlZjZkNTkzOGVmMWJkCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdW4gMjAgMTI6Mzg6NTcgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IFJlbmFtZSBERUJVRyB0byBNVERERUJVRyB0byBhdm9pZCBuYW1lc3BhY2UgcG9sbHV0aW9uLgoKICAgIFRoaXMgaXMgcGFydGljdWxhcmx5IHByb2JsZW1hdGljIG5vdyB0aGF0IG5vbi1OQU5ELXNwZWNpZmljIGNvZGUgaXMKICAgIGluY2x1ZGluZyA8bmFuZC5oPiwgYW5kIHRodXMgYWxsIGRlYnVnZ2luZyBjb2RlIGlzIGJlaW5nIGNvbXBpbGVkCiAgICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgd2FzIHJlcXVlc3RlZCwgYXMgcmVwb3J0ZWQgYnkgU2NvdHQgTWNOdXR0CiAgICA8c21jbnV0dEBwc3llbnQuY29tPi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjM2JmMWFkN2JhYTFiMGRkOTg5ZGVkYzI2MGI3MDk4YjYwODlhZTA1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgSnVuIDEyIDE5OjI3OjU4IDIwMDggKzAyMDAKCiAgICBtbWM6IE1vdmUgYXRtZWxfbWNpIGRyaXZlciBpbnRvIGRyaXZlcnMvbW1jCgogICAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gdXNlIHRoZSBkcml2ZXIgb24gb3RoZXIgcGxhdGZvcm1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBKZWFuLUNocml0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDJkNTRlYTQ0OTYzOWYzZDFhNjAwN2UzMzNhYjlmY2M2MDlhMThmMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IEp1biAxMiAxOToyNzo1NyAyMDA4ICswMjAwCgogICAgYXZyMzI6IFVzZSBDT05GSUdfQVRNRUxfTUNJIHRvIHNlbGVjdCB0aGUgYXRtZWxfbWNpIGRyaXZlcgoKICAgIEFmdGVyIHdlIG1vdmUgdGhlIGF0bWVsX21jaSBkcml2ZXIgaW50byBkcml2ZXJzL21tYywgd2UgY2FuJ3Qgc2VsZWN0CiAgICBpdCB3aXRoIENPTkZJR19NTUMgYW55bW9yZS4gSW50cm9kdWNlIGEgbmV3IHN5bWJvbCBzcGVjaWZpY2FsbHkgZm9yCiAgICB0aGlzIGRyaXZlciBzbyB0aGF0IHRoZXJlJ3Mgbm8gYW1iaWd1aXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBKZWFuLUNocml0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNWNlMTMwNTFhNDhjNjJiZGE5NzIzZGYzYjQ3NzhjNDkyZmI0N2YzNgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IEp1biAxMiAxOToyNzo1NiAyMDA4ICswMjAwCgogICAgQ3JlYXRlIGRyaXZlcnMvbW1jIHN1YmRpcmVjdG9yeQoKICAgIEluIG9yZGVyIHRvIGNvbnNvbGlkYXRlIG1vcmUgb2YgdGhlIHZhcmlvdXMgTU1DIGRyaXZlcnMgYXJvdW5kIHRoZQogICAgdHJlZSwgd2UgbXVzdCBmaXJzdCBoYXZlIGEgY29tbW9uIHBsYWNlIHRvIHB1dCB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBKZWFuLUNocml0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYjUwMjYxMWI1MWYwMjcxOGMyZDExMTdkNDk4MWRhYmNlYjVhZjZkZQpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPGpvYWtpbS50amVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglTdW4gSnVsIDYgMTI6MzA6MDkgMjAwOCArMDIwMAoKICAgIENoYW5nZSBlbnZfZ2V0X2NoYXIgZnJvbSBhIGdsb2JhbCBmdW5jdGlvbiBwdHIgdG8gYSBmdW5jdGlvbgoKICAgIFRoaXMgYXZvaWRzIGFuIGVhcmx5IGdsb2JhbCBkYXRhIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCAyNzI2OTQxN2FkZTQzMjE4OWIyMzRkOWZiYWM5OGI1NGUzN2I5NzhjCkF1dGhvcjogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+CkRhdGU6CVN1biBKdWwgNiAxMzo1Nzo1OCAyMDA4ICswNDAwCgogICAgU29tZSBjb3B5LW4tcGFzdGUgZml4ZXMgaW4gcHJpbnRmIHVzYWdlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+Cgpjb21taXQgMGU2OTg5YjlmYWYxNTg4ZTg3MjM1MzU1MzllODhhMGRmM2M3MTM1NgpBdXRob3I6IE1hdHZlamNoaWtvdiBJbHlhIDxtYXR2ZWpjaGlrb3ZAZ21haWwuY29tPgpEYXRlOglTdW4gSnVsIDYgMTM6NTc6MDAgMjAwOCArMDQwMAoKICAgIEZEVCBtZW1vcnkgYW5kIHBjaSBub2RlIGZpeGVzIGZvciBNUEM4MjYwQURTCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+Cgpjb21taXQgZGM0YjBiMzhkNGFhZGYwODgyNmY2YzMxMjcwZjFlZWNkMjc5NjRmZApBdXRob3I6IEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CkRhdGU6CU1vbiBKdWwgNyAwNjo0MToxNCAyMDA4IC0wNzAwCgogICAgRml4IHByaW50ZiBlcnJvcnMuCgogICAgVGhlIGNvbXBpbGVyIHdpbGwgaGVscCBmaW5kIG1pc21hdGNoZXMgYmV0d2VlbiBwcmludGYgZm9ybWF0cyBhbmQKICAgIGFyZ3VtZW50cyBpZiB5b3UgbGV0IGl0LiAgVGhpcyBwYXRjaCBhZGRzIHRoZSBuZWNlc3NhcnkgYXR0cmlidXRlcyB0bwogICAgZGVjbGFyYXRpb25zIGluIGluY2x1ZGUvY29tbW9uLmgsIHRoZW4gYmVnaW5zIHRvIGNvcnJlY3QgdGhlIHJlc3VsdGluZwogICAgY29tcGlsZXIgd2FybmluZ3MuCVNvbWUgb2YgdGhlc2Ugd2VyZSBidWdzLCBlLmcuLCAiJGQiIGluc3RlYWQgb2YKICAgICIlZCIgYW5kIGluY29ycmVjdCBhcmd1bWVudHMuICBPdGhlcnMgd2VyZSBqdXN0IGFubm95aW5nLCBsaWtlCiAgICBpbnQtbG9uZyBtaXNtYXRjaGVzIG9uIGEgc3lzdGVtIHdoZXJlIGJvdGggYXJlIDMyIGJpdHMuICBJdCdzIHdvcnRoCiAgICBmaXhpbmcgdGhlIGFubm95aW5nIGVycm9ycyB0byBjYXRjaCB0aGUgcmVhbCBvbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+Cgpjb21taXQgNDE3ZmFmMjg1YjI1MjdhY2IyZGUyNGM1Y2QzZTI2MjFkMzg1NDA4YwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTE6MDk6NDEgMjAwOCAtMDUwMAoKICAgIEFsbG93IHByaW50X3NpemUgdG8gcHJpbnQgaW4gR0IKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlN2MzNzQ1MjljODc1MjVjOWFhNDYzZTA1NTdjMjg3ODg3YWU0ZTllCkF1dGhvcjogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+CkRhdGU6CVN1biBKdW4gOCAyMzo1NjowMCAyMDA4IC0wNDAwCgogICAgbWlwczogV2hlbiBib290aW5nIExpbnV4IGltYWdlcywgYWRkICdldGhhZGRyJyBhbmQgJ2V0aDFhZGRyJyB0byB0aGUgZW52aXJvbm1lbnQKCiAgICBBZGQgJ2V0aGFkZHInIGFuZCAnZXRoMWFkZHInIHRvIHRoZSBMaW51eCBrZXJuZWwgZW52aXJvbm1lbnQgaWYKICAgIHRoZXkgYXJlIHNldCBpbiB0aGUgVS1Cb290IGVudmlyb25tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwMTkyZDdkNTZlOTMyMDgxOWRlYTI2MmY0OTc4OWFlMThmZGQyYzcyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDggMTI6NTc6MTQgMjAwOCArMDIwMAoKICAgIGplZGVjX2ZsYXNoOiBGaXggQU0yOURMODAwQkIgZGV2aWNlIElECgogICAgQXMgcG9pbnRlZCBvdXQgYnkgSmVycnkgSGlja3MsIHRoaXMgcGF0Y2ggY29ycmVjdHMgdGhlIGRldmljZSBJRCBvZgogICAgdGhlIFNwYW5zaW9uIEFNMjlETDgwMEJCIE5PUiBkZXZpY2UuIFZlcmlmaWVkIGFnYWluc3QgbGF0ZXN0IFNwYW5zaW9uCiAgICBkYXRhc2hlZXQgKHJldiBDNCBmcm9tIERlemVtYmVyIDIwMDYpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ODljMWIzMGNhYWNiYTNmYmNhMGIxODEzZmFjYjNhYjcwYjZjZDYzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglNb24gSnVsIDcgMTE6MjI6MzcgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggY29tcGlsZSBlcnJvciBzaDc3NjNyZHAgYm9hcmQKCiAgICBEaXNhYmxlIFNIIGV0aGVyIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgOWUyM2ZlMDU2MGI4NGUzMjRkYzVmMGZmODgxM2RhYjJhYTM0ZjA3NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEp1bCA4IDEyOjAzOjI0IDIwMDggKzA5MDAKCiAgICBzaDogRml4IFNILWJvYXJkcyBjb21waWxlIGVycm9yCgogICAgQnkgQ2xlYW51cCBvdXQtb3ItdHJlZSBidWlsZGluZyBmb3Igc29tZSBib2FyZHMgKC5kZXBlbmQpCiAgICAoY29tbWl0OmM4YTNiMTA5ZjA3ZjAyMzQyZDA5N2IzMDkwODk2NWY3MjYxZDlmMTUpCiAgICBiZWNhdXNlIGZpbHNlIHdhcmUgY2hhbmdlZCwgc29tZSBTSC1ib2FyZHMgaGF2ZSBjb21waWxlIGVycm9yLgogICAgSSByZXZpc2VkIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzQ3M2FiNzM3MjgyYjA4YWQ2MTg0MWZjYmIxNGM0ZDI2NGE5M2E4ZQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMTMgMTE6NTA6MzYgMjAwOCArMDgwMAoKICAgIEZlZWQgdGhlIHdhdGNoZG9nIGluIHUtYm9vdCBmb3IgODYxMCBib2FyZC4KCiAgICBUaGUgd2F0Y2hkb2cgb24gODYxMCBib2FyZCBpcyBlbmFibGVkIGJ5IHNldHRpbmcgc3dbNl0KICAgIHRvIG9uLiBPbmNlIGVuYWJsZWQsIHRoZSB3YXRjaGRvZyBjYW4gbm90IGJlIGRpc2FibGVkCiAgICBieSBzb2Z0d2FyZS4gU28gZmVlZCB0aGUgZG9nIGluIHUtYm9vdCBpcyBuZWNlc3NhcnkgZm9yCiAgICBub3JtYWwgb3BlcmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjM2NzY4NDFjYTJkNjAzYjEzNzY1ZjNmN2I3MmZmMWE2MWMyM2Y5MApBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglXZWQgSnVuIDE4IDEyOjEwOjMzIDIwMDggLTA0MDAKCiAgICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgaW4gY3B1L2FybTkyNmVqcy9kYXZpbmNpL2x4dDk3Mi5jLgoKICAgIFJlbW92ZSBkdXBsaWNhdGUgY29kZSBpbiBjcHUvYXJtOTI2ZWpzL2RhdmluY2kvbHh0OTcyLmMuCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIGEgaWYvZWxzZSBibG9jayBpbgogICAgY3B1L2FybTkyNmVqcy9kYXZpbmNpL2x4dDk3Mi5jLgogICAgRml4ZWQgc3R5bGUgaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmZWM2MTQzMWEwMDNmNTc3OGJhZmEyNjI0MDczYTU3MWFmOGJlYzlmCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVdlZCBKdW4gMTggMTI6MTA6MzEgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbnMgaW4gaW5jbHVkZS9seHQ5NzFhLmguCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBpbiBpbmNsdWRlL2x4dDk3MWEuaC4KCiAgICBSZW1vdmUgZHVwbGljYXRlIHJlZ2lzdGVycyBhbmQgYml0cyBkZWZpbml0aW9ucyBpbgogICAgaW5jbHVkZS9seHQ5NzFhLmggZm9yIHN0YW5kYXJkIE1JSSByZWdpc3RlcnMsIGFuZAogICAgdXNlIHZhbHVlcyBpbiBpbmNsdWRlL21paXBoeS5oIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk3NTFlZTA5OTBmNDY3OTQxZGEwYjA5NWE0ZTk5NWY4NjM2NzJkN2EKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBKdW4gMTEgMjE6MDU6MDAgMjAwOCArMDkwMAoKICAgIG5ldDogc2g6IFJlbmVzYXMgU0g3NzYzIEV0aGVybmV0IGRldmljZSBzdXBwb3J0CgogICAgUmVuZXNhcyBTSDc3NjMgaGFzIDIgY2hhbm5lbCBFdGhlcm5ldCBkZXZpY2UuCiAgICBUaGlzIGlzIDEwLzEwMC8xMDAwIEJhc2Ugc3VwcG9ydC4KICAgIEJ1dCB0aGlzIHBhdGNoIGNoZWNrIDEwLzEwMCBCYXNlIG9ubHkuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4NzNkOTdhYWJjMGIxYzg4MjJlZDFkODdlOGM1YzhhZTBhN2U0YWU5CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgSnVuIDE3IDE2OjI4OjA1IDIwMDggKzA5MDAKCiAgICBzaDogVXBkYXRlIFJlbmVzYXMgUjJEUGx1cyBib2FyZAoKICAgIE5ldyBOT1IgRmxhc2ggYm9hcmQgc3VwcG9ydCBhbmQgcmVtb3ZlIG9sZCB0eXBlIGZsYXNoIGJvYXJkIGNvbmZpZy4KICAgIEFuZCBSZW1vdmUgbmV0d29yayBzZXR0aW5nIGZyb20gY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGVjMzlkNDc5ZDIwMDNmMTVlODZlMjNlYmM0ZTAyYTFjOWEzYTE4MWMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjg6MDEgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgUmVuZXNhcyBSNzc4ME1QIGJvYXJkCgogICAgTmV3IE5PUiBGbGFzaCBib2FyZCBzdXBwb3J0IGFuZCByZW1vdmUgbmV0d29yayBzZXR0aW5nIGZyb20gY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGMwMDFjZDYwNGU5ZjEzMzc0M2VmZmJkZGIxYzIxNWI0OGU3NjFjNWEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjc6NTYgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgUmVuZXNhcyBNaWdvLVIgYm9hcmQKCiAgICBSZW1vdmUgbmV0d29yayBzZXR0aW5nIGZyb20gY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGY5NTk5ZWNhN2NiNWViZTQwZTUzMDVjODAwNmRjZWQ2ZWNjNWNkOWUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjc6NTIgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgSGl0YWNoaSBNUzc3MjJTRSBib2FyZAoKICAgIFJlbW92ZSBuZXR3b3JrIHNldHRpbmcgZnJvbSBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMjYyMDllNDhlODc5MTY3MGM5MzEwODAyOWE1YzMxYTMwMDE2YzZkZgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNjoyNzo0OCAyMDA4ICswOTAwCgogICAgc2g6IENsZWFudXAgc291cmNlIGNvZGUgb2YgU0g3NzYzUkRQCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDVjZDViMmM5NmVmMDAyNTc2MjkzMTM0OWQzNTAyODdhZWMwM2FiNDcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjc6NDQgMjAwOCArMDkwMAoKICAgIHNoOiBDbGVhbnVwIHNvdXJjZSBjb2RlIG9mIFIyRFBsdXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNGVjN2U5MTVjZmFhMzFiMzkyNzU1ZGQyYzgyMzFlNjQ3MzZkMmVhOApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNjoyNzo0MSAyMDA4ICswOTAwCgogICAgc2g6IENsZWFudXAgc291cmNlIGNvZGUgb2YgUjc3ODBNUAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwOTU1ZWYzNGMwNDU0YWUyZWU1OWE3ODY1N2EwZjAxZmIzZWYxNmQ2CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgSnVuIDE3IDE2OjI3OjM4IDIwMDggKzA5MDAKCiAgICBzaDogQ2xlYW51cCBzb3VyY2UgY29kZSBvZiBNUzc3MjJTRQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAxZDdiMzFkOTdiMzRjY2I2ZjliMjBhMjQ2NTg2NDk5OGIwYmYyNjkxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgSnVuIDE3IDE2OjI3OjM0IDIwMDggKzA5MDAKCiAgICBzaDogQ2xlYW51cCBzb3VyY2UgY29kZSBvZiBNUzc3MjBTRQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzYWI0ODI3Y2JlNDA5NDg4ZWJlYTFhMmVlNTA5NDc4M2YyNjcyMjE0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCA3IDAwOjQ1OjAzIDIwMDggKzAyMDAKCiAgICBTSDogZml4IG91dCBvZiB0cmVlIGJ1aWxkaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MDQ3YmZhMWU3MzdkNzg3YmU0NjAzODdkZDZmNDU3MzdlZWNlYjEwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUaHUgSnVsIDMgMjM6MTY6MDYgMjAwOCArMDkwMAoKICAgIG5ldDogc21jOTExeDogRml4IHR5cG8KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+Cgpjb21taXQgNWVkNTQ2ZmRkMGNhNDZhMTY1NjYxYzIwMDlmYTc0M2Q5YzlmY2VjYQpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJV2VkIEp1bCAyIDE4OjU0OjA4IDIwMDggKzAyMDAKCiAgICB1cGRhdGUgbXZCTC1NNyBib2FyZCBjb25maWcKCiAgICB1cGRhdGUgbXZCTC1NNyBjb25maWcgZmlsZSB0byB1c2UgVUJPT1RfVkVSU0lPTiBhbmQgZGVmaW5lCiAgICBDT05GSUdfSElHSF9CQVRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KCmNvbW1pdCA1Y2FjYzVkMGVjNTI2NzhhNWViODNlY2RhNWMzYmNiMjJlYjQ3ZjMwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglNb24gSnVuIDMwIDE3OjQ1OjAxIDIwMDggKzA5MDAKCiAgICBuZXQ6IGZpeCBjb21waWxlIHByb2JsZW0gaW4gc21jOTExeCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOWZlYTY1YTZjNDY5YjFiNDc0YjI3NDQ2ZmViNTg3MzhiYWJhMmQzMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIEp1biAyNCAwOTo1NDowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW5hbWUgQ09ORklHX1hJTElOWF9NTDMwMCB0byBDT05GSUdfWElMSU5YXzQwNQoKICAgIFRoaXMgY2hhbmdlIGhlbHBzIHdpdGggYmV0dGVyIGhhbmRsaW5nIHdpdGggb3RoZXJzCiAgICBYaWxpbnggYmFzZWQgcGxhdGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYmI2Mjg5NTY5YWU0ZmM2ZTJkNjc2NTI4ZTQ2ZmZjYzcyZDc0M2QwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSnVuIDE3IDEzOjA3OjExIDIwMDggKzA5MDAKCiAgICBuZXQ6IG5lMjAwMDogTW92ZSBkZXZfYWRkciB2YXJpYWJsZSBmcm9tIGdyb2JhbCB0byBsb2NhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGRkN2U1ZmE1Zjg0NzE4OGY3OGY2MmYyYzUyZGU2Y2IzZGVmM2VjZGIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKdW4gMTcgMTM6MDc6MTUgMjAwOCArMDkwMAoKICAgIG5ldDogbmUyMDAwOiBGaXggY29tcGlsZSBlcnJvciBvZiBORTIwMDAKCiAgICBJZiBlbmFibGUgREVCVUcsIGNhbiBub3QgY29tcGlsZSBuZTIwMDAgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZGQzNTQ3OWE1MGY2YzdjMzFlYTQ5MWMwN2M1MjAwYzZkZmQwNmEyNApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CU1vbiBKdW4gMjMgMjI6NTc6MjcgMjAwOCAtMDcwMAoKICAgIEFkZCBtZWNoYW5pc21zIGZvciBDUFUgYW5kIGJvYXJkLXNwZWNpZmljIEV0aGVybmV0IGluaXRpYWxpemF0aW9uCgogICAgVGhpcyBwYXRjaCBpcyB0aGUgZmlyc3Qgc3RlcCBpbiBjbGVhbmluZyB1cCBuZXQvZXRoLmMsIGJ5IG1vdmluZyBFdGhlcm5ldAogICAgaW5pdGlhbGl6YXRpb24gdG8gQ1BVIG9yIGJvYXJkLXNwZWNpZmljIGNvZGUuICBJbml0aWFsIGltcGxlbWVudGF0aW9uIGlzCiAgICBvbmx5IG9uIHRoZSBGcmVlc2NhbGUgVFNFQyBjb250cm9sbGVyLCBidXQgb3RoZXJzIHdpbGwgYmUgYWRkZWQgc29vbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDc3NTRmMmJlNWQxODM1ZDI2M2FhZDIxYjVhNjI5NTI2ZjNlNjgwYjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSnVsIDYgMDE6MjE6NDYgMjAwOCArMDIwMAoKICAgIGluY2x1ZGUvc2hhMjU2Lmg6IGZpeCBmaWxlIHBlcm1pc3Npb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDNiY2RmODM4ZTI5OTFkNTg1NzEzMDhmYTZlMDRjYTMzNWJjMDZlOApBdXRob3I6IFBhdHJpY2UgVmlsY2hleiA8cGF0cmljZS52aWxjaGV6QGF0bWVsLmNvbT4KRGF0ZToJVHVlIE1heSAyNyAxMToxNToyOSAyMDA4ICswMjAwCgogICAgW0FUOTFTQU05XSBGaXggTkFORCBGTEFTSCB0aW1pbmdzCgogICAgRml4IE5BTkQgRkxBU0ggdGltaW5ncyBmb3IgYXQ5MXNhbTl4IGV2YWx1YXRpb24ga2l0cy4KCiAgICBOZXcgdGltaW5ncyBhcmUgYmFzZWQgb24gYXBwbGljYXRpb24gbm90ZQogICAgIk5BTkQgRmxhc2ggU3VwcG9ydCBvbiBBVDkxU0FNOSBNaWNyb2NvbnRyb2xsZXJzIiBhdmFpbGFibGUgYXQKICAgIGh0dHA6Ly9hdG1lbC5jb20vZHluL3Jlc291cmNlcy9wcm9kX2RvY3VtZW50cy9kb2M2MjU1LnBkZgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdHJpY2UgVmlsY2hleiA8cGF0aWNlLnZpbGNoZXpAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDE5YmQ2ODg0ODQzMjJmZTYyZDFhNjZjODI5OWRhNmZmOWU5NjdmZjkKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDIyIDAwOjE1OjQwIDIwMDggKzAyMDAKCiAgICBGaXggYm9vdCBmcm9tIE5PUiBkdWUgdG8gaW5jb3JyZWN0IHJlc2V0IGRlbGF5LgoKICAgIEFUOTEgUlNUQyByZWdpc3RlcnMgYXJlIGJhdHRlcnktYmFja3VwZWQsIHNvIHRoZWlyIHZhbHVlcwogICAgYXJlIG5vdCByZXNldCBhY3Jvc3MgcG93ZXIgY3ljbGVzLiBPbmUgb2YgdGhvc2UgcmVnaXN0ZXJzLAogICAgdGhlIEFUOTFfUlNUQ19NUiByZWdpc3RlciwgaXMgYmVpbmcgbW9kaWZpZWQgYnkgVS1Cb290LCBpbgogICAgdGhlIGV0aGVybmV0IGluaXRpYWxpc2F0aW9uIHJvdXRpbmUsIHRvIGdlbmVyYXRlIGEgNTAwbXMKICAgIHVzZXIgcmVzZXQuCgogICAgVW5mb3J0dW5hdGVseSwgdGhpcyB2YWx1ZSBpcyBub3QgYmVpbmcgcmVzdG9yZWQgYWZ0ZXJ3YXJkcywKICAgIGNhdXNpbmcgc3Vic2VxdWVudCByZXNldHMgdG8gYWxzbyBsYXN0IGZvciA1MDBtcy4KCiAgICBUaGlzIGxvbmcgcmVzZXQgc2VxdWVuY2UgY2F1c2VzIHByb2JsZW1zIChhdCBsZWFzdCkgaW4gdGhlCiAgICBib290IHNlcXVlbmNlIGZyb20gTk9SOiBieSB0aGUgdGltZSB0aGUgQ1BVIHRyaWVzIHRvIGxvYWQKICAgIGEgcHJvZ3JhbSBmcm9tIHRoZSBOT1IgZmxhc2gsIHRoZSBsYXR0ZXIgaXMgc3RpbGwgaW4gcmVzZXQKICAgIGFuZCBub3QgeWV0IGF2YWlsYWJsZS4KCiAgICBBZGRpdGlvbmFseSwgdGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgb3JpZ2luYWwgY29kZSB3aGljaAogICAgY2F1c2VkIHRoZSByZXNldCBkZWxheSB0byBsYXN0IGZvciAycyBpbnN0ZWFkIG9mIDUwMG1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY0OTJkZDYzNmZiYmFlNTI5ZTE3NTMzOTk1YmM2ZTU4MTNjMDA3ZjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDQgMjA6MTE6NDkgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVlNmUzNTBmYzQ4OWFhMTk0MDJmMWU3OTAzN2RkOGMwYTRiYmQ3M2QKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDQgMjA6MDc6MzUgMjAwOCArMDIwMAoKICAgIENDTS9TQ00gYm9hcmRzOiBmaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFiNGMzYTQ5MGRmOWE5NjQ3MTE1NTZkMmEwNWIwYzc4N2RiNDVmZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMgMjM6MjI6MjcgMjAwOCArMDIwMAoKICAgIFNDTSBib2FyZDogZml4IGJ1aWxkIGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE1NjY0NjZmMTdiYTBlMmQyYjZjMjUwZTc3ZGE2NzhmYjkzMjQ3MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMgMjM6MDY6MzYgMjAwOCArMDIwMAoKICAgIElBRDIxMCBib2FyZDogZml4IGBgIkFMSUdOIiByZWRlZmluZWQnJyB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWQ3NTYzMTQ3OTdjMTZmYTVkY2EyM2UxMTVhYWI4ODEwMTFmMTY0ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMyAyMzowMDoyNCAyMDA4ICswMjAwCgogICAgQ0NNIGJvYXJkOiBmaXggYnVpbGQgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjE2ZWQ1MTcwMmNiOWZiNmZhMmUwMTliYmMwZmNkMTQ2NmI1N2MzYgpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJV2VkIEp1bCAyIDE4OjU0OjA4IDIwMDggKzAyMDAKCiAgICB1cGRhdGUgbXZCTC1NNyBib2FyZCBjb25maWcKCiAgICB1cGRhdGUgbXZCTC1NNyBjb25maWcgZmlsZSB0byB1c2UgVUJPT1RfVkVSU0lPTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNlZDIwOWM1MGU4MGMyNWYxM2MwODMwOTliMDUwNDQwNDhkMjFmNGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMgMjI6Mzk6MjEgMjAwOCArMDIwMAoKICAgIHNhY3NuZyBib2FyZDogZml4IHdhcm5pbmdzICJzdWdnZXN0IGV4cGxpY2l0IGJyYWNlcyB0byBhdm9pZCBhbWJpZ3VvdXMgJ2Vsc2UnIgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNGZmMTcwYTgxODBhNzlkYTRjZGFhYjFiMzBkNThjZDdiNmJlNTY1ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMyAyMjozNDowOCAyMDA4ICswMjAwCgogICAgQ2xlYW51cDogZml4ICJleHBlY3RlZCBzcGVjaWZpZXItcXVhbGlmaWVyLWxpc3QgYmVmb3JlICdwaHlzX3NpemVfdCciIGVycm9ycwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzMwZjI5ODQ4NTk4NGIwMTFiNmVlOGY0YWNiNTExY2I0NWE4NDNkZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMyAyMjowNDoxNyAyMDA4ICswMjAwCgogICAgbG1iOiBmaXggImltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdsbWJfZnJlZSciIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDMyMmVmNWUyOGQyZGM2MjU3MWFmYzY5OWIwMGFkZDIyYThlMDA2ZTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDIgMjM6NTM6MjMgMjAwOCArMDIwMAoKICAgIENsZWFudXA6IHJlbW92ZSByZWR1bmRhbnQgZGVsZXRpbmcgb24gKn4gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM4YTNiMTA5ZjA3ZjAyMzQyZDA5N2IzMDkwODk2NWY3MjYxZDlmMTUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDIgMjM6NDk6MTggMjAwOCArMDIwMAoKICAgIENsZWFudXAgb3V0LW9yLXRyZWUgYnVpbGRpbmcgZm9yIHNvbWUgYm9hcmRzICguZGVwZW5kKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTMwY2M1YTM0MGU3ZjhmNWY4NWEwZTA4ZTdmNmM0MTA2Y2UxMTdjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMiAyMzozODo1MCAyMDA4ICswMjAwCgogICAgQ2xlYW51cDogZml4IG91dC1vZi10cmVlIGJ1aWxkaW5nIGZvciBzb21lIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDYxZmE2OGQyMDg2MTgxMTQ4Nzk0NGQyMjI5MWRiNWExMzQxMGUyMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMiAyMzowMDoxNCAyMDA4ICswMjAwCgogICAgQ2xlYW51cDogcmVwbGFjZSBoYXJkLXdpcmVkICQoQVIpICdjcnYnIHNldHRpbmdzIGJ5ICQoQVJGTEFHUykKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU5ODFlYmQzMjAxN2UwNjJiMDhhYTY3NDdjZjU5MTI3NmYyZGI3NzkKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMCAyMjoyNjoyNCAyMDA4ICswMjAwCgogICAgZmR0OiBGaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IGE3YTU5ODJjZDBmMzQ4MmY4ODIyNWFmNGRhNzc5NWJjNGY2Y2I5YmMKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KRGF0ZToJVGh1IEp1biAxOSAxMToxMToxOSAyMDA4ICswMjAwCgogICAgQWRkIGxvZ29zIGZvciBSUnZpc2lvbiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgoKY29tbWl0IGVlNGFlMzgzNDIxNDIyMzdjYTg1OTEzZjg4ZWU1NzBjMWViNWNhN2MKQXV0aG9yOiBFc2JlbiBIYWFiZW5kYWwgPEVzYmVuSGFhYmVuZGFsQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1biAxOCAxMTowMzo1NyAyMDA4ICswMjAwCgogICAgbXBjODI2MDogYWRkIGZkdF9maXh1cF9ldGhlcm5ldCBzdXBwb3J0CgogICAgQWRkIHN1cHBvcnQgZm9yIHVwZGF0aW5nIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcyBpbiBmZHQgZm9yCiAgICBhbGwgTVBDODI2MCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVzYmVuIEhhYWJlbmRhbCA8ZWhhQGRvcmVkZXZlbG9wbWVudC5kaz4KCmNvbW1pdCBmNmE2OTU1OWQ2NDQ5OGEwNGUxZTBiMDg3YTliOTIwZTU3NzVmODY2CkF1dGhvcjogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KRGF0ZToJVGh1IEp1biAxMiAxMzoyNDo0MiAyMDA4IC0wNDAwCgogICAgY21kX252ZWRpdC5jOiBjbGVhbiB1cCBzeW50YXggaGlnaGxpZ2h0aW5nCgogICAgTXkgdGV4dC1lZGl0b3IgKHZpbSkgaGFzIGEgYml0IG9mIHRyb3VibGUgc3ludGF4LWhpZ2hsaWdodGluZyB0aGUKICAgIGNtZF9udmVkaXQuYyBmaWxlLCBiZWNhdXNlIGl0IGFwcGFyZW50bHkgZG9lcyBub3QgcGFyc2UgQwogICAgaWZkZWYvZWxzZS9lbmRpZi4gVGhlIGZvbGxvd2luZyBwYXRjaCBkb2VzIG5vdCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mCiAgICB0aGUgY29kZSBhdCBhbGwsIGJ1dCBkb2VzIGFsbG93IHRoZSBlZGl0b3IgdG8gcHJvcGVybHkKICAgIHN5bnRheC1oaWdobGlnaHQgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmUgRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgoKY29tbWl0IDc1Njc4YzgwN2E2MjcyZWNjNTU0MWViMzI4OThjOTM4ODdmMDg0MDAKQXV0aG9yOiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgpEYXRlOglUaHUgSnVuIDEyIDEzOjIyOjEyIDIwMDggLTA0MDAKCiAgICBNYWtlIHNldGVudigpIHJldHVybiBzdGF0dXMKCiAgICBDdXJyZW50bHksIHRoZSBzZXRlbnYgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFuIGVycm9yIGNvZGUuCiAgICBUaGlzIHBhdGNoIGFsbG93cyB0byB0ZXN0IGZvciBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmUgRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgoKY29tbWl0IDQ5MjhlOTdjODUzMTI4M2NhOWIzNjhiN2MyOWE4YTEyZTcyNjU2MmEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSnVuIDExIDEwOjE0OjA2IDIwMDggLTA1MDAKCiAgICBQUEM6IEFkZGVkIGZscywgZmxzNjQsIF9faWxvZzJfdTY0LCBhbmQgZmZzNjQgdG8gYml0b3BzCgogICAgZmxzNjQsIF9faWxvZzJfdTY0LCBmZnM2NCBhcmUgdmFyaWFudHMgdGhhdCB3b3JrIG9uIGFuIHU2NCwKICAgIGFuZCBmbHMgaXMgdXNlZCB0byBpbXBsZW1lbnQgdGhlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgzMDAyYTc3Y2JkZjM4MzAxNWNhMzg0ZWZmNWZhMzE3MjJkOGU1NzEKQXV0aG9yOiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+CkRhdGU6CU1vbiBKdW4gOSAyMjo1ODo0OCAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBDbGVhbnVwIGNvbW1lbnRzIGluIGxvd2xldmVsX2luaXQuUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgZjhjYzMxMmJiZWU2OTI1N2Q3NDFkYzlmNDA2MmY0YTBmNWFkZjYwOQpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBKdW4gOCAyMzoyODozMyAyMDA4IC0wNzAwCgogICAgTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvZiBNUEM4WFhYIFNQSSBkcml2ZXIgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGQ5MmVhMjFiYWZiNjc0ZWUyYmYyNzQ0Nzk3MGIwNDc4NDVlN2IwYTIKQXV0aG9yOiBKdWVyZ2VuIEtpbGIgPEouS2lsYkBnbXguZGU+CkRhdGU6CVN1biBKdW4gOCAxNzo1OTo1MyAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBmaXhlZCBDVFJMLUMgZGV0ZWN0aW9uCgogICAgVGhlIFJlZ2lzdGVyIFVSWEQgY29udGFpbnMgc3RhdHVzIGluZm9ybWF0aW9uIGluIGJpdHMgWzE1Li44XS4KICAgIFdpdGggc3RhdHVzIGJpdCAxNSBzZXQsIENUUkwtQyB3YXMgcmVwb3J0ZWQgYXMgMHg4MDAzIGluc3RlYWQKICAgIG9mIDB4MDMuIFRoZXJlZm9yZSBDVFJMLUMgd2FzIG5vdCBkZXRlY3RlZC4KICAgIFRvIHNvbHZlIHRoaXMsIGJpdHMgWzE1Li44XSB3ZXJlIG1hc2tlZCBvdXQgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gS2lsYiA8Si5LaWxiQGdteC5kZT4KICAgIEFja2VkLWJ5OiBGZWxpeCBSYWRlbnNreSA8ZmVsaXhAZW1iZWRkZWQtc29sLmNvbT4KCmNvbW1pdCBkZDFjNTUyM2Q2ZjQ0ZTg0MmU2OWYyZmNiNTA3ODhjNjA2MGVhYjg2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDEgMTc6MDM6MTkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IDQ2MEVYL0dUIFBDSWUgcG9ydCBpbml0aWFsaXphdGlvbgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgdGhlIDQ2MEVYL0dUIFBDSWUgVVRMU0VUMSByZWdpc3RlciB3YXMKICAgIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkuIFRoYW5rcyB0byBPbGdhIEJ1Y2hvbmluYSBmcm9tIEFNQ0MgZm9yIHBvaW50aW5nCiAgICB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjU3MWFmZGUwMjk1YjAwN2E0NTA1NWVlNDlmODgyMmM3NTNhNTY1MQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKdW4gNyAxMjoyOTo1MiAyMDA4ICswMjAwCgogICAgYWRkIFNIQTI1NiBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEZyYW5jZXNjbyBBbGJhbmVzZSA8RnJhbmNlc2NvLkFsYmFuZXNlQHN3aXNzY29tLmNvbT4KCmNvbW1pdCAzYmFiNzZhMjZlMDNkZjRmZjgxMzQyZmNjMTYzOTNjZTM3ZDk3NjZiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biA2IDIzOjA3OjQwIDIwMDggKzAyMDAKCiAgICBEZWxheSBGSVQgZm9ybWF0IGNoZWNrIG9uIHNlY3RvciBiYXNlZCBkZXZpY2VzCgogICAgR2xvYmFsIEZJVCBpbWFnZSBvcGVyYXRpb25zIGxpa2UgZm9ybWF0IGNoZWNrIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24KICAgIGEgZmlyc3Qgc2VjdG9yIGRhdGEsIGRlZmVyIHRoZW0gdG8gdGhlIHBvaW50IHdoZW4gd2hvbGUgRklUIGltYWdlIHdhcwogICAgdXBsb2FkZWQgdG8gYSBzeXN0ZW0gUkFNLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBQYXJ0aWFsICgnY21kX25hbmQnIGNhc2UpIEFja2VkLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgogICAgTkFORCBhbmQgRE9DIGJpdHMgQWNrZWQtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4MTAyNjNhZmVjNWFjNWYzOGY5Mjk2M2JiM2I2ZDc5OWU0MzMxZDAKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMyAxNzozODoxOSAyMDA4ICswODAwCgogICAgc2F0YTogd2FpdCBmb3IgZGV2aWNlIHVwZGF0aW5nIHNpZ25hdHVyZSB0byBob3N0CgogICAgVGhlIGRyaXZlciBuZWVkIHdhaXQgZm9yIHRoZSBkZXZpY2UgdXBkYXRpbmcgc2lnbmF0dXJlIHRvIGhvc3QuCiAgICBJZiB3ZSBkb24ndCB3YWl0IGZvciBpdCwgdGhlIGRyaXZlciBjYW4gbm90IGRldGVjdCB0aGUgZGV2aWNlKGRpc2spCiAgICB3aGVuIHRoZSBzeXN0ZW0gcG93ZXJzIHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzQ1ZDhhMGQzY2VhODJlNmQxNzUzZTE0YWZiNDU4OGMzNDc2MWIxNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEp1biAyOCAxNDo1NjoxNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggNDYwRVggZXJyYXRhIHdpdGggQ1BVIGxvY2t1cCB1cG9uIGhpZ2ggQUhCIHRyYWZmaWMKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgYSBmaXggcHJvdmlkZWQgYnkgQU1DQyBzbyB0aGF0IHRoZSBsb2NrdXAgdXBvbgogICAgc2ltdWx0YW5pb3VzIHRyYWZmaWMgb24gQUhCIFVTQiBPVEcsIFVTQiAyLjAgYW5kIFNBVEEgZG9lc24ndCBvY2N1cgogICAgYW55bW9yZToKCiAgICBTZXQgU0RSMF9BSEJfQ0ZHW0EyUF9JTkNSNF0gKGJpdCAyNCkgYW5kIGNsZWFyIFNEUjBfQUhCX0NGR1tBMlBfUFJPVDJdCiAgICAoYml0IDI1KSBmb3IgYSBuZXcgNDYwRVggZXJyYXRhIHJlZ2FyZGluZyBjb25jdXJyZW50IHVzZSBvZiBBSEIgVVNCIE9URywKICAgIFVTQiAyLjAgaG9zdCBhbmQgU0FUQS4KCiAgICBUaGlzIGVycmF0YSBpcyBub3Qgb2ZmaWNpYWxseSBhdmFpbGFibGUgeWV0LiBJJ2xsIHVwZGF0ZSB0aGUgY29tbWVudAogICAgdG8gYWRkIHRoZSBlcnJhdGEgbnVtYmVyIGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YjYxNmVkYjExOGUzN2QwNWY2NDAxMzg5ZWFlZTFjNjM2YjIyODI4CkF1dGhvcjogU3R1YXJ0IFdvb2QgPHN0dWFydC53b29kQGxhYnh0ZWNobm9sb2dpZXMuY29tPgpEYXRlOglNb24gSnVuIDIgMTY6NDI6MTkgMjAwOCAtMDQwMAoKICAgIHNlcmlhbF9wbDAxMC5jOiBhZGQgd2F0Y2hkb2cgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0dWFydCBXb29kIDxzdHVhcnQud29vZEBsYWJ4dGVjaG5vbG9naWVzLmNvbT4KCmNvbW1pdCA4NmQzMjczZTJiN2JlM2ZmZmI0NWUyMGMwODUzNWQ2YWQzYWRlZDZiCkF1dGhvcjogU3R1YXJ0IFdvb2QgPHN0dWFydC53b29kQGxhYnh0ZWNobm9sb2dpZXMuY29tPgpEYXRlOglNb24gSnVuIDIgMTY6NDA6MDggMjAwOCAtMDQwMAoKICAgIGpmZnMyXzFwYXNzLmM6IGFkZCB3YXRjaGRvZyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3R1YXJ0IFdvb2QgPHN0dWFydC53b29kQGxhYnh0ZWNobm9sb2dpZXMuY29tPgoKY29tbWl0IDU3NDRkZGM2NjM3ZmVhNGY3YjkxMWE1NGE1ZmE4NjBjYjgxYTVkODkKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgpEYXRlOglGcmkgTWF5IDMwIDA5OjQ4OjE0IDIwMDggKzAyMDAKCiAgICBDb25maWd1cmUgRFNQIFBPU1Q7IGFkZCB3YXRjaGRvZyByZXNldCB0byBkaWFnIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgoKY29tbWl0IGYxMzUyNjUxNzg1OWJmNmI1NzNlMjNmZjQ3MTk5ZTEwN2QxMDA5YjUKQXV0aG9yOiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgpEYXRlOglUaHUgTWF5IDI5IDEwOjQwOjE3IDIwMDggKzAyMDAKCiAgICBBZGQgc2F0YSBzaWwzMTE0IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgoKY29tbWl0IGUwOTNhMjQ3NjI4MjI4MTAwZjQwNWI2ZDdmNmIxYmZjMTYxNDE5MzgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSnVuIDI4IDIzOjM0OjM3IDIwMDggKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgQ2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDFkYjIzMmRkN2EwY2ViODEyMDhhOWYyNTQ1NzIwYzgwZTViZmQ4MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKdW4gMjggMjM6MTY6MDEgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM3Zjg3OWVjMmIzODljNGYyYmY3MjZiMjkzYmQ1MTZmNGM2OTJlMDMKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJV2VkIE1heSAyMSAxMzo1ODo0MSAyMDA4IC0wNDAwCgogICAgQVJNOiBBZGQgc3VwcG9ydCBmb3IgTHlydGVjaCBTRkYtU0RSIGJvYXJkIChBUk05MjZFSlMpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBMeXJ0ZWNoIFNGRi1TRFIgYm9hcmQsCiAgICBiYXNlZCBvbiB0aGUgVEkgRGFWaW5jaSBhcmNoaXRlY3R1cmUgKEFSTTkyNkVKUykuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQaGlsaXAgQmFsaXN0ZXIgPHBoaWxpcEBiYWxpc3Rlci5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDM0MTE4OGI5Y2NhYThkNDQ2MmQ3NzJjYzA2N2FjYThkNzYxODYzM2EKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBNYXkgMjIgMTE6MDk6NTkgMjAwOCArMDIwMAoKICAgIE1NQzogQ29uc29saWRhdGUgTU1DL1NEIGNvbW1hbmQgZGVmaW5pdGlvbnMKCiAgICBUaGlzIG1vdmVzIHRoZSBNTUMgYW5kIFNEIENhcmQgY29tbWFuZCBkZWZpbml0aW9ucyBmcm9tCiAgICBpbmNsdWRlL2FzbS9hcmNoL21tYy5oIGludG8gaW5jbHVkZS9tbWMuaC4gVGhlc2UgZGVmaW5pdGlvbnMgYXJlCiAgICBnaXZlbiBieSB0aGUgTU1DIGFuZCBTRCBDYXJkIHN0YW5kYXJkcywgbm90IGJ5IGFueSBwYXJ0aWN1bGFyCiAgICBhcmNoaXRlY3R1cmUuCgogICAgVGhlcmUncyBhIGxvdCBtb3JlIHJvb20gZm9yIGNvbnNvbGlkYXRpb24gaW4gdGhlIE1NQyBkcml2ZXJzIHdoaWNoCiAgICBJJ20gaG9waW5nIHRvIGdldCBkb25lIGV2ZW50dWFsbHksIGJ1dCB0aGlzIHBhdGNoIGlzIGEgc3RhcnQuCgogICAgQ29tcGlsZS10ZXN0ZWQgZm9yIGFsbCBhdnIzMiBib2FyZHMgYXMgd2VsbCBhcyBscGMyMjkyc29kaW1tIGFuZAogICAgbHViYm9jay4gVGhpcyBzaG91bGQgY292ZXIgYWxsIHRocmVlIG1tYyBkcml2ZXJzIGluIHRoZSB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmYTYwZWRmYzRjOTUyNjI2ZTA0OGMwZTA2NWY2NTRiM2MxODIyZmE1CkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVdlZCBNYXkgMjEgMTQ6Mzg6MDggMjAwOCArMDkwMAoKICAgIFVzZSBiZXR0ZXIgRXRoZXJuZXQgdGltaW5ncyBmb3IgYXBvbGxvbiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgNDFjNWVhYTcyNTNlZDgyYmJhZTFlZGE1NjY3NzU1ODcyYzYxNTE2NApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxNiAxMzo1ODo1NiAyMDA4IC0wNTAwCgogICAgUmVzaXplIGRldmljZSB0cmVlIHRvIGFsbG93IHNwYWNlIGZvciBib2FyZCBjaGFuZ2VzIGFuZCB0aGUgY2hvc2VuIG5vZGUKCiAgICBDdXJyZW50IGNvZGUgcmVxdWlyZXMgdGhhdCBhIGNvbXBpbGVkIGRldmljZSB0cmVlIGhhdmUgc3BhY2UgYWRkZWQgdG8gdGhlIGVuZCB0bwogICAgbGVhdmUgcm9vbSBmb3IgZXh0cmEgbm9kZXMgYWRkZWQgYnkgYm9hcmQgY29kZSAoYW5kIHRoZSBjaG9zZW4gbm9kZSkuICBUaGlzCiAgICByZXF1aXJlcyB0aGF0IGRldmljZSB0cmVlIGNyZWF0b3JzIGFudGljaXBhdGUgaG93IG11Y2ggc3BhY2UgVS1Cb290IHdpbGwgYWRkIHRvCiAgICB0aGUgdHJlZSwgd2hpY2ggaXMgYWJzdXJkLglJZGVhbGx5LCB0aGUgY29kZSB3b3VsZCByZXNpemUgYW5kL29yIHJlbG9jYXRlIHRoZQogICAgdHJlZSB3aGVuIGl0IG5lZWRlZCBtb3JlIHNwYWNlLCBidXQgdGhpcyB3b3VsZCByZXF1aXJlIGEgc3lzdGVtaWMgY2hhbmdlIHRvIHRoZQogICAgZmR0IGNvZGUsIHdoaWNoIGlzIG5vbi10cml2aWFsLiAgSW5zdGVhZCwgd2UgcmVzaXplIHRoZSB0cmVlIGluc2lkZQogICAgYm9vdF9yZWxvY2F0ZV9mZHQsIHJlc2VydmluZyBlaXRoZXIgdGhlIHJlbWFpbmRlciBvZiB0aGUgYm9vdG1hcCAoaW4gdGhlIGNhc2UKICAgIHdoZXJlIHRoZSBmZHQgaXMgaW5zaWRlIHRoZSBib290bWFwKSwgb3IgYWRkaW5nIENGR19GRFRfUEFEIGJ5dGVzIHRvIHRoZSBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NTcwYTk5NDFmYzU2NTkyMjA3ODY3OWE3MmQyNDZmZTIwOGQ2OTZkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDE2IDEzOjU4OjU1IDIwMDggLTA1MDAKCiAgICBGaXggYW4gdW5kZXJmbG93IGJ1ZyBpbiBfX2xtYl9hbGxvY19iYXNlCgogICAgX19sbWJfYWxsb2NfYmFzZSBjYW4gdW5kZXJmbG93IGlmIGl0IGZhaWxzIHRvIGZpbmQgZnJlZSBzcGFjZS4gIFRoaXMgd2FzIGZpeGVkCiAgICBpbiBsaW51eCB3aXRoIGNvbW1pdCBkOTAyNGRmMDJmZmU3NGQ3MjNkOTdkNTUyZjg2ZGUzYjM0YmViOGNjLiAgVGhpcyBwYXRjaAogICAgbWVyZWx5IHVwZGF0ZXMgX19sbWJfYWxsb2NfYmFzZSB0byByZXNlbWJsZSB0aGUgY3VycmVudCB2ZXJzaW9uIGluIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2Mzc5NmM0ZTYxYjIwN2QyZTYzNTcyOWQ0MWI3YTdmN2QxODhiMDNjCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDE2IDEzOjU4OjU0IDIwMDggLTA1MDAKCiAgICBBZGQgbG1iX2ZyZWUKCiAgICBsbWJfZnJlZSBhbGxvd3MgdXMgdG8gdW5yZXNlcnZlIHNvbWUgbWVtb3J5IHNvIHdlIGNhbiB1c2UgbG1iX2FsbG9jX2Jhc2Ugb3IKICAgIGxtYl9yZXNlcnZlIHRvIHRlbXBvcmFyaWx5IHJlc2VydmUgc29tZSBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRiMDNhYzhiNTEwMmFkOTVmOWZlZGU3ZDEzZmEyMzY5Nzc1OTNlN2QKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTYgMTM6NTg6NTMgMjAwOCAtMDUwMAoKICAgIEFkZCBBTElHTigpIG1hY3JvCgogICAgQUxJR04oKSByZXR1cm5zIHRoZSBzbWFsbGVzdCBhbGlnbmVkIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgcGFzc2VkCiAgICBpbiBhZGRyZXNzIG9yIHNpemUuICBUYWtlbiBmcm9tIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MzI2MmFmODVlM2U5ZDk5NzRjNmMwOGZiZDM3YTlhNzJlMDkwY2EyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDI0IDE3OjE1OjIyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyB3aXRoIHBoeXNfc2l6ZV90CgogICAgVGhpcyBwYXRjaCBpbmNsdWRlcyA8YXNtL3R5cGVzLmg+IGJlZm9yZSA8YXNtL3UtYm9vdC5oPiBpbiBzb21lIDR4eAogICAgYm9hcmQgc3BlY2lmaWMgZmlsZXMgd2hlcmUgaXQgaGFzIGJlZW4gbWlzc2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjhlYWIwZDc3MzUyYjg0ODg1ZjkzODc1OWJmMjYxMmI3YmYwYmM0NApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gTWF5IDE5IDEyOjI2OjM4IDIwMDggKzAyMDAKCiAgICBDb25kaXRpb25hbGx5IGFkZCAtZm5vLXN0YWNrLXByb3RlY3RvciB0byBDRkxBR1MKCiAgICBXaGVuIGNvbXBpbGUtdGVzdGluZyBvbiBwb3dlcnBjLCBJIGdldCBlcnJvcnMgbGlrZSB0aGlzOgoKICAgIG5ldC9uZnMuYzo0MjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9fc3RhY2tfY2hrX2ZhaWxfbG9jYWwnCgogICAgVGhpcyBzZWVtcyB0byBiZSBiZWNhdXNlIC1mc3RhY2stcHJvdGVjdG9yIGlzIG9uIGJ5IGRlZmF1bHQsIHNvCiAgICBsZXQncyBleHBsaWNpdGx5IGRpc2FibGUgaXQgb24gYWxsIGFyY2hpdGVjdHVyZXMgdGhhdCBzdXBwb3J0IHRoZQogICAgb3B0aW9uLgoKICAgIFRoZSBVYnVudHUgdG9vbGNoYWluIGlzIGFmZmVjdGVkIGJ5IHRoaXMgcHJvYmxlbSwgYW5kIGFjY29yZGluZyB0bwogICAgTWlrZSBGcnlzaW5nZXIsIEdlbnRvbyBoYXMgYmVlbiBydW5uaW5nIHdpdGggU1NQIGVuYWJsZWQgZm9yIHllYXJzLgogICAgTW9yZSBhbmQgbW9yZSBkaXN0cm9zIGFyZSB0dXJuaW5nIFNTUCBvbiBieSBkZWZhdWx0LCBzbyB0aGlzIHByb2JsZW0KICAgIGlzIGxpa2VseSB0byBnZXQgd29yc2UgaW4gdGhlIGZ1dHVyZS4KCiAgICBBbHNvLCBwb3dlcnBjIGp1c3QgaGFwcGVucyB0byBiZSBvbmUgb2YgdGhlIGFyY2hlcyBJIGRvCiAgICBjb21waWxlLXRlc3Rpbmcgb24uIFRoZXJlIG1heSBiZSBvdGhlciBhcmNoZXMgYWZmZWN0ZWQgYnkgdGhpcyB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZGZkM2JlODgxYzAzYTI2ZTMxZjBkZWE0YTQyZTc2MDYxZmE2MTBhYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NTIgMjAwOCArMDIwMAoKICAgIHBjbWNpYS90aV9wY2kxNDEwYTogTW92ZSBjb21waWxlIGNvbmRpdGlvbiB0byB0aGUgTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDcyZDVkNWY3YjVjNzRhMTg4ZGYyMzhlYzZkZDgyNGQ4MGM3NDg1N2EKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjUxIDIwMDggKzAyMDAKCiAgICBweGFfcGNtY2lhOiBNb3ZlIGNvbXBpbGUgY29uZGl0aW9uIHRvIHRoZSBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzllZmYzMjg4MWZiNDI5MTAxYzkzN2NmOGMyNjhmMWQ0MmU1YzJhOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NTAgMjAwOCArMDIwMAoKICAgIG1hcmFidW5fcGNtY2lhOiBNb3ZlIGNvbXBpbGUgY29uZGl0aW9uIHRvIHRoZSBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmExOWM0NmNhZTQzYzE2YzUyOGVkZGVmYWUzZGI5NzEzNGYxOTE1ZApBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJTW9uIEp1biAyMyAxMzoyNTozNCAyMDA4ICswMjAwCgogICAgZml4IG5vbi13b3JraW5nIG12QkwtTTcKCiAgICBBZGQgbWlzc2luZyAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMgaW4gbXZCTC1NNyBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg0NmYxNTc0ZGRkZGVkYTJiYzIyNzY1NWU2ODczMDg2OTVmNDFjZGMKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CU1vbiBKdW4gMjMgMTE6NDA6NTYgMjAwOCArMDIwMAoKICAgIGZpeCBzeXN0ZW0gY29uZmlnIG92ZXJ3cml0ZSBAIE1QQzgzNHggYW5kIE1QQzgzMTMKCiAgICBEdXJpbmcgODN4eCBzZXR1cCB0aGUgIlN5c3RlbSBJL08gY29uZmlndXJhdGlvbiByZWdpc3RlciBoaWdoIiBnZXRzCiAgICBvdmVyd3JpdHRlbiB3aXRoIHVzZXIgZGVmaW5lZCB2YWx1ZSBpZiBDRkdfU0lDUkggaXMgZGVmaW5lZC4KCiAgICBSZWdhcmRpbmcgdG8gdGhlIE1QQzgzNHggbWFudWFsIChUYWJsZSA1LTI4IHJldmUuMSkgYml0cyAyOCsyOSBvZiBTSUNSSAogICAgbXVzdCBrZWVwIHRoZWlyIHJlc2V0IHZhbHVlIHJlZ2FyZGxlc3Mgb2YgY29uZmlndXJhdGlvbi4KCiAgICBPbiBteSBib2FyZCAodXNpbmcgUkdNSUkpIHRob3NlIGJpdHMgYXJlIHNldCBhZnRlciByZXNldCAtIHlldCBpdCdzCiAgICB1bmNsZWFyIHdoZXJlIHRoZXkgY29tZSBmcm9tLgoKICAgIFRoZSBwYXRjaCBrZWVwcyBib3RoIGJpdHMgb24gTVBDODM0eCBhbmQgTVBDODMxMy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4OTAyNDZhMmM1ZGY5MGE3NGUyOTQxZTM2NzNhNDliYmQzNmFlZTkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDE3IDE3OjQ1OjI3IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBtb3ZlIENQVV9UWVBFX0VOVFJZIG92ZXIgdG8gcHJvY2Vzc29yLmgKCiAgICB0byBhdm9pZCB0aGlzOgoKICAgIGNwdS5jOjQ3OjE6IHdhcm5pbmc6ICJDUFVfVFlQRV9FTlRSWSIgcmVkZWZpbmVkCiAgICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gY3B1LmM6MzM6CiAgICAvaG9tZS9raW0vZ2l0L3UtYm9vdC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaDo5ODI6MTogd2FybmluZzogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhYzdhNTA5NWI5NjhkNmM5YTNlNjQyMmYzMWI0YWQyMDNjYWM5YzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjMgMTE6MTU6MDkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gZ3Bpb19jb25maWcoKQoKICAgIEFzIHBvaW50ZWQgb3V0IGJ5IEd1ZW5uYWRpIExpYWtob3ZldHNraSAodGhhbmtzKSwgcGluMiBpcyBhbHJlYWR5IHNoaWZ0ZWQKICAgIGxlZnQgYnkgb25lLiBTbyB0aGUgYWRkaXRpb25hbCBzaGlmdCBpcyBib2d1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDA3Nzc4MTIzMTZmYzI1MmM5NDE2NjVjMGY2MGMxNDhmZDc5ZDUwZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIwIDIyOjI0OjA1IDIwMDggKzAyMDAKCiAgICBmZHQ6IEZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNWY3MjNhM2I5OGM2MzBiZGUzM2RlNzQzNTFmMjEyMTY5MWZkZWYxNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEp1biAyMCAxMDo0MTowNSAyMDA4ICswMjAwCgogICAgYXZyMzI6IEVuYWJsZSBTUEkgZmxhc2ggc3VwcG9ydCBvbiBBVE5HVzEwMAoKICAgIFRoZSBBVE5HVzEwMCBoYXMgOE1CIERhdGFGbGFzaCBvbiBib2FyZC4gR2l2ZSB1c2VycyBhY2Nlc3MgdG8gaXQgdGhyb3VnaAogICAgdGhlIG5ldyBTUEkgZmxhc2ggZnJhbWV3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1NjA1ZWY2YjU4MDI5MjFjYmVmZTZhOTMzYTlkZWEzNDk3Mzk2YjVjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSnVuIDIwIDEyOjQ0OjI4IDIwMDggKzAyMDAKCiAgICBhdnIzMjogRml4IFNQSSBwb3J0bXV4IGluaXRpYWxpemF0aW9uCgogICAgVXNlIHRoZSBuZXcgR1BJTyBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIHRvIHNldCB1cCB0aGUgY2hpcCBzZWxlY3QgbGluZXMsCiAgICBhbmQgbWFrZSBzdXJlIGJvdGggYnVzc2VzIHVzZSBHUElPIGZvciBjaGlwIHNlbGVjdCBjb250cm9sLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0Njg4ZjllMzRhODdlODI1YWVkMzRkMDdjOWNhN2EyNzNlNmZjOGFiCkF1dGhvcjogUGV0ZXIgTWEgPHBtYUBtZWRpYW1hdGVjaC5jb20+CkRhdGU6CVN1biBKdW4gMSAyMjo1OToyNCAyMDA4IC0wNzAwCgogICAgYXZyMzI6IEFkZCBHUElPIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMKCiAgICBBZGRzIEdQSU8gbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBmb3IgQVZSMzIgQVA3IHBsYXRmb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIE1hIDxwbWFAbWVkaWFtYXRlY2guY29tPgogICAgW2hhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb206IGNvZGluZyBzdHlsZSBmaXh1cCwgc2xpZ2h0IHNpbXBsaWZpY2F0aW9uXQogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGI0ZmUxYTcxMDkwYzczZWZjNmU0MTg4ZWVkMTg4YjJmZjY3ZmMwMmEKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjAyOjMwIDIwMDggKzAyMDAKCiAgICBNUEM4MzYwRVJESzogYWRhcHQgTkFORCBpbnRlcmZhY2UgZm9yIHRoZSByZS13cml0dGVuIEZTTCBOQU5EIFVQTSBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcGF0Y2ggc2VudCBhIGZldyBtaW51dGVzIGFnbzoKICAgICJOQU5EIEZTTCBVUE06IGRyaXZlciByZS13cml0ZSB1c2luZyB0aGUgaHdjb250cm9sIGNhbGxiYWNrIgogICAgSXQgaXMgdW50ZXN0ZWQsIG9mIGNvdXJzZS4gQW50b24sIGNvdWxkIHlvdSBwbGVhc2UgZ2l2ZSBpdCBhIHRyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA5NjAyNmQ0MmZhNGU2NDZkMjgzMThjMGExNDM4YWFjNGIyMDE3OTA5CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgSnVuIDEyIDEyOjQwOjExIDIwMDggKzAyMDAKCiAgICBGaXggNHh4IGJ1aWxkIGlzc3VlCgogICAgQnVpbGRpbmcgZm9yIDR4eCBkb2Vzbid0IHdvcmsgc2luY2UgY29tbWl0IDRkYmRiNzY4OgoKICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSA0eHhfcGNpZS5jOjI4OgogICAgaW5jbHVkZS9hc20vcHJvY2Vzc29yLmg6OTcxOiBlcnJvcjogZXhwZWN0ZWQgJyknIGJlZm9yZSAndmVyJwogICAgbWFrZVsxXTogKioqIFs0eHhfcGNpZS5vXSBFcnJvciAxCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTAzNmIwNDQzNjU3ZmUwZjQ3NzM3ODZkZTkwOTIyNTE4NjlmMDhhYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKdW4gMTkgMDE6NDU6NTAgMjAwOCAtMDUwMAoKICAgIE1QQzg2MTBIUENEOiBSZXBvcnQgYm9hcmQgaWQsIGJvYXJkIHZlcnNpb24gYW5kIGZwZ2EgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDdkZThjMjFmMTRkZjljMjBmZGNmNjAyN2FlYzhlODU0NWY3NWY4MzUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSnVuIDE5IDAxOjQ1OjI3IDIwMDggLTA1MDAKCiAgICBNUEM4NjQxSFBDTjogUmVwb3J0IGJvYXJkIGlkLCBib2FyZCB2ZXJzaW9uIGFuZCBmcGdhIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmYjhjMDYxZWEwNWZjNjhkMzdlMmE4YjlmOGM5NDlkNzZjOGQ3MWE4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDE2IDEwOjQwOjAyIDIwMDggKzAyMDAKCiAgICBjZmktZmxhc2g6IEZpeCBwcm9ibGVtIGluIGZsYXNoX3RvZ2dsZSgpLCBidXN5IHdhcyBub3QgZGV0ZWN0ZWQgcmVsaWFibHkKCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgZmxhc2hfdG9nZ2xlKCkgKEFNRCBjb21tYW5kc2V0KSwgd2hpY2ggaXMgdXNlZCB0bwogICAgZGV0ZWN0IGlmIGEgRkxBU0ggZGV2aWNlIGlzIHN0aWxsIGJ1c3kgd2l0aCBlcmFzZS9wcm9ncmFtIG9wZXJhdGlvbnMuIE9uCiAgICA4MDBNSHogQ2FueW9ubGFuZHMvR2xhY2llciBib2FyZHMgKDQ2MEVYL0dUKSB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbgogICAgZGlkIG5vdCBkZXRlY3QgdGhlIGJ1c3kgc3RhdGUgcmVsaWFibHksIHJlc3VsdGluZyBpbiBub24gZXJhc2VkIHNlY3RvcnMKICAgIGV0Yy4gVGhpcyBwYXRjaCBub3cgc2ltcGxpZmllcyB0aGlzIGZ1bmN0aW9uIGJ5ICJqdXN0IiBjb21wYXJpbmcgdGhlCiAgICBjb21wbGV0ZSBkYXRhLXdvcmQgaW5zdGVhZCBvZiBBTkRpbmcgaXQgd2l0aCB0aGUgY29tbWFuZC13b3JkICgweDQwKQogICAgYmVmb3JlIHRoZSBjb21wYXRpc29uLiBJdCBpcyBkb25lIHRoZSBzYW1lIHdheSBpbiB0aGUgTGludXggaW1wbGVtZW50YXRpb24KICAgIGNoaXBfcmVhZHkoKSBpbiBjZmlfY21kc2V0XzAwMDIuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWU0MDA2YmNhM2Q5ZmI0YTJkMDYxOTk2NzcxMDM2Y2IwMWU1MzlkMwpBdXRob3I6IFBoaWxpcCBCYWxpc3RlciA8cGhpbGlwQGJhbGlzdGVyLm9yZz4KRGF0ZToJTW9uIEp1biAxNiAwODo1ODowNyAyMDA4IC0wNDAwCgogICAgTkFORDogQWRkIG1pc3NpbmcgZGVjbGFyYXRpb24gdG8gbm9uLXJlZHVuZGFudCBzYXZlZW52KCkuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmNkYjdmNTBhYzU5NTk0NTQwZmZmZGY4ZGJkN2IxMmJlYWM3OWM1MgpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglNb24gSnVuIDIgMTU6MDk6NTUgMjAwOCArMDIwMAoKICAgIE1QQzgzNjBFUkRLOiBhZGFwdCBOQU5EIGludGVyZmFjZSBmb3IgdGhlIHJlLXdyaXR0ZW4gRlNMIE5BTkQgVVBNIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjEyZWQ5MDYxNWMzZDIwZmE2YmQ3M2Q3MGQ1MTUzYmQwZDEyNGU1ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxMCAxNTozNDoxMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDYW55b25sYW5kczogRGlzYWJsZSB0aGUgUlRDIE00MVQ2MiBzcXVhcmUgd2F2ZSBvdXRwdXQKCiAgICBUaGlzIHBhdGNoIGRpc2FibGVzIHRoZSBzcXVhcmUgd2F2ZSBvdXRwdXQgb2YgdGhlIE00MVQ2MiBSVEMgdXNlZCBvbgogICAgQ2FueW9ubGFuZHMgJiBHbGFjaWVyLiBIZXJlIHRoZSBleHBsYW5hdGlvbjoKCiAgICBUaGUgc2VyaWFsIHJlYWwtdGltZSBjbG9jayBwYXJ0IHVzZWQgaW4gdGhlIGRlc2lnbiBpcyBhbgogICAgU1RNaWNybyBNNDFUNjIuIFRoaXMgcGFydCBoYXMgYSBmdWxsLXRpbWUgMzJLSHogc3F1YXJlIHdhdmUKICAgIG91dHB1dCB0aGF0IGlzIGNvbm5lY3RlZCB0byB0aGUgVG1yQ2xrIGlucHV0IHRvIHRoZQogICAgcHJvY2Vzc29yLiBUaGUgZGVmYXVsdCBzdGF0ZSBmb3IgdGhpcyBzcXVhcmUgd2F2ZSBvdXRwdXQgaXMKICAgIGVuYWJsZWQgc28gdGhlIG91dHB1dCBydW5zIGNvbnRpbnVvdXNseSB3aGVuIHRoZSBib2FyZCBpcwogICAgcG93ZXJlZCBub3JtYWxseSBhbmQgYWxzbyBmcm9tIHRoZSBiYXR0ZXJ5LiBUaGUgVG1yQ2xrIGlucHV0CiAgICB0byB0aGUgcHJvY2Vzc29yIGdvZXMgdG8gZ3JvdW5kIHdoZW4gdGhlIHBvd2VyIGlzIHJlbW92ZWQKICAgIGZyb20gdGhlIGJvYXJkL3Byb2Nlc3NvciwgYW5kIHRoZXJlZm9yZSB0aGUgcnVubmluZyBzcXVhcmUKICAgIHdhdmUgb3V0cHV0IGlzIGRyaXZpbmcgZ3JvdW5kIHdoaWNoIGRyYWlucyB0aGUgYmF0dGVyeSBxdWlja2x5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhOTRmMjJmMDhmMjgwOTA1OTI2MjE5ZTU2ODU2ODk2NGNiOWVlYjlkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDExIDE4OjEwOjIwIDIwMDggLTA1MDAKCiAgICBGaXggYnVpbGQgaXNzdWUgd2l0aCBzdHJpbmcuaCBhbmQgbGludXgvc3RyaW5nLmgKCiAgICBUaGlzIGNvbW1pdDoKICAgIGNvbW1pdCAzMzhjYzAzODQ2MWE2Yzc3MDljNWI4NmZkOWEyNDAyMDkzMzhhMWFlCiAgICBBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBEYXRlOiAgIEZyaSBKdW4gNiAxNDoyODoxNCAyMDA4ICswMjAwCgoJdG9vbHMvbWtpbWFnZTogZml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIHNvbWUgc3lzdGVtcy4KCiAgICBCcm9rZSBidWlsZGluZyBvbiBzb21lIHN5c3RlbXMsIGJlY2F1c2UgdGhlIGhvc3QncyBzdHJpbmcuaCB3YXMgaW50ZXJmZXJpbmcKICAgIHdpdGggdS1ib290J3MgbGludXgvc3RyaW5nLmguICBJdCBkb2Vzbid0IGxvb2sgbGlrZSB3ZSBuZWVkIHRoZSB1LWJvb3Qgb25lIGlmCiAgICB3ZSdyZSBidWlsZGluZyBmb3IgdGhlIGhvc3QsIHNvIG5vdyB3ZSBvbmx5IGluY2x1ZGUgd2hlbiBidWlsZGluZyBpbnNpZGUKICAgIHUtYm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTk3M2UzYzYxNDcyMWJiZjE2OTg4MmZmYzNiZTI2NmE2NjExY2Q2MApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDkgMTY6MDM6NDAgMjAwOCAtMDUwMAoKICAgIENoYW5nZSBpbml0ZHJhbSgpIHJldHVybiB0eXBlIHRvIHBoeXNfc2l6ZV90CgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSByZXR1cm4gdHlwZSBvZiBpbml0ZHJhbSgpIGZyb20gbG9uZyBpbnQgdG8gcGh5c19zaXplX3QuCiAgICBUaGlzIGlzIHJlcXVpcmVkIGZvciBhIGNvdXBsZSBvZiByZWFzb25zOiBsb25nIGludCBsaW1pdHMgdGhlIGFtb3VudCBvZiBkcmFtCiAgICB0byAyR0IsIGFuZCB1LWJvb3QgaW4gZ2VuZXJhbCBpcyBtb3Zpbmcgb3ZlciB0byBwaHlzX3NpemVfdCB0byByZXByZXNlbnQgdGhlCiAgICBzaXplIG9mIHBoeXNpY2FsIG1lbW9yeS4gIHBoeXNfc2l6ZV90IGlzIGRlZmluZWQgYXMgYW4gdW5zaWduZWQgbG9uZyBvbiBhbG1vc3QKICAgIGFsbCBjdXJyZW50IHBsYXRmb3Jtcy4KCiAgICBUaGlzIHBhdGNoICpvbmx5KiBjaGFuZ2VzIHRoZSByZXR1cm4gdHlwZSBvZiB0aGUgaW5pdGRyYW0gZnVuY3Rpb24gKGluCiAgICBpbmNsdWRlL2NvbW1vbi5oLCBhcyB3ZWxsIGFzIGluIGVhY2ggYm9hcmQncyBpbXBsZW1lbnRhdGlvbiBvZiBpbml0ZHJhbSkuICBJdAogICAgZG9lcyBub3QgYWN0dWFsbHkgbW9kaWZ5IHRoZSBjb2RlIGluc2lkZSB0aGUgZnVuY3Rpb24gb24gYW55IG9mIHRoZSBwbGF0Zm9ybXM7CiAgICBwbGF0Zm9ybXMgd2hpY2ggd2lzaCB0byBzdXBwb3J0IG1vcmUgdGhhbiAyR0Igb2YgRFJBTSB3aWxsIG5lZWQgdG8gbW9kaWZ5CiAgICB0aGVpciBpbml0ZHJhbSgpIGZ1bmN0aW9uIGNvZGUuCgogICAgQnVpbGQgdGVzdGVkIHdpdGggTUFLRUFMTCBmb3IgcHBjLCBhcm0sIG1pcHMsIG1pcHMtZWwuIEJvb3RlZCBvbiBwb3dlcnBjCiAgICBNUEM4NjQxSFBDTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzOTFmZDkzYWIyM2UxNWFiM2RkNThhNTRmNWI2MDkwMjQwMDljMzc4CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gOSAyMDozNzoxOCAyMDA4IC0wNTAwCgogICAgQ2hhbmdlIGxtYiB0byB1c2UgcGh5c19zaXplX3QvcGh5c19hZGRyX3QKCiAgICBUaGlzIHVwZGF0ZXMgdGhlIGxtYiBjb2RlIHRvIHVzZSBwaHlzX3NpemVfdAogICAgYW5kIHBoeXNfYWRkcl90IGluc3RlYWQgb2YgdW5zaWduZWQgbG9uZy4gIE90aGVyIGNvZGUKICAgIHdoaWNoIGludGVyYWN0cyB3aXRoIHRoaXMgY29kZSwgbGlrZSBnZXRlbnZfYm9vdG1fc2l6ZSgpCiAgICBpcyBhbHNvIHVwZGF0ZWQuCgogICAgQm9vdGVkIG9uIE1QQzg2NDFIUENOLCBidWlsZC10ZXN0ZWQgcHBjLCBhcm0sIG1pcHMuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjFiMDlmYzI5NTJkYzYzNjAxN2RmNGU3OTcwZTNkZTEzMjI3NmJhMQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDkgMjA6Mzc6MTcgMjAwOCAtMDUwMAoKICAgIENoYW5nZSBwcmludF9zaXplIHRvIHRha2UgcGh5c19zaXplX3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTdjYTNlMTI4Y2MxMGExMzNiYTc5YmM3ZWMzZTdiNTBlN2M4ZmJlCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gOSAyMDozNzoxNiAyMDA4IC0wNTAwCgogICAgQ2hhbmdlIGJkL2dkIG1lbXNpemUvcmFtX3NpemUgdG8gYmUgcGh5c19zaXplX3QuCgogICAgQ3VycmVudGx5LCBib3RoIGFyZSBkZWZpbmVkIGFzIGFuIHVuc2lnbmVkIGxvbmcsIGJ1dAogICAgc2hvdWxkIGJlIHBoeXNfc2l6ZV90LiBUaGlzIHNob3VsZCByZXN1bHQgaW4gbm8gcmVhbCBjaGFuZ2UsCiAgICBzaW5jZSBwaHlzX3NpemVfdCBpcyBjdXJyZW50bHkgYW4gdW5zaWduZWQgbG9uZyBmb3IgYWxsIHRoZQogICAgZGVmYXVsdCBjb25maWdzLiAgQWxzbyBhZGQgcHJpbnRfbG51bSB0byBjbWRfYmRpbmZvIHRvIGRlYWwKICAgIHdpdGggdGhlIHBvdGVudGlhbGx5IHdpZGVyIG1lbXNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmEwNGY3MDEwOTU4ZTg4YTg5MTBmMmExMjNmZWU1M2ZkYzcyZTAxMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBKdW4gMTAgMTY6MTY6MDIgMjAwOCAtMDUwMAoKICAgIEZTTCBMQVc6IEFkZCBuZXcgaW50ZXJmYWNlIHRvIHVzZSB0aGUgbGFzdCBmcmVlIExBVwoKICAgIExBV3MgaGF2ZSB0aGUgY29uY2VwdCBvZiBwcmlvcml0eSBzbyBpdHMgdXNlZnVsIHRvIGJlIGFibGUgdG8gYWxsb2NhdGUKICAgIHRoZSBsb3dlc3QgKGhpZ2hlc3QgbnVtYmVyKSBwcmlvcml0eS4gIFdlIHdpbGwgZW5kIHVwIHVzaW5nIHRoaXMgd2l0aCB0aGUKICAgIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg1OWE4NmEyNWM1NjlkMzY2NWZmNDEzZDFkOTIzMzk0YjhhOTYxZjMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSnVuIDExIDAwOjUxOjQ1IDIwMDggLTA1MDAKCiAgICA4NXh4Lzg2eHg6IE1vdmUgdG8gZHluYW1pYyBtZ210IG9mIExBV3MKCiAgICBXaXRoIHRoZSBuZXcgTEFXIGludGVyZmFjZSAoc2V0X25leHRfbGF3KSB3ZSBjYW4gbW92ZSB0byBsZXR0aW5nIHRoZQogICAgc3lzdGVtIGFsbG9jYXRlIHdoaWNoIExBV3MgYXJlIHVzZWQgZm9yIHdoYXQgcHVycG9zZS4gIFRoaXMgbWFrZXMgbGlmZQogICAgYSBiaXQgZWFzaWVyIGdvaW5nIGZvcndhcmQgd2l0aCB0aGUgbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMDYwMDU0ZGFkYmJlNzAyN2NhMDg4ZWVkODA2YTNlZjFmODJmZGI3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEp1biAxMSAwMDo0NDoxMCAyMDA4IC0wNTAwCgogICAgRlNMIExBVzogS2VlcCB0cmFjayBvZiBMQVcgYWxsb2NhdGlvbnMKCiAgICBNYWtlIGl0IHNvIHdlIGtlZXAgdHJhY2sgb2Ygd2hpY2ggTEFXcyBoYXZlIGFsbG9jYXRlZCBhbmQgcHJvdmlkZQogICAgYSBmdW5jdGlvbiAoc2V0X25leHRfbGF3KSB3aGljaCBjYW4gYWxsb2NhdGUgYSBMQVcgZm9yIHVzIGlmIG9uZSBpcwogICAgZnJlZS4KCiAgICBJbiB0aGUgZnV0dXJlIHdlIHdpbGwgbW92ZSB0byBkb2luZyBtb3JlICJkeW5hbWljIiBMQVcgYWxsb2NhdGlvbgogICAgc2luY2UgdGhlIG1ham9yaXR5IG9mIHVzZXJzIGRvbnQgcmVhbGx5IGNhcmUgYWJvdXQgd2hhdCBMQVcgbnVtYmVyCiAgICB0aGV5IGFyZSBhdC4KCiAgICBBbHNvLCBhZGQgQ09ORklHX01QQzg1NDAgb3IgQ09ORklHX01QQzg1NjAgdG8gdGhvc2UgYm9hcmRzIHdoaWNoIG5lZWRlZCB0aGVtCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGRlNzRhMTU5Y2FhNmUxOGI0ODFmZWMwMWQ0MGI4ODVhZWJiNTY2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1biA5IDIyOjMxOjU3IDIwMDggLTA1MDAKCiAgICA4NXh4OiByZW1vdmUgZHVtbXkgYm9hcmRfZWFybHlfaW5pdF9mCgogICAgQSBudW1iZXIgb2YgYm9hcmQgcG9ydHMgaGF2ZSBlbXB0eSB2ZXJzaW9uIG9mIGJvYXJkX2Vhcmx5X2luaXRfZgogICAgZm9yIG5vIHJlYXNvbiBzaW5jZSB3ZSBjb250cm9sIGl0cyB2aWEgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgxZTU2ZTlhZjBkNDM3MTJkYjhlZmI4NDM2MDZhOGQ2MmVhYjQ1NGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVuIDkgMTg6NTU6MzggMjAwOCAtMDUwMAoKICAgIE1QQzg1NDREUzogVXBkYXRlIGNvbmZpZy5oCgogICAgKiBFbmFibGUgZmxhc2ggcHJvZ3Jlc3MKICAgICogcmVtb3ZlIENMRUFSX0xBVzAgc2luY2Ugd2UgZG9udCByZWFsbHkgdXNlIGl0CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5NzhlODE2MDRjMWIyODUyNmVkNTgwZGYwZmJlNjRlYjgzODRlOTRmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1biA5IDEzOjM3OjI0IDIwMDggLTA1MDAKCiAgICA4NXh4OiBSZW1vdmUgdW51c2VkIGFuZCB1bmNvbmZpZ3VyZWQgbWVtb3J5IHRlc3QgY29kZS4KCiAgICBSZW1vdmUgdW51c2VkIGFuZCB1bmNvbmZpZ3VyZWQgRERSIHRlc3QgY29kZSBmcm9tIEZTTCA4NXh4IGJvYXJkcy4KICAgIEJlc2lkZXMsIG90aGVyIGNvbW1vbiBjb2RlIGV4aXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGEyM2NkZGRlMWE5NWY5ODdlM2ZlMmE3MjBhN2VjOTM3NWI3MjY0ZDcKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglGcmkgSnVuIDYgMTU6NDI6NDUgMjAwOCArMDIwMAoKICAgIFNvY3JhdGVzOiBBZGRlZCBGUEdBIGJhc2UgYWRkcmVzcyB1cGRhdGUgaW4gRkRULgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgZmQ1MWIwZTBlNjIwYjhiYzlmZDRmNmRhYTNhNGZhNmY1ZTEzMTZmNApBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdW4gNiAxNTo0Mjo0NCAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IE5BTkQgc3VwcG9ydCBhZGRlZC4gQ2hhbmdlZCB0aGUgVS1Cb290IGJhc2UgYWRkcmVzcyBhbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDI0OGFlNWNmYzhiZjY5MDc0ZDFkYTA5OWRjNDk1ZDhlMDYwNzA1NDcKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglGcmkgSnVuIDYgMTU6NDI6NDMgMjAwOCArMDIwMAoKICAgIE5BTkQ6IEFkZGVkIHN1cHBvcnQgZm9yIDEyOC1iaXQgT09CLCBhZGFwdGVkCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAzMWNhMDIwODYxMmYyZWI1NzY5MDExMGQ3YzI4MTU5NTM2NTBlNDdiCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1biA2IDE1OjQyOjQyIDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogYWRkZWQgbWlzc2VkIGZpbGUgd2l0aCBVUE1BIGNvbmZpZ3VyYXRpb24gZGF0YS4KCiAgICBTaWduZWQtb2YtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgNTlhYmQxNWI0M2NhYjdhNGQxOWRlNGJhMDk0MzgzN2Q5NTU1ZjdiYQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdW4gNiAxNTo0Mjo0MSAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IEFkZGVkIEZQR0EgbWFwcGluZy4gTEFXcyBhbmQgVExCcyBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgNzQwMjgwZTY4Y2NjMGI5NzFlNjEzZmFjZTdlYWFhOGJkMTM4MmI4YwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdW4gNiAxNTo0Mjo0MCAyMDA4ICswMjAwCgogICAgQWRkZWQgdGhlIHVwbWNvbmZpZygpIGZ1bmN0aW9uIGZvciA4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDM5ZTY4NTE0ZmY5NDM5MzBlZTY5MmNmZjNmZGUwMzUzMmViN2ZlYwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdW4gNiAxNTo0MjozOSAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IGNvbmZpZyBmaWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBlOGNjM2YwNGIxMjRmNzU3YWY0NTI4MjA2ZTYwZDhlYjcxNWFlMDgzCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjoxMCAyMDA4ICswMjAwCgogICAgVFFNODV4eDogQ2hhbmdlIG1lbW9yeSBtYXAgdG8gc3VwcG9ydCBGbGFzaCBtZW1vcnkgPiAxMjggTWlCCgogICAgU29tZSBUUU04NXh4IGJvYXJkcyBjb3VsZCBiZSBlcXVpcHBlZCB3aXRoIHVwIHRvIDEgR2lCIChOT1IpIEZsYXNoCiAgICBtZW1vcnkuIFRoZSBjdXJyZW50IG1lbW9yeSBtYXAgb25seSBzdXBwb3J0cyB1cCB0byAxMjggTWlCIEZsYXNoLgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBDT05GSUdfVFFNX0JJR0ZMQVNILiBJZgogICAgc2V0LCB1cCB0byAxIEdpQiBmbGFzaCBpcyBzdXBwb3J0ZWQuIFRvIGFjaGlldmUgdGhpcywgdGhlIG1lbW9yeQogICAgbWFwIGhhcyB0byBiZSBhZGp1c3RlZCBpbiBncmVhdCBwYXJ0cyAoZm9yIGV4YW1wbGUgdGhlIENDU1JCQVIgaXMKICAgIG1vdmVkIGZyb20gMHhFMDAwMDAwMCB0byAweEEwMDAwMDAwKS4KCiAgICBJZiB5b3Ugd2FudCB0byBib290IExpbnV4IHdpdGggQ09ORklHX1RRTV9CSUdGTEFTSCBzZXQsIHRoZSBuZXcKICAgIG1lbW9yeSBtYXAgYWxzbyBoYXMgdG8gYmUgY29uc2lkZXJlZCBpbiB0aGUga2VybmVsIChjaGFuZ2VkCiAgICBDQ1NSQkFSIGFkZHJlc3MsIGNoYW5nZWQgUENJIElPIGJhc2UgYWRkcmVzcywgLi4uKS4gUGxlYXNlIHVzZQogICAgYW4gYXBwcm9wcmlhdGUgRmxhdCBEZXZpY2UgVHJlZSBibG9iICh0cW04NTQ4LmR0YikuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCAxYzJkZWZmMjJjZDZlMmJmMGU2MThmZDZlMDljYTNlZWM1YThkMDUxCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowOSAyMDA4ICswMjAwCgogICAgVFFNODV4eDogTkFORCBzdXBwb3J0IHZpYSBsb2NhbCBidXMgVVBNQgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBOQU5EIEZMQVNIIG9uIHRoZSBUUU04NTQ4LiBJdCBpcyBkaXNhYmxlZCBieQogICAgZGVmYXVsdCBhbmQgY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSBUUU04NTQ4IG1vZHVsZXMuIEl0IGlzIG5vdyBiYXNlZCBvbgogICAgdGhlIHJlLXdyaXR0ZW4gRlNMIE5BTkQgVVBNIGRyaXZlci4gQSBwYXRjaCBoYXMgYmVlbiBwb3N0ZWQgZWFybGllciB0b2RheQogICAgd2l0aCB0aGUgc3ViamVjdDoKCiAgICAiTkFORCBGU0wgVVBNOiBkcml2ZXIgcmUtd3JpdGUgdXNpbmcgdGhlIGh3Y29udHJvbCBjYWxsYmFjayIKCiAgICBOb3RlIHRoYXQgdGhlIFIvQiBwaW4gaXMgbm90IHN1cHBvcnRlZCBieSB0aGF0IG1vZHVsZSByZXF1aXJpbmcgdG8gdXNlCiAgICB0aGUgc3BlY2lmaWVkIG1heGltdW0gZGVsYXkgdGltZS4KCiAgICBOb3RlOiBXaXRoIE5BTkQgc3VwcG9ydCBlbmFibGVkIHRoZSBzaXplIG9mIHRoZSBVLUJvb3QgaW1hZ2UgZXhjZWVkcwogICAgMjU2IEtCIGFuZCBURVhUX0JBU0UgbXVzdCB0aGVyZWZvcmUgYmUgc2V0IHRvIDB4ZmZmODAwMDAgaW4gY29uZmlnLm1rLAogICAgZG91YmxpbmcgdGhlIGltYWdlIHNpemUgOi0oLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBXYWVobmVyIDx0aG9tYXMud2FlaG5lckB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBiOWU4MDc4YmIzZjNjNDgxMTFhNzA4MWUyNzI3OTkzOGMzYTQ0NWUxCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowOCAyMDA4ICswMjAwCgogICAgVFFNODU0ODogUENJIGV4cHJlc3Mgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0kgZXhwcmVzcyBjYXJkcy4gVGhlIGJvYXJkIHN1cHBvcnQKICAgIG5vdyB1c2VzIGNvbW1vbiBGU0wgUENJIGluaXQgY29kZSwgZm9yIGJvdGgsIFBDSSBhbmQgUENJZSBvbiBhbGwKICAgIFRRTTg1eHggbW9kdWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgV2FlaG5lciA8dGhvbWFzLndhZWhuZXJAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgMTI4N2UwYzU1YTJlZTJjNTc1YWM5Y2U4ZTQzMDJjZDQwODViZTg3NgpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTI6MDcgMjAwOCArMDIwMAoKICAgIFRRTTg1NDg6IEJhc2ljIHN1cHBvcnQgZm9yIHRoZSBUUU04NTQ4IG1vZHVsZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIFRRTTg1NDggbW9kdWxlIGZyb20gVFEtQ29tcG9uZW50cwogICAgKGh0dHA6Ly93d3cudHFjLmRlLykgaW5jbHVkaW5nIEREUjIgU0RSQU0gaW5pdGlhbGlzYXRpb24gYW5kIHN1cHBvcnQgZm9yCiAgICBlVFNFQyAzIGFuZCA0CgogICAgRnVydGhlcm1vcmUgRmxhc2ggYnVmZmVyIHdyaXRlIGhhcyBiZWVuIGVuYWJsZWQgdG8gc3BlZWQgdXAgb3V0cHV0IHRvCiAgICB0aGUgRmxhc2ggYnkgYXBwcm94LiBhIGZhY3RvciBvZiAxMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgV2FlaG5lciA8dGhvbWFzLndhZWhuZXJAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgMjU5OTEzNTMyMDRjNzhiMDk0YzNjMWZlYzkwMTgyZGNkNjA3YWI4ZgpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTI6MDYgMjAwOCArMDIwMAoKICAgIFRRTTg1eHg6IFN1cHBvcnQgZm9yIEZsYXQgRGV2aWNlIFRyZWUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgTGludXgga2VybmVscyB1c2luZyB0aGUgRmxhdCBEZXZpY2UgVHJlZS4KICAgIEl0IGFsc28gcmUtZGVmaW5lcyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCBzZXR0aW5ncyBmb3IgYm9vdGluZyBMaW51eAogICAgd2l0aCB0aGUgRkRUIGJsb2IuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgZDllZTg0M2Q1NGM1NDc3NmUxZmRiODYzMzZjZTU1NDkwNmE4NzMzMQpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTI6MDUgMjAwOCArMDIwMAoKICAgIFRRTTg1eHg6IFN1cHBvcnQgZm9yIEludGVsIDgyNTI3IGNvbXBhdGlibGUgQ0FOIGNvbnRyb2xsZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgaW5pdGlhbGl6YXRpb24gb2YgdGhlIFVQTUMgUkFNIHRvIHN1cHBvcnQgdXAgdG8gdHdvCiAgICBJbnRlbCA4MjUyNyBjb21wYXRpYmxlIENBTiBjb250cm9sbGVyIG9uIHRoZSBUUU04NXh4IG1vZHVsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIFdhZWhuZXIgPHRob21hcy53YWVobmVyQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IDUxOGQ1Y2ZlNzI5MTYzMjNjNzQ2YWYxNjQ3NzY0NDU5OTE0ZjU1NWYKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjA0IDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBCdWdmaXggaW4gdGhlIFNEUkFNIGluaXRpYWxpc2F0aW9uCgogICAgVGhlIENTMF9CTkRTIHJlZ2lzdGVyIGlzIG5vdyBzZXQgYWNjb3JkaW5nIHRvIHRoZSBkZXRlY3RlZAogICAgbWVtb3J5IHNpemUuCgogICAgU2lnbmVkLW9mZi1ieSBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA0NWRlZTJlNjIwY2NlYzZhYzdiMzU0OGZlODk3OWEzNGZkMDMwZTVkCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowMyAyMDA4ICswMjAwCgogICAgVFFNODV4eDogRml4IGNoaXAgc2VsZWN0IGNvbmZpZ3VyYXRpb24gZm9yIHNlY29uZCBGTEFTSCBiYW5rCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcmUtY2FsY3VsYXRpb24gb2YgdGhlIGF1dG9tYXRpYyBjaGlwIHNlbGVjdAogICAgY29uZmlndXJhdGlvbiBmb3IgYm9hcmRzIHdpdGggdHdvIHBvcHVsYXRlZCBGTEFTSCBiYW5rcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA0NjM0NmYyN2NkYTZmZDAyNWE0OTZiZGU4ZjJkNGFlZWUwNGFjYTVmCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowMiAyMDA4ICswMjAwCgogICAgVFFNODV4eDogU3VwcG9ydCBmb3IgU3BhbnNpb24gJ04nIHR5cGUgZmxhc2hlcyBhZGRlZAoKICAgIFRoZSAnTicgdHlwZSBTcGFuc2lvbiBmbGFzaGVzIChTMjlHTHh4eE4gc2VyaWVzKSBoYXZlIGJpZ2dlciBzZWN0b3JzLAogICAgdGhhbiB0aGUgZm9ybWVybHkgdXNlZCAnTScgdHlwZXMgKFMyOUdMeHh4TSBzZXJpZXMpLCBzbyB0aGUgZmxhc2ggbGF5b3V0CiAgICBuZWVkcyB0byBiZSBjaGFuZ2VkIC0+IG5ldyBzdGFydCBhZGRyZXNzIG9mIHRoZSBlbnZpcm9ubWVudC4gVGhlIG1hY3JvCiAgICBkZWZpbml0aW9uIENPTkZJR19UUU1fRkxBU0hfTl9UWVBFIGlzIHVuZGVmaW5lZCBieSBkZWZhdWx0IGFuZCBtdXN0IGJlCiAgICBkZWZpbmVkIGZvciBib2FyZHMgd2l0aCAnTicgdHlwZSBmbGFzaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgNWQ1YmQ4MzhmNzZlYWRlMjJjMGVhNDBhNTAwMzg5ZjkyNGQwZGEzNgpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTI6MDEgMjAwOCArMDIwMAoKICAgIFRRTTg1eHg6IEZpeCBDUE0gcG9ydCBwaW4gY29uZmlndXJhdGlvbgoKICAgIERvIG5vdCBjb25maWd1cmUgcG9ydCBwaW5zIFBEMzAvUEQzMSBhcyBTQ0MxIFR4RC9SeEQgZXhjZXB0IGZvciB0aGUgVFFNODU2MAogICAgYm9hcmQuIE9uIHRoZSBvdGhlciBUUU04NXh4IGJvYXJkcyAoVFFNODU0MSBhbmQgVFFNODU1NSkgU0NDMSBpcyBub3QgdXNlZAogICAgYXMgc2VyaWFsIGludGVyZmFjZSBhbnl3YXkuIFdvcnNlLCBvbiBzb21lIGJvYXJkIHZhcmlhbnRzIGNvbmZpZ3VyaW5nIHRoZQogICAgcGlucyBmb3IgU0NDMSBsZWFkcyB0byBzaG9ydCBjaXJjdWl0cyAoZm9yIGV4YW1wbGUgb24gdGhlIFRRTTg1NDEtQkcpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGI5OWJhMTY3OWU4Y2Q1MWIwMjNlNjcwOThjODllNjA2ZTQ3MTM3ZDIKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjAwIDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBWYXJpb3VzIGNvZGluZyBzdHlsZSBmaXhlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IGFlOWU5N2ZhOTZmNjQzYzhiYTJiNjY2YjA2YTAyNmNjODcxN2ViMDAKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgSnVuIDEwIDIyOjE1OjU4IDIwMDggLTA0MDAKCiAgICBsaWJmZHQ6IE1vdmUgdGhlIHdvcmtpbmdfZmR0IHBvaW50ZXIgdG8gY21kX2ZkdC5jCgogICAgVGhlIHdvcmtpbmdfZmR0IHBvaW50ZXIgd2FzIGRlY2xhcmVkIGluIGNvbW1vbi9mZHRfc3VwcG9ydC5jIGJ1dCB3YXMKICAgIG5vdCB1c2VkIHRoZXJlLiAgTW92ZSBpdCB0byBjb21tb24vY21kX2ZkdC5jIHdoZXJlIGl0IGlzIHVzZWQgKGl0IGlzCiAgICBhbHNvIHVzZWQgaW4gbGliX3BwYy9ib290bS5jKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGU0ODliOWMwNzhlMjJiMGQ5ZTc1ZjAwMmNkMmExYmQ5NjdlODhmNWUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDEwIDExOjA2OjE3IDIwMDggLTA1MDAKCiAgICBmZHQ6IHVuc2hhZG93IGdsb2JhbCB3b3JraW5nIGZkdCB2YXJpYWJsZQoKICAgIGRpZmZlcmVudGlhdGUgd2l0aCBsb2NhbCB2YXJpYWJsZXMgb2YgdGhlIHNhbWUgbmFtZSBieSByZW5hbWluZyB0aGUKICAgIGdsb2JhbCAnZmR0JyB2YXJpYWJsZSAnd29ya2luZ19mZHQnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTFlYjBlMjVkOWQ4ZmQ4ZWZkZmI5M2Y2NzBhNDE3NjYzZjM4NjAyMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxMCAxODo0OTozNCAyMDA4IC0wNTAwCgogICAgc29jcmF0ZXM6IEZpeCBQQ0kgY2xrIGZpeCBwYXRjaAoKICAgIFRoZSBzdWJtaXR0ZWQgcGF0Y2ggc2VlbXMgdG8gaGF2ZSBiZWVuIG1vcmUgdXAtdG8tZGF0ZSwgYnV0IGFuIG9sZGVyIHBhdGNoIHdhcwogICAgYWxyZWFkeSBpbiB0aGUgcmVwb3NpdG9yeS4JVGhpcyBwYXRjaCBlbmNvbXBhc3NlcyB0aGUgZGlmZmVyZW5jZXMKCiAgICBUYWtlbiBlbnRpcmVseSBmcm9tIFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3NWE1N2VmNmU0YjYxM2M4MTQzNDk3MWU5NmVkNzBjZjllYzliYTAKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjAyOjI5IDIwMDggKzAyMDAKCiAgICBOQU5EIEZTTCBVUE06IGRyaXZlciByZS13cml0ZSB1c2luZyB0aGUgaHdjb250cm9sIGNhbGxiYWNrCgogICAgVGhpcyBpcyBhIHJlLXdyaXRlIG9mIHRoZSBOQU5EIEZTTCBVUE0gZHJpdmVyIHVzaW5nIHRoZSBtb3JlIHVuaXZlcnNhbAogICAgaHdjb250cm9sIGNhbGxiYWNrIChpbnN0ZWFkIG9mIHRoZSBjbWRmdW5jIGNhbGxiYWNrKS4gSGVyZSBpcyBhIGJyaWVmCiAgICBsaXN0IG9mIGZ1cmhlciBtb2RpZmljYXRpb25zOgoKICAgIC0gRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGUgVVBNIHNldHVwIHdyaXRpbmcgdGhlIFVQTSBhcnJheSBoYXMgYmVlbgogICAgICByZW1vdmVkIGZyb20gdGhlIGRyaXZlciBhbmQgbXVzdCBub3cgYmUgZG9uZSBieSB0aGUgYm9hcmQgc3BlY2lmaWMKICAgICAgY29kZS4KCiAgICAtIFRoZSBidXMgd2lkdGggZGVmaW5pdGlvbiBpbiAic3RydWN0IGZzbF91cG1fbmFuZCIgaXMgbm93IGluIGJpdHMgdG8KICAgICAgY29tcGx5IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgTGludXggZHJpdmVyIGFuZCA4LCAxNiBhbmQgMzIgYml0CiAgICAgIGFjY2Vzc2VzIGFyZSBzdXBwb3J0ZWQuCgogICAgLSBjaGlwLT5kZXZfcmVhZCBpcyBvbmx5IHNldCBpZiBmdW4tPmRldl9yZWFkeSAhPSBOVUxMLCB3aGljaCBpcwogICAgICByZXF1aXJlZCBmb3IgYm9hcmRzIG5vdCBjb25uZWN0aW5nIHRoZSBSL0IgcGluLgoKICAgIC0gQSBmZXcgaXNzdWUgaGF2ZSBiZWVuIGZpeGVkIHdpdGggTXhNUiBiaXQgbWFuaXB1bGF0aW9uIGxpa2UgaW4gdGhlCiAgICAgIGNvcnJlc3BvbmRpbmcgTGludXggZHJpdmVyLgoKICAgIE5vdGU6IEkgdGhpbmsgdGhlICJpb19hZGRyIiBmaWVsZCBvZiAic3RydWN0IGZzbF91cG0iIGNvdWxkIGJlIHJlbW92ZWQKCSAgYXMgd2VsbCwgYmVjYXVzZSB0aGUgYWRkcmVzcyBpcyBhbHJlYWR5IGRldGVybWluZWQgYnkKCSAgIm5hbmQtPklPX0FERFJfW1JXXSIsIGJ1dCBJJ20gbm90IDEwMCUgc3VyZS4KCiAgICBUaGlzIHBhdGNoIGhhcyBiZWVuIHRlc3RlZCBvbiBhIFRRTTg1NDggbW9kdWxlcyB3aXRoIHRoZSBOQU5EIGNoaXAKICAgIE1pY3JvbiBNVDI5RjhHMDhGQUJXUC4KCiAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBwb3N0ZWQgdG8gdGhpcyBsaXN0IGEgZmV3CiAgICBtaW51dGVzIGFnbzoKCiAgICAgIFBQQzogYWRkIGFjY2Vzc29yIG1hY3JvcyB0byBjbGVhciBhbmQgc2V0IGJpdHMgaW4gb25lIHNob3QKICAgICAgODN4eC84NXh4Lzg2eHg6IGFkZCBtb3JlIE14TVIgbG9jYWwgYnVzIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNmJlZWNmYmI1NDI5OTJlZWRlNTgzMTI0MGNkNTg2NzgyNzQ2ODNhOQpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTE6NTkgMjAwOCArMDIwMAoKICAgIE1QQzg1eHg6IEJlYXV0aWZ5IGJvb3Qgb3V0cHV0IG9mIEwyIGNhY2hlIGNvbmZpZ3VyYXRpb24KCiAgICBUaGUgYm9vdCBvdXRwdXQgaXMgbm93IGFsaWduZWQgcG9wZXJseSB3aXRoIG90aGVyIGJvb3Qgb3V0cHV0CiAgICBsaW5lcywgZS5nLjoKCiAgICAgIEZMQVNIOiAxMjggTUIKICAgICAgTDI6ICAgIDUxMiBLQiBlbmFibGVkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgMzk4NDE1MTE0ZjBhNzA1MTYzYTE0NTQzZTlmZWYwM2Y3MzRiMWZmYQpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgSnVuIDQgMTI6NDU6MjIgMjAwOCArMDIwMAoKICAgIFBQQzogYWRkIGFjY2Vzc29yIG1hY3JvcyB0byBjbGVhciBhbmQgc2V0IGJpdHMgaW4gb25lIHNob3QKCiAgICBQUEM6IGFkZCBhY2Nlc3NvciBtYWNyb3MgdG8gY2xlYXIgYW5kIHNldCBiaXRzIGluIG9uZSBzaG90CgogICAgVGhpcyBwYXRjaCBhZGRzIG1hY3JvcyBmcm9tIGxpbnV4L2luY2x1ZGUvYXNtLXBvd2VycGMvaW8uaCB0byBjbGVhciBhbmQKICAgIHNldCBiaXRzIGluIG9uZSBzaG90IHVzaW5nIHRoZSBpbl9iZTMyLCBvdXRfYmUzMiwgZXRjLiBhY2Nlc3NvciBmdW5jdGlvbnMuCiAgICBUaGV5IGFyZSB2ZXJ5IGhhbmR5IHRvIG1hbmlwdWxhdGUgYml0cyBpdCBJL08gcmVnaXN0ZXJzLgoKICAgIFRoaXMgcGF0Y2ggaXMgcmVxdWlyZWQgZm9yIG15IGZvcnRoY29taW5nIEZTTCBOQU5EIFVQTSBkcml2ZXIgcmUtd3JpdGUgYW5kCiAgICB0aGUgc3VwcG9ydCBmb3IgdGhlIFRRTTg1NDggbW9kdWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IDQ2Nzc5ODhjN2VkYzA3MGMzNzg2ZDNkYjc5OTRhYmVjYTNhYjgyYTAKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJV2VkIEp1biA0IDEzOjUyOjE3IDIwMDggKzAyMDAKCiAgICBUUU06IG1vdmUgVFFNIGJvYXJkcyB0byBib2FyZC90cWMKCiAgICBNb3ZlIGFsbCBUUU0gYm9hcmQgZGlyZWN0b3JpZXMgdG8gdGhlIHZlbmRvciBzcGVjaWZpYyBkaXJlY3RvcnkgInRxYyIKICAgIGZvciBtb2R1bGVzIGZyb20gVFEtQ29tcG9uZW50cyBHbWJIIChodHRwOi8vd3d3LnRxYy5kZSkuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgNmZhYjJmZTcyY2E1YmY5NTI4MGNkNTJjZGYzNzhhZjNlNTA2ZWI1MApBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglNb24gSnVuIDIgMTI6MDk6MzAgMjAwOCArMDIwMAoKICAgIDgzeHgvODV4eC84Nnh4OiBhZGQgbW9yZSBNeE1SIGxvY2FsIGJ1cyBkZWZpbml0aW9ucwoKICAgIDgzeHgvODV4eC84Nnh4OiBhZGQgbW9yZSBNeE1SIGxvY2FsIGJ1cyBkZWZpbml0aW9ucwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBtb3JlIG1hY3JvIGRlZmluaXRpb25zIGZvciB0aGUgVVBNIE1hY2hpbmUgTW9kZSBSZWdpc3RlcnMKICAgIFRoZXkgYXJlIGNvcGllZCBmcm9tICJpbmNsdWRlL21wYzgyeHguaCIgdG8gc2ltcGxpZnkgdGhlIG1lcmdlIG9mIGFsbCA4eHh4CiAgICBjb21tb24gbG9jYWwgYnVzIGRlZmluaXRpb25zIGludG8gaW5jbHVkZS9hc20tcHBjL2ZzbF9sYmMuaC4gVGhleSBhcmUKICAgIHJlcXVpcmVkIGZvciBteSBmb3J0aGNvbWluZyBGU0wgTkFORCBVUE0gZHJpdmVyIHJlLXdyaXRlIGFuZCB0aGUgc3VwcG9ydAogICAgZm9yIHRoZSBUUU04NTQ4IG1vZHVsZS4KCiAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgdHdvIHBhdGNoZXMgZnJvbSBBbnRvbiBWb3JvbnRzb3Y6CgogICAgaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3UtYm9vdC11c2Vyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQvbXNnMDY1MTEuaHRtbAogICAgaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3UtYm9vdC11c2Vyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQvbXNnMDY1ODcuaHRtbAoKICAgIEkgbGVhdmUgY29kaW5nIHN0eWxlIHZpb2xhdGlvbiBmaXhlcywgY29kZSBiZWF1dGlmaWNhdGlvbiBhbmQgbmFtZQogICAgY29ycmVjdGlvbnMgdG8gc29tZWJvZHkgZWxzZSA7LSguCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgYzhjNWZjMjY2ZTQ0OTllMjgzYzI5M2NjYjk3Mjg2MzE1NmFhNDEzNApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgTWF5IDI5IDE4OjE0OjU2IDIwMDggKzA0MDAKCiAgICA4M3h4Lzg1eHg6IGZ1cnRoZXIgbG9jYWxidXMgY2xlYW51cHMKCiAgICBNZXJnZSBtcGM4NXh4LmgncyBMQkMgZGVmaW5lcyB0byBmc2xfbGJjLmguIEFsc28sIGFkb3B0IEFDUyBuYW1lcwogICAgZnJvbSBtcGM4NXh4LmgsIHNvIEFDU18wYjEwIHJlbmFtZWQgdG8gQUNTX0RJVjQsIEFDU18wYjExIHRvIEFDU19ESVYyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDQyZGJkNjY3Yzg4ZDQ5Njg4MmQ1M2UyMjY1NmU4OWI2NTQyMDU0OTIKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIE1heSAyOCAxODoyMDoxNSAyMDA4ICswNDAwCgogICAgODN4eC84NXh4Lzg2eHg6IGZhY3RvciBvdXQgRnJlZXNjYWxlIExvY2FsYnVzIGRlZmluZXMgb3V0IG9mIG1wYzgzeHguaAoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgRnJlZXNjYWxlIExvY2FsYnVzIGRlZmluZXMgb3V0IG9mIG1wYzgzeHguaCwgc28gd2UgY291bGQKICAgIHVzZSBpdCBvbiBNUEM4NXh4IGFuZCBNUEM4Nnh4IHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNzMwYjJmY2Y2ZmNkOWVlYzNlYTg2ZmJiMDg3YzNmOThhYTIzYTc2OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBNYXkgMjkgMTE6MjI6MDYgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZCBzZXR0aW5nIG9mIGNhY2hlIHByb3BzIGluIHRoZSBkZXZpY2UgdHJlZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRkYmRiNzY4MWUyNDM0MzE1MzBkZjA3MjU2MjcxOTJhMGM0YWVmZGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgSnVuIDEwIDE2OjUzOjQ2IDIwMDggLTA1MDAKCiAgICA4NXh4OiBleHBvc2UgY3B1IGlkZW50aWZpY2F0aW9uCgogICAgVGhlIGN1cnJlbnQgY3B1IGlkZW50aWZpY2F0aW9uIGNvZGUgaXMgdXNlZCBqdXN0IHRvIHJldHVybiB0aGUgbmFtZQogICAgb2YgdGhlIHByb2Nlc3NvciBhdCBib290LiAgVGhlcmUgYXJlIHNvbWUgb3RoZXIgbG9jYXRpb25zIHRoYXQgdGhlIG5hbWUKICAgIGlzIHVzZWZ1bCAoZGV2aWNlIHRyZWUgc2V0dXApLiAgRXhwb3NlIHRoZSBmdW5jdGlvbmFsaXR5IHRvIG90aGVyIGJpdHMKICAgIG9mIGNvZGUuCgogICAgQWxzbywgZHJvcCB0aGUgJ0UnIHN1ZmZpeCBhbmQgYWRkIGl0IG9uIGJ5IGxvb2tpbmcgYXQgdGhlIFNWUiB2ZXJzaW9uCiAgICB3aGVuIHdlIHByaW50IHRoaXMgb3V0LiAgVGhpcyBpcyBtYWlubHkgdG8gYWxsb3cgdGhlIG1vc3QgZmxleGlibGUgdXNlCiAgICBvZiB0aGUgbmFtZS4gIFRoZSBkZXZpY2UgdHJlZSBjb2RlIHRlbmRzIHRvIG5vdCBjYXJlIGFib3V0IHRoZSAnRScgc3VmZml4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjMyOWZlMTEzZDg0N2U0M2NjYThlNGEwZTRlZGQ2MTNiNTBiODQ5MgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTAgMTM6MjU6MjQgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IE1WQkxNNzogbWlub3IgYnVpbGQgZml4dXBzCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMTI5M2U1NDliNTZkYTEzNWVmMzJmZmNhNWI5ZDM1YTE2YWE2ODAyCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglUdWUgSnVuIDEwIDA5OjE0OjA1IDIwMDggKzAyMDAKCiAgICBhZGQgTVBDODM0MyBiYXNlZCBib2FyZCBtdkJsdWVMWU5YLU03IChib2FyZCttYWtlIGZpbGVzKQoKICAgIEFkZCBNUEM4MzQzIGJhc2VkIGJvYXJkIG12Qmx1ZUxZTlgtTTcuCiAgICBJdCdzIGEgc2luZ2xlIGJvYXJkIHN0ZXJlbyBjYW1lcmEgc3lzdGVtLgogICAgUGxlYXNlIHJlYWQgZG9jL1JFQURNRS5tdmJsbTcgZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMDA1YjkzOTI1YmE0OWYwN2RhMmFhNzQ4NTI3OTk2ZDkyN2UxNzJmCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglUdWUgSnVuIDEwIDA5OjEzOjE2IDIwMDggKzAyMDAKCiAgICBhZGQgTVBDODM0MyBiYXNlZCBib2FyZCBtdkJsdWVMWU5YLU03IChkb2MrY29uZmlnKQoKICAgIEFkZCBNUEM4MzQzIGJhc2VkIGJvYXJkIG12Qmx1ZUxZTlgtTTcuCiAgICBJdCdzIGEgc2luZ2xlIGJvYXJkIHN0ZXJlbyBjYW1lcmEgc3lzdGVtLgogICAgUGxlYXNlIHJlYWQgZG9jL1JFQURNRS5tdmJsbTcgZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmOTAyM2FmYmRmZDlmMjdlN2MzOGYzY2NlOTY1NzQ2ZTU2ZDYyZGQzCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBNYXkgMjkgMTg6MTQ6NTYgMjAwOCArMDQwMAoKICAgIDgzeHgvODV4eDogZnVydGhlciBsb2NhbGJ1cyBjbGVhbnVwcwoKICAgIG1vdmUgdGhlIEJSeF8qIGFuZCBPUnhfKiBsZWZ0IGJlaGluZCBpbiBtcGM4NXh4LmgKCiAgICBUaGUgc2FtZSBpcyBuZWVkZWQgZm9yIG1wYzh4eC5oIGFuZCBtcGM4MjYwLmggKGRlZmluZXMgYXJlIGFsbW9zdAogICAgdGhlIHNhbWUsIGp1c3QgZmV3IGRpZmZlcmVuY2VzIHdoaWNoIG5lZWRzIHNvbWUgYXR0ZW50aW9uIHRob3VnaCkuCgogICAgQnV0IHRoZSBiYWQgbmV3cyBmb3IgbXBjOHh4IGFuZCBtcGM4MjYwIGlzIHRoYXQgdGhlcmUgYXJlIGEgbG90IG9mIHVzZXJzCiAgICBvZiB0aGVzZSBkZWZpbmVzLiBTbyB0aGlzIGNsZWFudXAgSSdsbCBsZWF2ZSBmb3IgdGhlICJiZXR0ZXIgdGltZXMiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjMwYmIxZjdjOTU0ZDc4NTVkOWIyMzYyNGIzM2IwMGM1MGI0Njk3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBNYXkgMjggMTg6MjA6MTUgMjAwOCArMDQwMAoKICAgIDgzeHgvODV4eC84Nnh4OiBmYWN0b3Igb3V0IEZyZWVzY2FsZSBMb2NhbGJ1cyBkZWZpbmVzIG91dCBvZiBtcGM4M3h4LmgKCiAgICBUaGlzIHBhdGNoIG1vdmVzIEZyZWVzY2FsZSBMb2NhbGJ1cyBkZWZpbmVzIG91dCBvZiBtcGM4M3h4LmgsIHNvIHdlIGNvdWxkCiAgICB1c2UgaXQgb24gTVBDODV4eCBhbmQgTVBDODZ4eCBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDgyYjRmYzBjZThjY2E5NWU4NTdmYzUxMDIyZTg0MWNiMmRiZWU2YQpBdXRob3I6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+CkRhdGU6CU1vbiBKdW4gMiAxNTowOTozMCAyMDA4ICswMjAwCgogICAgQWRkIG1pc3NpbmcgQ1NDT05GSUdfQkFOS19CSVRfMyBkZWZpbmUgdG8gbXBjODN4eC5oCgogICAgU2lnbmVkLW9mZi1ieTogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2I5MDRjY2I5M2MzMTk2NzI3ZTJlOTg3MGNiMWRmOTAzY2FiMTlhZApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CU1vbiBKdW4gOSAyMzozNzo0NCAyMDA4ICswOTAwCgogICAgbmV0OiBDb25kaXRpb25hbCBDT0JKUyBpbmNsdXNpb24gb2YgbmV0d29yayBkcml2ZXJzCgogICAgUmVwbGFjZSBDT0JKUy15IHdpdGggYXBwcm9wcmlhdGUgZHJpdmVyIGNvbmZpZyBuYW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAyZmI2OThiZjUwZjRhZmYyNDg1NTgxYTEyZmE2MzRhMDdjMDQwZTRhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biA5IDIxOjAyOjE3IDIwMDggLTA0MDAKCiAgICBVc2Ugc3RybmNtcCgpIGZvciB0aGUgZmR0IGNvbW1hbmQKCiAgICBDbGVhbmVyIHRoYW4gZG9pbmcgbXVsdGlwbGUgY29uZGl0aW9uYWxzIG9uIGNoYXJhY3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA0N2FiZThhYjI5MGQyNzIxYThlZWFkZmY2NWI5MzllNmFmOGMwMWIwCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEp1biA3IDEyOjI1OjA1IDIwMDggLTA0MDAKCiAgICBUaGUgZmR0IGJvYXJkc2V0dXAgY29tbWFuZCBjcml0ZXJpYSB3YXMgbm90IHVuaXF1ZQoKICAgIEl0IHdhcyBjaGVja2luZyBqdXN0IGZvciAiYiIsIHdoaWNoIGlzIG5vdCB1bmlxdWUgd2l0aCByZXNwZWN0IHRvIHRoZQogICAgImJvb3QiIGNvbW1hbmQuICBDaGFuZ2UgdG8gY2hlY2sgZm9yICJib2EiW3Jkc2V0dXBdLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMmYwOGJmYTk1MjZiYWU0ZjQ2MWUwNDM1MzBjZmI5MDNmZWMwZDI3MwpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUdWUgTWF5IDIwIDE3OjE5OjExIDIwMDggKzEwMDAKCiAgICBsaWJmZHQ6IFNldmVyYWwgY2xlYW51cHMgdG8gcGFyYW1ldGVyIGNoZWNraW5nCgogICAgVGhpcyBwYXRjaCBtYWtlcyBhIGNvdXBsZSBvZiBzbWFsbCBjbGVhbnVwcyB0byBwYXJhbWV0ZXIgY2hlY2tpbmcgb2YKICAgIGxpYmZkdCBmdW5jdGlvbnMuCgoJLSBJbiBzZXZlcmFsIGZ1bmN0aW9ucyB3aGljaCB0YWtlIGEgbm9kZSBvZmZzZXQsIHdlIHVzZSBhbgogICAgaWRpb20gaW52b2x2aW5nIGZkdF9uZXh0X3RhZygpIGZpcnN0IHRvIGNoZWNrIHRoYXQgd2UgaGF2ZSBpbmRlZWQgYmVlbgogICAgZ2l2ZW4gYSBub2RlIG9mZnNldC4gIFRoaXMgcGF0Y2ggYWRkcyBhIGhlbHBlciBmdW5jdGlvbgogICAgX2ZkdF9jaGVja19ub2RlX29mZnNldCgpIHRvIGVuY2Fwc3VsYXRlIHRoaXMgdXNhZ2Ugb2YgZmR0X25leHRfdGFnKCkuCgoJLSBJbiBmZHRfcncuYyBpbiBzZXZlcmFsIHBsYWNlcyB3ZSBoYXZlIHRoZSBleHBhbmRlZCB2ZXJzaW9uCiAgICBvZiB0aGUgUldfQ0hFQ0tfSEVBREVSKCkgbWFjcm8gZm9yIG5vIHBhcnRpY3VsYXIgcmVhc29uLiAgVGhpcyBwYXRjaAogICAgcmVwbGFjZXMgdGhvc2UgaW5zdGFuY2VzIHdpdGggYW4gaW52b2NhdGlvbiBvZiB0aGUgbWFjcm87IHRoYXQncyB3aGF0CiAgICBpdCdzIGZvci4KCgktIEluIGZkdF9zdy5jIHdlIHJlbmFtZSB0aGUgY2hlY2tfaGVhZGVyX3N3KCkgZnVuY3Rpb24gdG8KICAgIHN3X2NoZWNrX2hlYWRlcigpIHRvIG1hdGNoIHRoZSBhbmFsZ291cyBmdW5jdGlvbiBpbiBmZHRfcncuYywgYW5kIHdlCiAgICBwcm92aWRlIGFuIFNXX0NIRUNLX0hFQURFUigpIHdyYXBwZXIgbWFjcm8gYXMgUldfQ0hFQ0tfSEVBREVSKCkKICAgIGZ1bmN0aW9ucyBpbiBmZHRfcncuYwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGZlYzZkOWVlN2MxMDQ0M2Y2NWNlMTc4OGVmODE4OTE5MTY3YmJmMmUKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgSnVuIDMgMjA6MzQ6NDUgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSB0aGUgZGVwcmVjYXRlZCBDT05GSUdfT0ZfRkxBVF9UUkVFCgogICAgVXNlIENPTkZJR19PRl9MSUJGRFQgaW5zdGVhZCB0byBzdXBwb3J0IGZsYXR0ZW5lZCBkZXZpY2UgdHJlZXMuICBJdCBpcwogICAgY2xlYW5lciwgaGFzIGJldHRlciBmdW5jdGlvbmFsaXR5LCBhbmQgaXMgYmV0dGVyIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDYyYmNkZGEyOTNlZmE3NTJmODI4MWZiZDlkYTAzODIyYjI3Y2U4MmYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgSnVuIDMgMjA6MjY6MjkgMjAwOCAtMDQwMAoKICAgIENoYW5nZSB0aGUgc3R4eHN0IHRvIENPTkZJR19PRl9MSUJGRFQKCiAgICBUaGlzIHdhcyBjb25maWd1cmVkIHRvIHVzZSB0aGUgZGVwcmVjYXRlZCBDT05GSUdfT0ZfRkxBVF9UUkVFLCBjaGFuZ2UKICAgIHRvIENPTkZJR19PRl9MSUJGRFQuCgogICAgV0FSTklORzogSXQgYXBwZWFycyB0aGF0IHRoaXMgYm9hcmQgbG9zdCBpdHMgYWJpbGl0eSB0byBib290IHZpYSBhCiAgICBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgcHJpb3IgdG8gdGhpcyBjaGFuZ2VzZXQuCgogICAgV0FSTklORzogVGhpcyBjb252ZXJzaW9uIHdhcyB1bnRlc3RlZCBiZWNhdXNlIEkgZG8gbm90IGhhdmUgYSBib2FyZCB0bwogICAgdGVzdCBpdCBvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDU4OWMwNDI3MWQxMjk3MjlhOGIwMTM5MTQ1Mzg1MWFiOWNjNDA2OWMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgSnVuIDMgMjA6MjQ6NTggMjAwOCAtMDQwMAoKICAgIENvbnZlcnQgbXBjNzQ0OGhwYzIgdG8gQ09ORklHX09GX0xJQkZEVAoKICAgIFRoaXMgd2FzIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBkZXByZWNhdGVkIENPTkZJR19PRl9GTEFUX1RSRUUsIGNoYW5nZQogICAgdG8gQ09ORklHX09GX0xJQkZEVC4KCiAgICBXQVJOSU5HOiBUaGlzIGNvbnZlcnNpb24gaXMgdW50ZXN0ZWQgYmVjYXVzZSBJIGRvIG5vdCBoYXZlIGEgYm9hcmQgdG8KICAgIHRlc3QgaXQgb24uCgogICAgTk9URTogVGhlIEZEVCBibG9iIChEVFMpIG11c3QgaGF2ZSBhbiAvYWxpYXNlcy9ldGhlcm5ldDAgYW5kIChvcHRpb25hbGx5KQogICAgL2FsaWFzZXMvZXRoZXJuZXQxIHByb3BlcnR5IGZvciB0aGUgZXRoZXJuZXQgdG8gd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGVlMWUzNWJlZGU5MWRlYmM4YmZmOWIwMmY3NTU3NDQ4NjAzM2I2NTIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTWF5IDI5IDAxOjIxOjI0IDIwMDggLTA1MDAKCiAgICA4NXh4OiBPbmx5IHVzZSBQT1JQTExTUltERFJfUmF0aW9dIG9uIHBsYXRmb3JtcyB0aGF0IGRlZmluZSBpdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2I5NTE5ZmM1MDgwMjQzNmU0MTdjODM5ZTY5ZGY3YjIwMTZjYWRlNQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDE0IDEzOjEwOjA0IDIwMDggLTA1MDAKCiAgICBNUEM4NXh4OiBDaGFuZ2UgdHJhcHMuYyB0byBub3QgcmVmZXJlbmNlIG5vbi1hZGRyZXNzYWJsZSBtZW1vcnkKCiAgICBDdXJyZW50bHksIEVORF9PRl9SQU0gaXMgdXNlZCBieSB0aGUgdHJhcCBjb2RlIHRvIGRldGVybWluZSBpZgogICAgd2Ugc2hvdWxkIGF0dGVtcHQgdG8gYWNjZXNzIHRoZSBzdGFjayBwb2ludGVyIG9yIG5vdC4gSG93ZXZlciwKICAgIG9uIHN5c3RlbXMgd2l0aCBhIGxvdCBvZiBSQU0sIG9ubHkgYSBzdWJzZXQgb2YgdGhlIFJBTSBpcwogICAgZ3VhcmFudGVlZCB0byBiZSBtYXBwZWQgaW4gYW5kIGFjY2Vzc2libGUuCUNoYW5nZSBFTkRfT0ZfUkFNCiAgICB0byB1c2UgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkgaW5zdGVhZCBvZiB1c2luZyB0aGUgcmF3IHJhbQogICAgc2l6ZSBvdXQgb2YgdGhlIGJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmYWRkYWVjZWE1MmY1ODVmNTM4ZmRmOWMyZTYxZjg1YTc4OWIxOWMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CU1vbiBKdW4gOSAxMzozOTo1NyAyMDA4ICswOTAwCgogICAgc2g6IFJlbmVzYXMgU29sdXRpb25zIFNINzc2M1JEUCBib2FyZCBzdXBwb3J0CgogICAgU0g3NzYzUkRQIGhhcyBTQ0lGLCBOT1IgRmxhc2gsIEV0aGVybmV0LCBVU0IgaG9zdCwgTENEQyBhbmQgTU1DLgogICAgSW4gdGhpcyBwYXRjaCwgc3VwcG9ydCBTQ0lGLCBOT1IgRmxhc2gsIGFuZCBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNjAxNzkwOThhOTVlYWE5NzIwMDdkN2VjNThlNGMxNTg4MDI5NzIwZgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIEp1biA2IDE2OjI0OjEzIDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBTSDc3NjMKCiAgICBSZW5lc2FzIFNINzc2MyBoYXMgMyBTQ0lGLCBNTUMsIExDREMsIEV0aGVybmV0IGFuZCBvdGhlci4KICAgIFRoaXMgcGF0Y2ggc3VwcHJ0cyBDUFUgcmVnaXN0ZXIncyBoZWFkZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMDhjNWZhYmUxODFkNjYzZWVjMGZlYmE1ZWNkMDJjMGI3ODkzNGE1MgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIEp1biA2IDE2OjE2OjA4IDIwMDggKzA5MDAKCiAgICBzaDogU0g3NzYzIFNDSUYgc3VwcG9ydAoKICAgIFNINzc2MyBoYXMgMyBTQ0lGIGNoYW5uZWxzLiBTQ0lGMCBhbmQgMSBhcmUgc2FtZSByZWdpc3RlciBjb25zdGl0dXRpb24sCiAgICBidXQgb25seSBTQ0lGMiBpcyBkaWZmZXJlbnQuIFRoaXMgcGF0Y2ggd29yayBhbGwgU0NJRiBjaGFubmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA3OWI1MWZmODIwNWYwMzU0ZDUzMDA1NzA2MTRjMWQyZGI0OTk2NzljCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEp1biA3IDIwOjUxOjU5IDIwMDggKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvTWFrZWZpbGU6IFNwbGl0IFtDU11PQkpTIG9udG8gc2VwYXJhdGUgbGluZXMKCiAgICBBbHNvIGdldCByaWQgb2Ygc29tZSAjaWZkZWZzIGluICouYyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDhiZGU2M2ViM2Y3OWQ2OGY2OTMyMDE1MjhkYWZjOGFlN2FhMDg3ZGUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgSnVuIDcgMjA6NTE6NTYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBSZW5hbWUgQWxjaGVteSBwcm9jZXNzb3IgY29uZmlncyBpbnRvIENPTkZJR19TT0NfKgoKICAgIENPTkZJR19TT0NfQVUxWDAwCgogICAgICBDb21tb24gQWxjaGVteSBBdTF4MDAgc3R1ZmYuIEFsbCBBbGNoZW15IHByb2Nlc3NvciBiYXNlZCBtYWNoaW5lcwogICAgICBuZWVkIHRvIGhhdmUgdGhpcyBjb25maWcgYXMgYSBzeXN0ZW0gdHlwZSBzcGVjaWZpZXIuCgogICAgQ09ORklHX1NPQ19BVTEwMDAsIENPTkZJR19TT0NfQVUxMTAwLCBDT05GSUdfU09DX0FVMTIwMCwKICAgIENPTkZJR19TT0NfQVUxNTAwLCBDT05GSUdfU09DX0FVMTU1MAoKICAgICAgTWFjaGluZSB0eXBlIHNwZWNpZmllcnMuIEVhY2ggcG9ydCBzaG91bGQgaGF2ZSBvbmUgb2YgYWJvdmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgY2M0OWNhZGVlYjhiYjJmMGFlM2ZkYzEzYWY3MDUxYWU1OWYwODNiYwpBdXRob3I6IFN0dWFydCBXb29kIDxzdHVhcnQud29vZEBsYWJ4dGVjaG5vbG9naWVzLmNvbT4KRGF0ZToJRnJpIE1heSAzMCAxNjowNToyOCAyMDA4IC0wNDAwCgogICAgZW52X25hbmQuYzogQWRkZWQgYmFkIGJsb2NrIG1hbmFnZW1lbnQgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcwoKICAgIE1vZGlmaWVkIHRvIGNoZWNrIGZvciBiYWQgYmxvY2tzIGFuZCB0byBza2lwcGluZyBvdmVyIHRoZW0gd2hlbgogICAgQ0ZHX0VOVl9SQU5HRSBoYXMgYmVlbiBkZWZpbmVkLgogICAgQ0ZHX0VOVl9SQU5HRSBtdXN0IGJlIGxhcmdlciB0aGFuIENGR19FTlZfU0laRSBhbmQgYWxpZ25lZCB0byB0aGUgTkFORAogICAgZmxhc2ggYmxvY2sgc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdHVhcnQgV29vZCA8c3R1YXJ0Lndvb2RAbGFieHRlY2hub2xvZ2llcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNzk3MjZiZDAwNTU4ZTgwMjYzZDQ0NTgxYzQ0MTY3NjI1YjdmYjlhCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTQgMTM6MDk6NTggMjAwOCAtMDUwMAoKICAgIE1QQzg2eHg6IENoYW5nZSB0cmFwcy5jIHRvIG5vdCByZWZlcmVuY2Ugbm9uLWFkZHJlc3NhYmxlIG1lbW9yeQoKICAgIEN1cnJlbnRseSwgRU5EX09GX1JBTSBpcyB1c2VkIGJ5IHRoZSB0cmFwIGNvZGUgdG8gZGV0ZXJtaW5lIGlmCiAgICB3ZSBzaG91bGQgYXR0ZW1wdCB0byBhY2Nlc3MgdGhlIHN0YWNrIHBvaW50ZXIgb3Igbm90LiBIb3dldmVyLAogICAgb24gc3lzdGVtcyB3aXRoIGEgbG90IG9mIFJBTSwgb25seSBhIHN1YnNldCBvZiB0aGUgUkFNIGlzCiAgICBndWFyYW50ZWVkIHRvIGJlIG1hcHBlZCBpbiBhbmQgYWNjZXNzaWJsZS4JQ2hhbmdlIEVORF9PRl9SQU0KICAgIHRvIHVzZSBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSByYXcgcmFtCiAgICBzaXplIG91dCBvZiB0aGUgYmQgdG8gcHJldmVudCB1cyBmcm9tIHRyeWluZyB0byBhY2Nlc3MKICAgIG5vbi1tYXBwZWQgbWVtb3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMzOGNjMDM4NDYxYTZjNzcwOWM1Yjg2ZmQ5YTI0MDIwOTMzOGExYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDYgMTQ6Mjg6MTQgMjAwOCArMDIwMAoKICAgIHRvb2xzL21raW1hZ2U6IGZpeCBjb21waWxlciB3YXJuaW5ncyBvbiBzb21lIHN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiMjgxNWY3OTI4OGQ0ZGE3YTNiYTE4YmRiZDA1MTIwY2UwOWQ1NjIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDYgMTY6MTA6NDEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IG1pc3NwZWxsZWQgQ09ORklHXzQ0MFNQRS80NDBFUFgvR1JYIGNvbmZpZyBvcHRpb25zCgogICAgV2UgdXNlIHVwcGVyIGNhc2UgbGV0dGVycyBmb3IgdGhlIEFNQ0MgcHJvY2Vzc29yIGRlZmluZXMgKGxpa2UKICAgIENPTkZJR180NDBTUEUpIGluIFUtQm9vdC4gU28gdGhlIDQ0MFNQZSBpcyBsYWJlbGVkIENPTkZJR180NDBTUEUgYW5kCiAgICBub3QgQ09ORklHXzQ0MFNQZS4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgbGFzdCBtaXNzcGVsbGVkIGNvbmZpZyBvcHRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MjY3NWRjNmMwNmE0ODg0NmQxODAxMDYxNjFkNDlkZDcxNDM4M2NjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDYgMTU6NTU6MjEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVW5pZnkgQU1DQydzIGJvYXJkIGNvbmZpZyBmaWxlcyAocGFydCAzLzMpCgogICAgVGhpcyBwYXRjaCBzZXJpZXMgdW5pZmllcyB0aGUgQU1DQyBldmFsIGJvYXJkIHBvcnRzIGJ5IGludHJvZHVjaW5nCiAgICBhIGNvbW1vbiBpbmNsdWRlIGhlYWRlciBmb3IgYWxsIEFNQ0MgZXZhbCBib2FyZHM6CgogICAgaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmgKCiAgICBUaGlzIGhlYWRlciBub3cgaW5jbHVkZXMgYWxsIGNvbW1vbiBjb25maWd1cmF0aW9uIG9wdGlvbnMvZGVmaW5lcyB3aGljaAogICAgYXJlIHJlbW92ZWQgZnJvbSB0aGUgYm9hcmQgc3BlY2lmaWMgaGVhZGVycy4KCiAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIGVhc2Ugb2YgbWFpbnRlbmFuY2UgYW5kIHVuaWZpZWQgbG9vayBhbmQgZmVlbAogICAgb2YgYWxsIEFNQ0MgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTBmMjA0MDk2ZDZlMmM5OTQwZjY3ODE2ZjE1NGE4MTI1YmFiMTE2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDYgMTU6NTU6MDMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVW5pZnkgQU1DQydzIGJvYXJkIGNvbmZpZyBmaWxlcyAocGFydCAyLzMpCgogICAgVGhpcyBwYXRjaCBzZXJpZXMgdW5pZmllcyB0aGUgQU1DQyBldmFsIGJvYXJkIHBvcnRzIGJ5IGludHJvZHVjaW5nCiAgICBhIGNvbW1vbiBpbmNsdWRlIGhlYWRlciBmb3IgYWxsIEFNQ0MgZXZhbCBib2FyZHM6CgogICAgaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmgKCiAgICBUaGlzIGhlYWRlciBub3cgaW5jbHVkZXMgYWxsIGNvbW1vbiBjb25maWd1cmF0aW9uIG9wdGlvbnMvZGVmaW5lcyB3aGljaAogICAgYXJlIHJlbW92ZWQgZnJvbSB0aGUgYm9hcmQgc3BlY2lmaWMgaGVhZGVycy4KCiAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIGVhc2Ugb2YgbWFpbnRlbmFuY2UgYW5kIHVuaWZpZWQgbG9vayBhbmQgZmVlbAogICAgb2YgYWxsIEFNQ0MgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhOGExMWE5ZWQwNDZiNDgwYTE2ZTQ3YTE1OGY4ZjUzMDAwMjhkZmE2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDYgMTU6NTQ6MzEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVW5pZnkgQU1DQydzIGJvYXJkIGNvbmZpZyBmaWxlcyAocGFydCAxLzMpCgogICAgVGhpcyBwYXRjaCBzZXJpZXMgdW5pZmllcyB0aGUgQU1DQyBldmFsIGJvYXJkIHBvcnRzIGJ5IGludHJvZHVjaW5nCiAgICBhIGNvbW1vbiBpbmNsdWRlIGhlYWRlciBmb3IgYWxsIEFNQ0MgZXZhbCBib2FyZHM6CgogICAgaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmgKCiAgICBUaGlzIGhlYWRlciBub3cgaW5jbHVkZXMgYWxsIGNvbW1vbiBjb25maWd1cmF0aW9uIG9wdGlvbnMvZGVmaW5lcyB3aGljaAogICAgYXJlIHJlbW92ZWQgZnJvbSB0aGUgYm9hcmQgc3BlY2lmaWMgaGVhZGVycy4KCiAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIGVhc2Ugb2YgbWFpbnRlbmFuY2UgYW5kIHVuaWZpZWQgbG9vayBhbmQgZmVlbAogICAgb2YgYWxsIEFNQ0MgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZTM4YzkzOGVkNGJjYWRiNGY0ZmMxNDE5YTU0MTQzMWU5NGZjMjAyCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVRodSBKdW4gNSAxMzowMzozNiAyMDA4ICswMjAwCgogICAgRE05MDAwIGZpeCBzdGF0dXMgY2hlY2sgZmFpbCAweDZkIGVycm9yIGZvciB0cml6ZXBzIGJvYXJkCgogICAgQWNjb3JkaW5nIHRvIHRoZSBBcHBsaWNhdGlvbiBOb3RlcyBvZiB0aGUgRE05MDAwLCBvbmx5IHRoZSAyIGJpdHMgMDoxIG9mCiAgICB0aGUgc3RhdHVzIGJ5dGUgbmVlZCB0byBiZSBjaGVja2VkIHRvIGlkZW50aWZ5IGEgdmFsaWQgcGFja2V0IGluIHRoZSBmaWZvCgogICAgQnV0LCBUaGUgc2V2ZXJhbCBkaWZmZXJlbnQgQXBwbGljYXRpb24gTm90ZXMgZG8gbm90IGFsbCBzcGVhayB0aGUgc2FtZQogICAgbGFuZ3VhZ2Ugb24gdGhlc2UgYml0cy4gVGhleSBkbyBub3QgZGlzYWdyZWUsIGJ1dCBvbmx5IDEgQXBwbGljYXRpb24gTm90ZQogICAgbm90ZWQgZXhwbGljaXRseSB0aGF0IG9ubHkgdGhlc2UgMiBiaXRzIG5lZWQgdG8gYmUgY2hlY2tlZC4KICAgIEV2ZW4gdGhlIGRhdGFzaGVldHMgZG8gbm90IG1lbnRpb24gYW55dGhpbmcgYWJvdXQgdGhlc2UgMiBiaXRzLgoKICAgIEJlY2F1c2UgdGhlIG9sZCBjb2RlLCBhbmQgdGhlIGtlcm5lbCBjaGVjayB0aGUgd2hvbGUgYnl0ZSwgSSBsZWZ0IHRoaXMgcGllY2UKICAgIHVudG91Y2hlZC4KCiAgICBIb3dldmVyLCBJIHRlc3RlZCBhbGwgYm9hcmQvRE05MDAwW0F8RXxFUF0gZGV2aWNlcyB3aXRoIHRoaXMgMiBiaXQgY2hlY2ssIHNvCiAgICBpdCBzaG91bGQgd29yay4KCiAgICBOb3RpY2UsIHRoYXQgdGhlIDJuZCBpdGVyYXRpb24gdGhyb3VnaCB0aGlzIHJlY2VpdmUgbG9vcCAod2hlbiBhIDJuZCBwYWNrZXQgaXMKICAgIGluIHRoZSBmaWZvKSBpcyBtdWNoIHNob3J0ZXIgbm93LCBjb21wYXJlZCB0byB0aGUgb2xkZXIgVS1ib290IGRyaXZlciBjb2RlLAogICAgc28gdGhhdCB3ZSBjYW4gbWF5YmUgcnVuIGludG8gYSBoYXJkd2FyZSBjb25kaXRpb24gbm93IHRoYXQgd2FzIG5ldmVyIHNlZW4KICAgIGJlZm9yZSwgb3IgbWF5YmUgd2FzIHNlZW4gdmVyeSB1bmZyZXF1ZW50bHkuCgogICAgQWRkaXRpb25hbHkgYWRkZWQgYSBjbGVhbnVwIG9mIGEgc3RhY2sgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDdkYWYyZWJlOTE5NmRkNjcxMzFhMDZkODUwNDljM2E4YTA4Y2E0MTMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUaHUgSnVuIDUgMjI6Mjk6MDAgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBVcGRhdGUgPGFzbS9hZGRyc3BhY2UuaD4gaGVhZGVyCgogICAgLSBGaXggdHJhZGl0aW9uYWwgS1NFRyBuYW1lcwogICAgLSBSZXBsYWNlIFBIWVNBRERSIHdpdGggQ1BIWVNBRERSCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmMGQ1YTZmMDYwZDAwMzU4Yjg1YzYyYTkyMWE0MjNlYThkZjcxMTg0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVGh1IEp1biA1IDIyOjI5OjAwIDIwMDggKzA5MDAKCiAgICBbTUlQU10gbWlwc19jb25maWcubWs6IE1pc2MgZml4ZXMKCiAgICAtIEtpbGwgcmVkdW5kYW50IGAtcGlwZScgKHRoaXMgd2lsbCBiZSBhZGRlZCBieSAkKFRPUERJUikvY29uZmlnLm1rKQogICAgLSBNb2RpZnkgY29tbWVudHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDVmNjRkMjFjOWEyOTk4Nzk0ZjI1NWI0NjkxNjViOTFmMDkyZGZjMmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUaHUgSnVuIDUgMjI6Mjk6MDAgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBLaWxsIHVudXNlZCA8dmVyc2lvbi5oPiBpbmNsdXNpb25zCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBhNTVkNDgxNzRjZmQxYTViYzE4NDE1OTUxM2Y0OGRjYmJlNDA5YzgzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVGh1IEp1biA1IDIyOjI5OjAwIDIwMDggKzA5MDAKCiAgICBbTUlQU10gbGliX21pcHMvdGltZS5jOiBGaXggQ1AwIGNvdW50IHJlZ2lzdGVyIHVzYWdlIGFuZCB0aW1lciByb3V0aW5lcwoKICAgIE1JUFMgcG9ydCBoYXMgdHdvIHByb2JsZW1zIGluIHRpbWVyIHJvdXRpbmVzLiBPbmUgaXMgbm93IHdlIGFzc3VtZSBDRkdfSFoKICAgIGVxdWFscyB0byBDUDAgY291bnRlciBmcmVxdWVuY3ksIGJ1dCB0aGlzIGlzIHdyb25nLiBDRkdfSFogaGFzIHRvIGJlIDEwMDAKICAgIGluIHRoZSBVLUJvb3Qgc3lzdGVtLgoKICAgIFRoZSBvdGhlciBpcyB3ZSBkb24ndCBoYXZlIGEgcHJvcGVyIHRpbWUgbWFuYWdlbWVudCBjb3VudGVyIGxpa2UgdGltZXN0YW1wCiAgICBvdGhlciBBUkNIcyBoYXZlLiBXZSBuZWVkIHRoZSAzMi1iaXQgbWlsbGlzZWNvbmQgY2xvY2sgY291bnRlci4KCiAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGltZXN0YW1wIGFuZCBDWUNMRVNfUEVSX0pJRkZZLiB0aW1lc3RhbXAgaXMgYQogICAgMzItYml0IG5vbi1vdmVyZmxvd2luZyBDRkdfSFogY291bnRlciwgYW5kIENZQ0xFU19QRVJfSklGRlkgaXMgdGhlIG51bWJlcgogICAgb2YgY2FsY3VsYXRlZCBDUDAgY291bnRlciBjeWNsZXMgaW4gYSBDRkdfSFouCgogICAgU1RSQVRFR1k6CgogICAgKiBGaXggaW1wcm9wZXIgQ0ZHX0haIHZhbHVlIHRvIGhhdmUgMTAwMAoKICAgICogVXNlIENGR19NSVBTX1RJTUVSX0ZSRVEgZm9yIHRpbWVyIGNvdW50ZXIgZnJlcXVlbmN5LCBpbnN0ZWFkLgoKICAgICogdGltZXJfaW5pdDogaW5pdGlhbGl6ZSB0aW1lc3RhbXAgYW5kIHNldCB1cCB0aGUgZmlyc3QgdGltZXIgZXhwaXJhdGlvbi4KICAgICAgTm90ZSB0aGF0IHdlIGRvbid0IG5lZWQgdG8gaW5pdGlhbGl6ZSBDUDAgY291bnQvY29tcGFyZSByZWdpc3RlcnMgaGVyZQogICAgICBhcyB0aGV5IGhhdmUgYmVlbiBhbHJlYWR5IHplcm9lZCBvdXQgb24gdGhlIHN5c3RlbSByZXNldC4gTGVhdmUgdGhlbSBhcwogICAgICB0aGV5IGFyZS4KCiAgICAqIGdldF90aW1lcjogY2FsY3VsYXRlIGhvdyBtYW55IHRpbWVzdGFtcHMgaGF2ZSBiZWVuIHBhc3NlZCwgdGhlbiByZXR1cm4KICAgICAgYmFzZS1yZWxhdGl2ZSB0aW1lc3RhbXAuIE1ha2Ugc3VyZSB3ZSBjYW4gZWFzaWx5IGNvdW50IG1pc3NlZCB0aW1lc3RhbXBzCiAgICAgIHJlZ2FyZGxlc3Mgb2YgQ1AwIGNvdW50L2NvbXBhcmUgdmFsdWUuCgogICAgKiBnZXRfdGlja3M6IHJldHVybiB0aGUgY3VycmVudCB0aW1lc3RhbXAsIHRoYXQgaXMgZ2V0X3RpbWVyKDApLgoKICAgIE1vc3QgcGFydHMgYXJlIGZyb20gZ29vZCBvbGQgTGludXggdjIuNi4xNiBrZXJuZWwuCgogICAgdjI6CiAgICAtIFJlbW92ZSBGSVhNRSBjb21tZW50cyBhcyB0aGV5IHR1cm5lZCBvdXQgdG8gYmUgdHJpdmlhbC4KICAgIC0gVXNlIENQMCBjb21wYXJlIHJlZ2lzdGVyIGFzIGEgZ2xvYmFsIHZhcmlhYmxlIGZvciBleHBpcmVsby4KICAgIC0gS2lsbCBhIGdsb2JhbCB2YXJpYWJsZSAnY3ljbGVzX3Blcl9qaWZmeScuIFVzZSAjZGVmaW5lIENZQ0xFU19QRVJfSklGRlkKICAgICAgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDE5OWU0ZjY1N2M4YWY0MmVmZTNmYjNiYTFkMTEwNGViNmJiMjhjMjUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUaHUgSnVuIDUgMjI6Mjk6MDAgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBsaWJfbWlwcy90aW1lLmM6IEZpeCB1ZGVsYXkKCiAgICBXaGF0IHdlIGhhdmUgdG8gZG8gaXMganVzdCB0byB3YWl0IGZvciBnaXZlbiBtaWNyby1zZWNvbmRzLiBObyBuZWVkIHRvCiAgICB0YWtlIGludG8gYWNjb3VudCBjdXJyZW50IHRpbWUsIGdldF90aW1lciBhbmQgQ0ZHX0haLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgYzdlMzhlNDEzYWU2OTEyMGQzZTUxZjEzMmM3Y2IxZDZiMzUxNGQwMwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVRodSBKdW4gNSAyMjoyODo1OSAyMDA4ICswOTAwCgogICAgW01JUFNdIGxpYl9taXBzL3RpbWUuYzogUmVwbGFjZSBDUDAgYWNjZXNzIGZ1bmN0aW9ucyB3aXRoIGV4aXN0aW5nIG1hY3JvcwoKICAgIFdlIGFscmVhZHkgaGF2ZSBtYW55IHByZS1kZWZpbmVkIENQMCBhY2Nlc3MgbWFjcm9zIGluIDxhc20vbWlwc3JlZ3MuaD4uCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIG1pcHNfe2NvbXBhcmUsY291bnR9X3NldCBhbmQgbWlwc19jb3VudF9nZXQgd2l0aAogICAgZXhpc3RpbmcgbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNmI1MmNmZTE2Y2Q1Mzk5MzVlMzJiZDhjZjE5MTQ2NTIyZTQ2MmE0ZApBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglUdWUgSnVuIDMgMTU6NDg6MTcgMjAwOCArMDIwMAoKICAgIEdldCByaWQgb2YgYW5ub3lpbmcvc3VwZXJmbHVvdXMgYmFkLWNoZWNrc3VtIHdhcm5pbmcgbWVzc2FnZQoKICAgIFUtYm9vdCBjYW4gY29tcGxhaW4gYSBsb3QgYWJvdXQgJ2NoZWNrc3VtIGJhZCcgd2hlbiBpdCBpcyBhdHRhY2hlZCB0byB0aGUgbmV0d29yay4KICAgIEl0IGlzIGFubm95aW5nIGZvciBvcmRpbmFyeSB1c2VycyB3aG8gc3RhcnQgdG8gZG91YnQgdGhlIG5ldHdvcmsgY29ubmVjdGlvbgogICAgaW4gZ2VuZXJhbCB3aGVuIHRoZXkgc2VlIG1lc3NhZ2VzIGxpa2UgdGhpcy4KCiAgICBUaGlzIGlzIGNhdXNlZCBieSB0aGUgcm91dGluZSBOZXRDa3N1bU9rKCkgd2hpY2ggY2Fubm90IGhhbmRsZSBJUC1oZWFkZXJzIGxvbmdlcgogICAgdGhhbiAyMCBieXRlcy4gVGhvc2UgcGFja2FnZXMgY2FuIGJlIGlnbm9yZWQgYW55d2F5IGJ5IFUtYm9vdCwgc28gd2UgdHJhc2ggdGhlbQogICAgbm93IGJlZm9yZSBjaGVja2luZyB0aGUgY2hlY2tzdW0uCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGQ2ZWU1ZmE0MGMyNjk3MGQzOTk5MGM2ZmM0YTJmMjBhOTc4MjI2NTAKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJV2VkIEp1biA0IDEwOjQ3OjI1IDIwMDggKzAyMDAKCiAgICBGaXggb3JkZXIgZm9yIHJlYWRpbmcgcngtc3RhdHVzIHJlZ2lzdGVycyBpbiAzMmJpdCBtb2RlIG9mIERNOTAwMAoKICAgIEEgbGFzdCBtaW51dGUgY2xlYW51cCBiZWZvcmUgc3VibWl0dGluZyB0aGUgRE05MDAwQSBwYXRjaCBzZXJpZXMgeWVzdGVyZGF5IGludHJvZHVjZWQKICAgIGEgYnVnIGluIHJlYWRpbmcgdGhlIHJ4LXN0YXR1cyByZWdpc3RlcnMgaW4gMzJiaXQgbW9kZSBvbmx5LgogICAgVGhpcyBwYXRjaCByZXBhaXJzIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk4MjkxZTJlNjg5MDk2NDIwNDY1MDc0Y2NlOTI2YjIyNmQyZTcxYjQKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIEp1biAzIDE1OjI2OjI2IDIwMDggKzAyMDAKCiAgICBETTkwMDA6IFNvbWUgbWlub3IgY29kZSBjbGVhbnVwcwoKICAgIFNvbWUgbGluZXMgb2YgdGhlIFUtYm9vdCBETTkwMDB4IGRyaXZlciBhcmUgbG9uZ2VyIHRoYW4gODAgY2hhcmFjdGVycywgb3IKICAgIG5lZWQgc29tZSBvdGhlciBtaW5vciBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4NTBiYTc1NTVkYmQ0Y2E4ZDE0ZmM0NzViODY0ZDUzNDc5N2FkYWIzCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBKdW4gMyAxNToyNjoyNSAyMDA4ICswMjAwCgogICAgRE05MDAwOiBNYWtlIGRyaXZlciB3b3JrIHByb3Blcmx5IGZvciBETTkwMDBBCgogICAgVGhlIERNOTAwMEEgbmV0d29yayBjb250cm9sbGVyIGRvZXMgbm90IHdvcmsgd2l0aCB0aGUgVS1ib290IERNOTAwMHggZHJpdmVyLgogICAgQW5hbHlzaXMgc2hvd2VkIHRoYXQgbWFueSBpbmNvbWluZyBwYWNrZXRzIGFyZSBsb3N0LgoKICAgIFRoZSBETTkwMDBBIEFwcGxpY2F0aW9uIE5vdGVzIFYxLjIwIChzZWN0aW9uIDUuNi4xKSByZWNvbW1lbmQgdGhhdCB0aGUgcG9sbCB0bwogICAgY2hlY2sgZm9yIGEgdmFsaWQgcnggcGFja2V0IGJlIGRvbmUgb24gdGhlIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIsIG5vdAogICAgZGlyZWN0bHkgYnkgcGVyZm9ybWluZyB0aGUgZHVtbXkgcmVhZCBhbmQgdGhlIHJ4IHN0YXR1cyBjaGVjayBhcyBpcyBjdXJyZW50bHkKICAgIHRoZSBjYXNlIGluIHRoZSB1LWJvb3QgZHJpdmVyLgoKICAgIFdoZW4gdGhlIHJlY29tbWVuZGVkIHBvbGwgaXMgZG9uZSBhcyBzdWdnZXN0ZWQgdGhlIGRyaXZlciBzdGFydHMgd29ya2luZwogICAgY29ycmVjdGx5IG9uIDEwTWJpdC9IRCwgYnV0IG9uIDEwME1CaXQvRkQgcGFja2V0cyBjb21lIGluIGZhc3RlciBzbyB0aGF0IHRoZXJlCiAgICBjYW4gYmUgbW9yZSB0aGFuIDEgcGFja2FnZSBpbiB0aGUgZmlmbyBhdCB0aGUgc2FtZSB0aW1lLgoKICAgIFRoZSBkcml2ZXIgbXVzdCBwZXJmb3JtIHRoZSByeC1zdGF0dXMgY2hlY2sgaW4gYSBsb29wIGFuZCByZWFkIGFuZCBoYW5kbGUgYWxsCiAgICBwYWNrYWdlcyB1bnRpbCB0aGVyZSBpcyBubyBtb3JlIGxlZnQgX2FmdGVyXyB0aGUgaW50ZXJydXB0IFJYIGZsYWcgaXMgc2V0LgoKICAgIFRoaXMgY2hhbmdlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIERNOTAwMEEsIERNOTAwMEUsIERNOTAwMEVQLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmYmNiN2VjZTBlYTFlMzY0MTgwZjFjZjk2M2UwZmEwY2U3ZjY1NjBkCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBKdW4gMyAxNToyNjoyNCAyMDA4ICswMjAwCgogICAgRE05MDAwOiBJbXByb3ZlIGV0aF9yZXNldCgpIHJvdXRpbmUKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGFwcGxpY2F0aW9uIG5vdGVzIG9mIHRoZSBETTkwMDAgdjEuMjIgY2hhcHRlciA1LjIgYnVsbGV0IDIsIHRoZQogICAgcmVzZXQgcHJvY2VkdXJlIG11c3QgYmUgZG9uZSB0d2ljZSB0byBwcm9wZXJseSByZXNldCB0aGUgRE05MDAwIGJ5IG1lYW5zIG9mIHNvZnR3YXJlLgogICAgVGhpcyBlcnJhdGEgaXMgbm90IG5lZWRlZCBhbnltb3JlIGZvciB0aGUgRE05MDAwQSwgYnV0IGl0IGRvZXMgbm90IGJvdGhlciBpdC4KCiAgICBUaGlzIGNoYW5nZSBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBETTkwMDBBLCBETTkwMDBFLCBETTkwMDBFUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYWNiYTMxODQ3ZmFkOWFlNDA3MDhjYzJjOWYzYTYzNGVjMzVmMzQxNgpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglUdWUgSnVuIDMgMTU6MjY6MjMgMjAwOCArMDIwMAoKICAgIERNOTAwMDogaW1wcm92ZSBldGhfc2VuZCgpIHJvdXRpbmUKCiAgICBUaGUgZXRoX3NlbmQgcm91dGluZSBvZiB0aGUgVS1ib290IERNOTAwMHggZHJpdmVyIGRvZXMgbm90IG1hdGNoIHRoZQogICAgRE05MDAwIG9yIERNOTAwMEEgYXBwbGljYXRpb24gbm90ZXMvcHJvZ3JhbW1pbmcgZ3VpZGVzLgoKICAgIFRoaXMgY2hhbmdlIGltcHJvdmVzIHRoZSBzdGFiaWxpdHkgb2YgdGhlIERNOTAwMEEgbmV0d29yayBjb250cm9sbGVyLgoKICAgIFRoaXMgY2hhbmdlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIERNOTAwMEEsIERNOTAwMEUsIERNOTAwMEVQLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxMzRlMjY2MjUzYzAyYTc4MzI1NjBkYTU5ZDM5NDk4OWM0ZjY0NDUzCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBKdW4gMyAxNToyNjoyMiAyMDA4ICswMjAwCgogICAgRE05MDAwOiByZXBhaXIgZGVidWcgbG9nZ2luZwoKICAgIEl0IHNlZW1zIHRoYXQgdGhlIGRlYnVnZ2luZyBjb2RlIG9mIHRoZSBETTkwMDB4IGRyaXZlciBpbiBVLWJvb3QgaGFzIG5vdCBiZWVuCiAgICBjb21waWxlZCBmb3IgYSBsb25nIHRpbWUsIGJlY2F1c2UgaXQgY2Fubm90IGNvbXBpbGUuLi4KCiAgICBBbHNvIHJlYXJyYW5nZWQgc29tZSBsb2dsaW5lcyB0byBnZXQgbW9yZSB1c2VmdWwgaW5mbyB3aGlsZSBkZWJ1Z2dpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGExMDEzNjFiZmUyM2MxMjAzMjFlNDVkMTE0YzA2MDNiOGUwNzYzZTkKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIEp1biAzIDE1OjI2OjIxIDIwMDggKzAyMDAKCiAgICBETTkwMDA6IEFkZCBkYXRhIGJ1cy13aWR0aCBhdXRvIGRldGVjdGlvbi4KCiAgICBUaGUgVS1ib290IERNOTAwMHggZHJpdmVyIGNvbnRhaW5zIGEgY29tcGlsZSB0aW1lIGJ1cy13aWR0aCBkZWZpbml0aW9uIGZvcgogICAgdGhlIGRhdGFidXMgY29ubmVjdGVkIHRvIHRoZSBuZXR3b3JrIGNvbnRyb2xsZXIuCgogICAgVGhpcyBjb21waWxlIGNoZWNrIG1ha2VzIHRoZSBjb2RlIHVuY2xlYXIsIGluZmxleGlibGUgYW5kIGlzIHVubmVjY2Vzc2FyeS4KICAgIEl0IGNhbiBiZSBhc2tlZCB0byB0aGUgbmV0d29yayBjb250cm9sbGVyIHdoYXQgaXRzIGJ1cy13aWR0aCBpcyBieSByZWFkaW5nIGJpdHMKICAgIDYgYW5kIDcgb2YgdGhlIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIuCgogICAgVGhlIGxpbnV4IGtlcm5lbCBhbHJlYWR5IHVzZXMgYSBydW50aW1lIG1lY2hhbmlzbSB0byBkZXRlcm1pbmUgdGhpcyBidXMtd2lkdGgsCiAgICBzbyB0aGUgaW1wbGVtZW50YXRpb24gYmVsb3cgbG9va3Mgc29tZXdoYXQgbGlrZSB0aGF0IGltcGxlbWVudGF0aW9uLgoKICAgIFRoaXMgY2hhbmdlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIERNOTAwMEEsIERNOTAwMEUsIERNOTAwMEVQLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA2M2EwYWZhMGMzMmU1ZjRlYTk4YTk0Mzk1NDI4NzAwNzI0Mzc0MDRkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDQgMTk6MTk6MjAgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gd2l0aCBTRFJBTSBpbml0IGluIGJhbWJvbyBOQU5EIGJvb3RpbmcgcG9ydAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHNwb3R0ZWQgYnkgRXVnZW5lIE8nQnJpYW4gKHRoYW5rcyBFdWdlbmUpCiAgICBpbnRyb2R1Y2VkIGJ5IHRoZSBjb21taXQ6CgogICAgcHBjNHh4L05BTkRfU1BMOiBDb25zb2xpZGF0ZSA0MDUgYW5kIDQ0MCBOQU5EIGJvb3RpbmcgY29kZSBpbiBzdGFydC5TCgogICAgV2l0aCB0aGlzIHBhdGNoIFNEUkFNIHdpbGwgZ2V0IGluaXRpYWxpemVkIGFnYWluIGFuZCBib290aW5nIGZyb20gTkFORAogICAgaXMgd29ya2luZyBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KCmNvbW1pdCA5ZWYxY2JlZjFhNjQ5ZTM3NzkyOThiMGU2NjNiZTQ4NjVjYmJiZmJjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyNyAxNDoxOTozMCAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IEZpeCBQQ0kgYnVzIGZyZXF1ZW5jeSByZXBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDhlYzZlMzMyZWFjZTBlZTc4YzcxZWU1ZjY0NWQxMmIwNjgxM2I4NmYKQXV0aG9yOiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgpEYXRlOglUaHUgTWF5IDI5IDExOjEwOjMwIDIwMDggKzAyMDAKCiAgICBGaXggaW5jb3JyZWN0IHN3aXRjaCBmb3IgSUZfVFlQRSBpbiBwYXJ0LmMKCiAgICBVc2UgY29ycmVjdCBmaWVsZCBpbiBibG9ja19kZXZfZGVzY190IHdoZW4gd3JpdGluZyBpbnRlcmZhY2UgdHlwZSBpbgogICAgZGV2X3ByaW50LiBFcnJvciBpbnRyb2R1Y2VkIGluIDU3NGIzMTk1LgoKICAgIEFsc28gYWRkZWQgZml4IGZyb20gTWFydGluIEtyYXVzZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+Cgpjb21taXQgYjY0YjhhMGJkMzEwOTM1YjcwYWY2OWFjOTcwOTUyZjJiMzY0YWU1NgpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVHVlIE1heSAyNyAxMDoyNTozOSAyMDA4ICswMjAwCgogICAgQWRkIHNpemUgI2RlZmluZXMgZm9yIEFsdGVyYSBDeWNsb25lLUlJIEVQMkM4IGFuZCBFUDJDMjAuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgoKY29tbWl0IDM1ZWY4NzdmMGE4ZjYyMzJjZGVmNzQ4ZjQ0MmZlZDVhY2NiMmI2NDEKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUaHUgTWF5IDIyIDE4OjU2OjUyIDIwMDggLTA1MDAKCiAgICBBZGRpdGlvbmFsIGZpeCB0byByZWFkbGluZV9pbnRvX2J1ZmZlcigpIHdpdGggQ09ORklHX0NNRExJTkVfRURJVElORyBiZWZvcmUgcmVsb2NhdGluZwoKICAgIFJlbW92ZWQgdW5uZWVkZWQgY29tbWFuZCBsaW5lIGhpc3RvcnkgaW5pdGlhbGl6YXRpb24uICBBbHNvLCB0aGUgb3JpZ2luYWwKICAgIGNvZGUgd291bGQgYWNjZXNzIHRoZSAnaW5pdHRlZCcgdmFyaWFibGUgYmVmb3JlIHJlbG9jYXRpb24gdG8gU0RSQU0KICAgIHdoaWNoIHJlc3VsdGVkIGluIGVycmF0aWMgYmVoYXZpb3Igc2luY2UgdGhlIGJzcyBpcyBub3QgaW5pdGlhbGl6ZWQgd2hlbgogICAgZXhlY3V0aW5nIGZyb20gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCAyMmYzNzFiNjMwMzhhNGVjYWIwNDA2ODg3N2MxMDg5ZTUxYTAxYmExCkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJV2VkIE1heSAyMSAxMzoyODozMCAyMDA4IC0wNzAwCgogICAgUFBDNHh4OiBTaW1wbGlmaWVkIHBvc3Rfd29yZF97bG9hZCwgc3RvcmV9CgogICAgVGhpcyBwYXRjaCBzaW1wbGlmaWVzIHBvc3Rfd29yZF97bG9hZCxzdG9yZX0gYnkgdXNpbmcgdGhlIHByZXByb2Nlc3NvcgogICAgdG8gZWxpbWluYXRlIHJlZHVuZGFudCwgY29weS1hbmQtcGFzdGVkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KCmNvbW1pdCA5YzA0OGI1MjM0MTNhZTVmM2ZmMzRlMDBjZjU3NTY5YzMzNjhhYjUxCkF1dGhvcjogVmFzaWxpeSBMZW9lbmVua28gPHZhc2lsaXkubGVvbmVua29AbWFpbC5ydT4KRGF0ZToJV2VkIE1heSA3IDIxOjI1OjMzIDIwMDggKzA0MDAKCiAgICBjZmlfZmxhc2g6IGVuYWJsZSBNMTggZmxhc2ggY2hpcHMgZmFtaWx5IHN1cHBvcnQuCgogICAgQWRkZWQgbmV3IGNvbW1hbmQgc2V0IElELiBCdWZmZXJlZCB3cml0ZSBjb21tYW5kIHByb2Nlc3NpbmcgaXMgY2hhbmdlZAogICAgaW4gb3JkZXIgdG8gc3VwcG9ydCBNMTggZmxhc2ggY2hpcHMgZmFtaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBLb3JvbGV2IDxha29yb2xldkBpbmZyYWRlYWQub3JnPgogICAgU2lnbmVkLW9mZi1ieTogVmFzaWxpeSBMZW9uZW5rbyA8dmFzaWxpeS5sZW9uZW5rb0BtYWlsLnJ1PgoKY29tbWl0IDkzYzU2ZjIxMmNjZGFkYzE4MjAxOGYwNzY5Y2IyODQ0MjZiODhmMWQKQXV0aG9yOiBWYXNpbGl5IExlb2VuZW5rbyA8dmFzaWxpeS5sZW9uZW5rb0BtYWlsLnJ1PgpEYXRlOglXZWQgTWF5IDcgMjE6MjQ6NDQgMjAwOCArMDQwMAoKICAgIGNmaV9mbGFzaDogc3VwcG9ydCBvZiBsb25nIGNtZCBpbiBVLWJvb3QuCgogICAgU29tZSBOT1IgZmxhc2ggY2hpcHMgbmVlZHMgc3VwcG9ydCBvZiBjb21tYW5kcyB3aXRoIGxlbmd0aCBncmV0aGVyIHRoYW4gbWF4CiAgICB2YWx1ZSBzaXplIG9mIHVjaGFyLiBGb3IgZXhhbXBsZSBhbGwgTTE4IGZhbWlseSBjaGlwcyB1c2UgMHgxZmYgY29tbWFuZCBpbgogICAgYnVmZmVyZWQgd3JpdGUgbW9kZSBhcyB2YWx1ZSBvZiBwcm9ncmFtIGxvb3BzIGNvdW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBLb3JvbGV2IDxha29yb2xldkBpbmZyYWRlYWQub3JnPgogICAgU2lnbmVkLW9mZi1ieTogVmFzaWxpeSBMZW9uZW5rbyA8dmFzaWxpeS5sZW9uZW5rb0BtYWlsLnJ1PgoKY29tbWl0IDRkOTFkMWRmMmYxNmI1MTFhYjgwZGVjNTBjODBlMDUwYmEwZDg0MWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTYgMTE6MDY6MDYgMjAwOCArMDIwMAoKICAgIERUVDogSXNzdWUgb25lLXNob3QgY29tbWFuZCBvbiBBRDc0MTQgKExNNzUgY29kZSkgdG8gcmVhZCB0ZW1wCgogICAgT24gQUQ3NDE0IHRoZSBmaXJzdCB2YWx1ZSB1cG9uIGJvb3R1cCBpcyBub3QgcmVhZCBjb3JyZWN0bHkuCiAgICBUaGlzIGlzIG1vc3QgbGlrZWx5IGJlY2F1c2Ugb2YgdGhlIDgwMG1zIHVwZGF0ZSB0aW1lIG9mIHRoZQogICAgdGVtcCByZWdpc3RlciBpbiBub3JtYWwgdXBkYXRlIG1vZGUuIFRvIGdldCBjdXJyZW50IHZhbHVlcwogICAgZWFjaCB0aW1lIHdlIGlzc3VlIHRoZSAiZHR0IiBjb21tYW5kIGluY2x1ZGluZyB1cG9uIHBvd2VydXAKICAgIHdlIHN3aXRjaCBpbnRvIG9uZS1zaG9ydCBtb2RlLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gb24gQUQ3NDE0IGVxdWlwcGVkIGJvYXJkcyAoU2VxdW9pYSwKICAgIENhbnlvbmxhbmRzIGV0YyksIHRoYXQgdGVtcCB2YWx1ZSBwcmludGVkIGluIHRoZSBib290dXAgbG9nIHdhcwogICAgaW5jb3JyZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZTViZmNmN2IwNDI1ZTAzMmJlMTI2OTgyNTJkYmFhNmI2NWEyOGMwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBNYXkgMzAgMTY6NTU6MDYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBDUENJNDA1IHZhcmlhbnQncyBjb25maWcgZmlsZQoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIGRlYWQgY29kZSBmcm9tIENQQ0k0MDUgYm9hcmQncwogICAgY29uZmlnIGZpbGVzLiBKRkZTMiBzdXBwb3J0IGlzIGFsc28gcmVtb3ZlZC4gSXQncyBub3QgdXNlZCBhbmQKICAgIENQQ0k0MDUyIGRvZXMgbm90IGJ1aWxkIGFueW1vcmUgd2l0aG91dCBzb21lIHNpemUgcmVkdWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDI5MThlYjlkNDJiYzcwNWZjYmQxOGM5ZmNjMzlkMTVmZjI4NDNjNjUKQXV0aG9yOiBLZW5uZXRoIEpvaGFuc3NvbiA8a2VubmV0aEBzb3V0aHBvbGUuc2U+CkRhdGU6CVRodSBNYXkgMjkgMTY6MzI6MzMgMjAwOCArMDIwMAoKICAgIFJlbW92ZSBzaGVsbCB2YXJpYWJsZSBVTkRFRl9TWU0uCgogICAgVU5ERUZfU1lNIGlzIGEgc2hlbGwgdmFyaWFibGUgaW4gdGhlIG1haW4gTWFrZWZpbGUgdXNlZCB0byBmb3JjZSB0aGUKICAgIGxpbmtlciB0byBhZGQgYWxsIHUtYm9vdCBjb21tYW5kcyB0byB0aGUgZmluYWwgaW1hZ2UuIEl0IGhhcyBubyB1c2UgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLZW5uZXRoIEpvaGFuc3NvbiA8a2VubmV0aEBzb3V0aHBvbGUuc2U+Cgpjb21taXQgOGM2NjQ5N2UwNmJmODAzNDg5YzU4OWRmNThlZTU5MWQ3MTAzMzI3NApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1heSAxNiAxMToxMDozNSAyMDA4ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGVudmlyb25tZW50IGluIFNQSSBmbGFzaAoKICAgIFRoaXMgaXMgcHJldHR5IGluY29tcGxldGUuLi5pdCBkb2Vzbid0IGhhbmRsZSByZWFkaW5nIHRoZSBlbnZpcm9ubWVudAogICAgYmVmb3JlIHJlbG9jYXRpb24sIGl0IGRvZXNuJ3Qgc3VwcG9ydCByZWR1bmRhbnQgZW52aXJvbm1lbnQsIGFuZCBpdAogICAgZG9lc24ndCBzdXBwb3J0IGVtYmVkZGVkIGVudmlyb25tZW50LiBCdXQgYXBhcnQgZnJvbSB0aGF0LCBpdCBkb2VzCiAgICBzZWVtIHRvIHdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGI2MzY4NDY3ZTZhOTdmMjI1ZTBhNWZkN2JmYzVjNzU5OGVmNWRkYzQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMTYgMTE6MTA6MzQgMjAwOCArMDIwMAoKICAgIFNQSSBGbGFzaDogQWRkICJzZiIgY29tbWFuZAoKICAgIFRoaXMgYWRkcyBhIG5ldyBjb21tYW5kLCAic2YiIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG1hbmlwdWxhdGUgU1BJCiAgICBmbGFzaC4gQ3VycmVudGx5LCBpbml0aWFsaXphdGlvbiwgcmVhZGluZywgd3JpdGluZyBhbmQgZXJhc2luZyBpcwogICAgc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkMjVjZTdkMjRjYzBmOTM4ODE1NTlmNDAwOTE3NWVhMzA1YWY2NWU4CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDE2IDExOjEwOjMzIDIwMDggKzAyMDAKCiAgICBTUEkgRmxhc2ggc3Vic3lzdGVtCgogICAgVGhpcyBhZGRzIGEgbmV3IFNQSSBmbGFzaCBzdWJzeXN0ZW0uCgogICAgQ3VycmVudGx5LCBvbmx5IEFUNDUgRGF0YUZsYXNoIGluIG5vbi1wb3dlci1vZi10d28gbW9kZSBpcyBzdXBwb3J0ZWQsCiAgICBidXQgc29tZSBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBvdGhlciBmbGFzaCB0eXBlcyBpcyBpbiBwbGFjZSBhcwogICAgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjA0NDVjYjVjM2ViNzdlZDFhMDdmMmQ5MDhlZWYwOTE3NDQ4MzY5OApBdXRob3I6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMTYgMTE6MTA6MzIgMjAwOCArMDIwMAoKICAgIGF0bWVsX3NwaTogRHJpdmVyIGZvciB0aGUgQXRtZWwgU1BJIGNvbnRyb2xsZXIKCiAgICBUaGlzIGFkZHMgYSBkcml2ZXIgZm9yIHRoZSBTUEkgY29udHJvbGxlciBmb3VuZCBvbiBtb3N0IEFUOTEgYW5kIEFWUjMyCiAgICBjaGlwcywgaW1wbGVtZW50aW5nIHRoZSBuZXcgU1BJIEFQSS4KCiAgICBDaGFuZ2VkIGluIHY0OgogICAgICAtIFVwZGF0ZSB0byBuZXcgQVBJCiAgICAgIC0gSGFuZGxlIHplcm8tbGVuZ3RoIHRyYW5zZmVycyBhcHByb3ByaWF0ZWx5LiBUaGUgdXNlciBtYXkgc2VuZCBhCgl6ZXJvLWxlbmd0aCBTUEkgdHJhbnNmZXIgd2l0aCBTUElfWEZFUl9FTkQgc2V0IGluIG9yZGVyIHRvCglkZWFjdGl2YXRlIHRoZSBjaGlwIHNlbGVjdCBhZnRlciBhIHNlcmllcyBvZiB0cmFuc2ZlcnMgd2l0aCBjaGlwCglzZWxlY3QgYWN0aXZlLiBUaGlzIGlzIHVzZWZ1bCBlLmcuIHdoZW4gcG9sbGluZyB0aGUgc3RhdHVzCglyZWdpc3RlciBvZiBEYXRhRmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDI1NWJiMGU3OGQxY2FjNWI3YzhjOThjYjc3YTA5NWY1ZjE2ZGUwZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDE2IDExOjEwOjMxIDIwMDggKzAyMDAKCiAgICBTUEkgQVBJIGltcHJvdmVtZW50cwoKICAgIFRoaXMgcGF0Y2ggZ2V0cyByaWQgb2YgdGhlIHNwaV9jaGlwc2VsIHRhYmxlIGFuZCBhZGRzIGEgaGFuZGZ1bCBvZiBuZXcKICAgIGZ1bmN0aW9ucyB0aGF0IG1ha2VzIHRoZSBTUEkgbGF5ZXIgY2xlYW5lciBhbmQgbW9yZSBmbGV4aWJsZS4KCiAgICBJbnN0ZWFkIG9mIHRoZSBzcGlfY2hpcHNlbCB0YWJsZSwgZWFjaCBib2FyZCB0aGF0IHdhbnRzIHRvIHVzZSBTUEkKICAgIGdldHMgdG8gaW1wbGVtZW50IHRocmVlIGhvb2tzOgogICAgICAqIHNwaV9jc19hY3RpdmF0ZSgpOiBBY3RpdmF0ZXMgdGhlIGNoaXBzZWxlY3QgZm9yIGEgZ2l2ZW4gc2xhdmUKICAgICAgKiBzcGlfY3NfZGVhY3RpdmF0ZSgpOiBEZWFjdGl2YXRlcyB0aGUgY2hpcHNlbGVjdCBmb3IgYSBnaXZlbiBzbGF2ZQogICAgICAqIHNwaV9jc19pc192YWxpZCgpOiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBidXMvY2hpcHNlbGVjdAoJY29tYmluYXRpb24gY2FuIGJlIGFjdGl2YXRlZC4KCiAgICBOb3QgYWxsIGRyaXZlcnMgbWF5IG5lZWQgdGhvc2UgZXh0cmEgZnVuY3Rpb25zIGhvd2V2ZXIuIElmIHRoYXQncyB0aGUKICAgIGNhc2UsIHRoZSBib2FyZCBjb2RlIG1heSBqdXN0IGxlYXZlIHRoZW0gb3V0IChhc3N1bWluZyB0aGV5IGtub3cgd2hhdAogICAgdGhlIGRyaXZlciBuZWVkcykgb3IgcmVseSBvbiB0aGUgbGlua2VyIHRvIHN0cmlwIHRoZW0gb3V0IChhc3N1bWluZwogICAgLS1nYy1zZWN0aW9ucyBpcyBiZWluZyB1c2VkLikKCiAgICBUbyBzZXQgdXAgY29tbXVuaWNhdGlvbiBwYXJhbWV0ZXJzIGZvciBhIGdpdmVuIHNsYXZlLCB0aGUgZHJpdmVyIG5lZWRzCiAgICB0byBjYWxsIHNwaV9zZXR1cF9zbGF2ZSgpLiBUaGlzIHJldHVybnMgYSBwb2ludGVyIHRvIGFuIG9wYXF1ZQogICAgc3BpX3NsYXZlIHN0cnVjdCB3aGljaCBtdXN0IGJlIHBhc3NlZCBhcyBhIHBhcmFtZXRlciB0byBzdWJzZXF1ZW50IFNQSQogICAgY2FsbHMuIFRoaXMgc3RydWN0IGNhbiBiZSBmcmVlZCBieSBjYWxsaW5nIHNwaV9mcmVlX3NsYXZlKCksIGJ1dCBtb3N0CiAgICBkcml2ZXIgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBkbyB0aGlzLgoKICAgIEJlZm9yZSBzdGFydGluZyBvbmUgb3IgbW9yZSBTUEkgdHJhbnNmZXJzLCB0aGUgZHJpdmVyIG11c3QgY2FsbAogICAgc3BpX2NsYWltX2J1cygpIHRvIGdhaW4gZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgU1BJIGJ1cyBhbmQgaW5pdGlhbGl6ZQogICAgdGhlIGhhcmR3YXJlLiBXaGVuIGFsbCB0cmFuc2ZlcnMgYXJlIGRvbmUsIHRoZSBkcml2ZXIgbXVzdCBjYWxsCiAgICBzcGlfcmVsZWFzZV9idXMoKSB0byBtYWtlIHRoZSBidXMgYXZhaWxhYmxlIHRvIG90aGVycywgYW5kIHBvc3NpYmx5CiAgICBzaHV0IGRvd24gdGhlIFNQSSBjb250cm9sbGVyIGhhcmR3YXJlLgoKICAgIHNwaV94ZmVyKCkgYmVoYXZlcyBtb3N0bHkgdGhlIHNhbWUgYXMgYmVmb3JlLCBidXQgaXQgbm93IHRha2VzIGEKICAgIHNwaV9zbGF2ZSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBhIHNwaV9jaGlwc2VsIGZ1bmN0aW9uIHBvaW50ZXIuIEl0IGFsc28KICAgIGdvdCBhIG5ldyBwYXJhbWV0ZXIsIGZsYWdzLCB3aGljaCBpcyB1c2VkIHRvIHNwZWNpZnkgY2hpcCBzZWxlY3QKICAgIGJlaGF2aW91ci4gVGhpcyBtYXkgYmUgZXh0ZW5kZWQgd2l0aCBvdGhlciBmbGFncyBpbiB0aGUgZnV0dXJlLgoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gYnVpbGQtdGVzdGVkIG9uIGFsbCBwb3dlcnBjIGFuZCBhcm0gYm9hcmRzCiAgICBpbnZvbHZlZC4gSSBoYXZlIG5vdCB0ZXN0ZWQgTklPUyBzaW5jZSBJIGRvbid0IGhhdmUgYSB0b29sY2hhaW4gZm9yIGl0CiAgICBpbnN0YWxsZWQsIHNvIEkgZXhwZWN0IHNvbWUgYnJlYWthZ2UgdGhlcmUgZXZlbiB0aG91Z2ggSSd2ZSB0cmllZAogICAgZml4aW5nIHVwIGV2ZXJ5dGhpbmcgSSBjb3VsZCBmaW5kIGJ5IHZpc3VhbCBpbnNwZWN0aW9uLgoKICAgIEkgaGF2ZSBydW4tdGltZSB0ZXN0ZWQgdGhpcyBvbiBBVlIzMiBBVE5HVzEwMCB1c2luZyB0aGUgYXRtZWxfc3BpIGFuZAogICAgRGF0YUZsYXNoIGRyaXZlcnMgcG9zdGVkIGFzIGEgZm9sbG93LXVwLiBJJ2QgbGlrZSBzb21lIGhlbHAgdGVzdGluZwogICAgb3RoZXIgYm9hcmRzIHRoYXQgdXNlIHRoZSBleGlzdGluZyBTUEkgQVBJLgoKICAgIEJ1dCBtb3N0IG9mIGFsbCwgSSdkIGxpa2Ugc29tZSBjb21tZW50cyBvbiB0aGUgbmV3IEFQSS4gSXMgdGhpcyBzdHVmZgogICAgdXNhYmxlIGZvciBldmVyeW9uZT8gSWYgbm90LCB3aHk/CgogICAgQ2hhbmdlZCBpbiB2NDoKICAgICAgLSBCdWlsZCBmaXhlcyBmb3IgdmFyaW91cyBib2FyZHMsIGRyaXZlcnMgYW5kIGNvbW1hbmRzCiAgICAgIC0gUHJvdmlkZSBjb21tb24gc3RydWN0IHNwaV9zbGF2ZSBkZWZpbml0aW9uIHRoYXQgY2FuIGJlIGV4dGVuZGVkIGJ5Cglkcml2ZXJzCiAgICAgIC0gUGFzcyBhIHN0cnVjdCBzcGlfc2xhdmUgKiB0byBzcGlfY3NfYWN0aXZhdGUgYW5kIHNwaV9jc19kZWFjdGl2YXRlCiAgICAgIC0gTWFrZSBkZWZhdWx0IGJ1cyBhbmQgbW9kZSBidWlsZC10aW1lIGNvbmZpZ3VyYWJsZQogICAgICAtIE92ZXJyaWRlIGRlZmF1bHQgU1BJIGJ1cyBJRCBhbmQgbW9kZSBvbiBteDMyYWRzIGFuZCBpbXgzMV9saXRla2l0LgoKICAgIENoYW5nZWQgaW4gdjM6CiAgICAgIC0gQWRkIG9wYXF1ZSBzdHJ1Y3Qgc3BpX3NsYXZlIGZvciBjb250cm9sbGVyLXNwZWNpZmljIGRhdGEgYXNzb2NpYXRlZAoJd2l0aCBhIHNsYXZlLgogICAgICAtIEFkZCBzcGlfY2xhaW1fYnVzKCkgYW5kIHNwaV9yZWxlYXNlX2J1cygpCiAgICAgIC0gQWRkIHNwaV9mcmVlX3NsYXZlKCkKICAgICAgLSBzcGlfc2V0dXAoKSBpcyBub3cgY2FsbGVkIHNwaV9zZXR1cF9zbGF2ZSgpIGFuZCByZXR1cm5zIGEKCXN0cnVjdCBzcGlfc2xhdmUKICAgICAgLSBzb2Z0X3NwaSBub3cgc3VwcG9ydHMgZm91ciBTUEkgbW9kZXMgKENQT0x8Q1BIQSkKICAgICAgLSBBZGQgYnVzIHBhcmFtZXRlciB0byBzcGlfc2V0dXBfc2xhdmUoKQogICAgICAtIENvbnZlcnQgdGhlIG5ldyBpLk1YMzIgU1BJIGRyaXZlcgogICAgICAtIENvbnZlcnQgdGhlIG5ldyBNQzEzNzgzIFJUQyBkcml2ZXIKCiAgICBDaGFuZ2VkIGluIHYyOgogICAgICAtIENvbnZlcnQgdGhlIG1wYzh4eHhfc3BpIGRyaXZlciBhbmQgdGhlIG1wYzgzNDllbWRzIGJvYXJkIHRvIHRoZQoJbmV3IEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFRlc3RlZC1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDI4OTAxMTIwN2Q5OTliMmU0MDg1MTUwZDJhYTMwZDU0N2FkOWI4MDAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMTYgMTE6MTA6MzAgMjAwOCArMDIwMAoKICAgIE1vdmUgZGVmaW5pdGlvbiBvZiBjb250YWluZXJfb2YoKSB0byBjb21tb24uaAoKICAgIEFWUjMyIGFuZCBBVDkxU0FNOSBib3RoIGhhdmUgdGhlaXIgb3duIGlkZW50aWNhbCBkZWZpbml0aW9ucyBvZgogICAgY29udGFpbmVyX29mKCkgdGFrZW4gZnJvbSB0aGUgTGludXgga2VybmVsLiBNb3ZlIGl0IHRvIGNvbW1vbi5oIHNvCiAgICB0aGF0IGFsbCBhcmNoaXRlY3R1cmVzIGNhbiB1c2UgaXQuCgogICAgY29udGFpbmVyX29mKCkgaXMgYWxyZWFkeSB1c2VkIGJ5IHNvbWUgZHJpdmVycywgYW5kIHdpbGwgYmUgdXNlZAogICAgZXh0ZW5zaXZlbHkgYnkgdGhlIG5ldyBhbmQgaW1wcm92ZWQgU1BJIEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMTEwZTAwNmZlNjdmYjRhNmUxNzE5YWU2OTU2Yzc5YjdmZmMwMTQ4YgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1heSAxNiAxMTowODoxMSAyMDA4ICswMjAwCgogICAgc29mdF9pMmM6IFB1bGwgU0RBIGhpZ2ggYmVmb3JlIHJlYWRpbmcKCiAgICBTcG90dGVkIGJ5IERlYW4gQ2FwaW5kYWxlLgoKICAgIFN5c3RlbXMgdGhhdCBzdXBwb3J0IG9wZW4tZHJhaW4gR1BJTyBwcm9wZXJseSBhcmUgYWxsb3dlZCBwcm92aWRlIGFuCiAgICBlbXB0eSBJMkNfVFJJU1RBVEUgZGVmaW5lLiBIb3dldmVyLCB0aGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0byBiZQogICAgY2FyZWZ1bCBub3QgdG8gZHJpdmUgU0RBIGxvdyB3aGVuIHRoZSBzbGF2ZSBpcyBleHBlY3RlZCB0byByZXNwb25kLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgSTJDX1NEQSgxKSB0byByZWFkX2J5dGUoKSByZXF1aXJlZCB0bwogICAgdHJpc3RhdGUgdGhlIFNEQSBsaW5lIG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IG9wZW4tZHJhaW4gR1BJTy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgM2MxZGUxYTZkMzZiZTllZWUyODRhNmM1OTZhODZlOTRmMTljYzViMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAxOSAxMTozNDo1MyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgaW1wbGVtZW50YXRpb25zIG9mIHRlc3RkcmFtKCkKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIHVzZWQgdGVzdGRyYW0oKSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGJvYXJkCiAgICB0aGF0IGFyZSBtYWludGFpbmVkIGJ5IG15c2VsZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYmJlZmYzMGNiZDFjNWQ1NTFlYjBhZDFjMjIzOWVjMDE4NDRjMGIwYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyIDE3OjM3OjI4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBzdXBlcmZsdW91cyBkcmFtX2luaXQoKSBjYWxsIG9yIHJlcGxhY2UgaXQgYnkgaW5pdGRyYW0oKQoKICAgIEhpc3RvcmljYWxseSB0aGUgNDA1IFUtQm9vdCBwb3J0IGhhZCBhIGRyYW1faW5pdCgpIGNhbGwgaW4gZWFybHkgaW5pdAogICAgc3RhZ2UuIFRoaXMgZnVuY3Rpb24gd2FzIHN0aWxsIGNhbGxlZCBmcm9tIHN0YXJ0LlMgYW5kIG1vc3Qgb2YgdGhlIHRpbWUKICAgIGNvZGVkIGluIGFzc2VtYmxlci4gVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUgKHNpbmNlIGEgbG9uZyB0aW1lKSBhbmQKICAgIGJvYXJkcyBzaG91bGQgaW1wbGVtZW50IHRoZSBjb21tb24gaW5pdGRyYW0oKSBmdW5jdGlvbiBpbiBDIGluc3RlYWQuCgogICAgVGhpcyBwYXRjaCBub3cgcmVtb3ZlZCB0aGUgZHJhbV9pbml0KCkgY2FsbCBmcm9tIHN0YXJ0LlMgYW5kIHJlbW92ZXMgdGhlCiAgICBlbXB0eSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBhcmUgc2NhdHRlcmVkIHRocm91Z2ggbW9zdCBvZiB0aGUgNDA1IGJvYXJkCiAgICBwb3J0cy4gU29tZSBvbGRlciBib2FyZCBwb3J0cyByZWFsbHkgaW1wbGVtZW50IHRoaXMgZHJhbV9pbml0KCkgdGhvdWdoLgogICAgVGhlc2UgYXJlOgoKICAgIGNzYjI3MgogICAgY3NiNDcyCiAgICBFUklDCiAgICBFWEJJVEdFTgogICAgVzdPTE1DCiAgICBXN09MTUcKCiAgICBJIGNoYW5nZWQgdGhvc2UgYm9hcmRzIHRvIGNhbGwgdGhpcyBhc3NlbWJsZXIgZHJhbV9pbml0KCkgZnVuY3Rpb24gbm93CiAgICBmcm9tIHRoZWlyIGJvYXJkIHNwZWNpZmljIGluaXRkcmFtKCkgaW5zdGVhZC4gVGhpcyAqc2hvdWxkKiB3b3JrLCBidXQgcGxlYXNlCiAgICB0ZXN0IGFnYWluIG9uIHRob3NlIHBsYXRmb3Jtcy4gQW5kIGl0IGlzIHBlcmhhcHMgYSBnb29kIGlkZWEgdGhhdCB0aG9zZQogICAgYm9hcmRzIHVzZSBzb21lIGNvbW1vbiA0MDUgU0RSQU0gaW5pdGlhbGl6YXRpb24gY29kZSBmcm9tIGNwdS9wcGM0eHggYXQKICAgIHNvbWUgdGltZS4gU28gZnVydGhlciBwYXRjaGVzIHdlbGNvbWUgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTkyZjkwZTI3MmIzOTg5ZWU3YjRhNjY2ZDFmZGFiODMxZjIwZjhkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyIDE3OjIyOjExIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVzZSBuZXcgNHh4IFNEUkFNIGNvbnRyb2xsZXIgZW5hYmxlIGRlZmluZXMgaW4gY29tbW9uIEVDQyBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM5YjMyYmUxOGNkMzNiNTNhODQwNjVlZGNkNGU0NjUxNjVjYzU1NjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMiAxNzoyMDowMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY29tbW9uIEVDQyBnZW5lcmF0aW9uIGNvZGUgZm9yIDQ0MEdQIHN0eWxlIHBsYXRmb3JtcwoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIGNvbW1vbiA0eHggRUNDIGNvZGUgcmVhbGx5IHVzYWJsZSBvbiA0NDBHUCBzdHlsZQogICAgcGxhdGZvcm1zLgoKICAgIFNpbmNlIHRoZSBJQk0gRERSIGNvbnRyb2xsZXIgdXNlZCBvbiA0NDBHUC9HWC9FUC9HUiBpcyBub3QgcmVnaXN0ZXIKICAgIGNvbXBhdGlibGUgdG8gdGhlIElCTSBERFIvMiBjb250cm9sbGVyIHVzZWQgb24gNDA1RVgvNDQwU1AvU1BlLzQ2MEVYL0dUCiAgICB3ZSBuZWVkIHRvIG1ha2Ugc29tZSBwcm9jZXNzb3IgZGVwZW5kYW50IGRlZmluZXMgdXNlZCBsYXRlciBvbiBieSB0aGUKICAgIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWM3MjRmODgzZWUzZjM5MjVlNmM1NTAyN2U4ZmZhNzBhZGE4MzMwMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyIDE3OjEzOjU1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBLaWxhdWVhIHRvIHVzZSB0aGUgY29tbW9uIEREUjIgaW5pdCBmdW5jdGlvbgoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUga2lsYXVlYSBhbmQga2lsYXVlYV9uYW5kIChmb3IgTkFORCBib290aW5nKQogICAgYm9hcmQgcG9ydCB0byBub3QgdXNlIGEgYm9hcmQgc3BlY2lmaWMgRERSMiBpbml0IHJvdXRpbmUgYW55bW9yZS4gTm93CiAgICB0aGUgY29tbW9uIGNvZGUgZnJvbSBjcHUvcHBjNHh4IGlzIHVzZWQuCgogICAgVGhhbmtzIHRvIEdyYW50IEVyaWNrc29uIGZvciBhbGwgaGlzIGJhc2ljIHdvcmsgb24gdGhpcyA0MDVFWCBlYXJseQogICAgYm9vdHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxN2NlYjA2OWI4NWZiYjkyNjljNGRjMDliMmMyMzdmODgzMzRjNWJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDIgMTQ6NTk6MjEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ29uc29saWRhdGUgUFBDNHh4IFNEUkFNL0REUi9ERFIyIGRlZmluZXMsIHBhcnQyCgogICAgVGhpcyBwYXRjaCBub3cgYWRkcyBhIG5ldyBoZWFkZXIgZmlsZSAoYXNtLXBwYy9wcGM0eHgtc2RyYW0uaCkgZm9yIGFsbAogICAgcHBjNHh4IHJlbGF0ZWQgU0RSQU0vRERSL0REUjIgY29udHJvbGxlciBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmVhMTZmNmEwNjZjY2IwNDZlOTFlYmNlNGYzMjZiNjlmNGMwNTY5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDIgMTQ6NTc6NDEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ29uc29saWRhdGUgUFBDNHh4IFNEUkFNL0REUi9ERFIyIGRlZmluZXMsIHBhcnQxCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIGFsbCBTRFJBTSByZWxhdGVkIGRlZmluZXMgZnJvbSB0aGUgUFBDNHh4IGhlYWRlcnMKICAgIHBwYzQwNS5oIGFuZCBwcGM0NDAuaC4gVGhpcyBpcyBuZWVkZWQgc2luY2Ugbm93IHNvbWUgNDA1IFBQQydzIHVzZQogICAgdGhlIHNhbWUgU0RSQU0gY29udHJvbGxlciBhcyA0NDAgc3lzdGVtcyBkbyAobGlrZSA0MDVFWCBhbmQgNDQwU1ApLgoKICAgIEl0IGFsc28gaW50cm9kdWNlcyBuZXcgZGVmaW5lcyBmb3IgdGhlIGVxdWlwcGVkIFNEUkFNIGNvbnRyb2xsZXIgYmFzZWQgb24KICAgIHdoaWNoIFBQQyB2YXJpYW50IGlzIHVzZWQuIFRoZXJlIG5ldyBkZWZpbmVzIGFyZToKCiAgICB1c2VkIG9uIDQwNUdSL0NSL0VQIGFuZCBzb21lIFhpbGlueCBWaXJ0ZXggYm9hcmRzLgoKICAgIHVzZWQgb24gNDQwR1AvR1gvRVAvR1IuCgogICAgdXNlZCBvbiA0NDBFUHgvR1J4LgoKICAgIHVzZWQgb24gNDA1RVgvci80NDBTUC9TUGUvNDYwRVgvR1QuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0ODUyZDA5ZTA2ZGQ2ZGIyYjJkYjJhM2M1OWJjMmRiMTc2YTU0ZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMiAxNDozNTo0NCAyMDA4ICswMjAwCgogICAgcHBjNHh4L05BTkRfU1BMOiBDb25zb2xpZGF0ZSA0MDUgYW5kIDQ0MCBOQU5EIGJvb3RpbmcgY29kZSBpbiBzdGFydC5TCgogICAgVGhpcyBwYXRjaCBjb25zb2xpZGF0ZXMgdGhlIDQwNSBhbmQgNDQwIHBhcnRzIG9mIHRoZSBOQU5EIGJvb3RpbmcgY29kZQogICAgc2VsZWN0ZWQgdmlhIENPTkZJR19OQU5EX1NQTC4gTm93IGNvbW1vbiBjb2RlIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUKICAgIFNEUkFNIGJ5IGNhbGxpbmcgaW5pdGRyYW0oKSBhbmQgdG8gImNvcHkvcmVsb2NhdGUiIHRvIFNEUkFNL09DTS9ldGMuCiAgICBPbmx5ICphZnRlciogcnVubmluZyBmcm9tIHRoaXMgbG9jYXRpb24sIG5hbmRfYm9vdCgpIGlzIGNhbGxlZC4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBpbml0c2RyYW0oKSBjYWxsIGlzIG5vdyBtb3ZlZCBmcm9tIG5hbmRfYm9vdC5jCiAgICB0byBzdGFydC5TLiBJIGV4cGVyaWVuY2VkIHByb2JsZW1zIHdpdGggc29tZSBib2FyZHMgbGlrZSBLaWxhdWVhCiAgICAoNDA1RVgpLCB3aGljaCBkb24ndCBoYXZlIGludGVybmFsIFNSQU0gKE9DTSkgYW5kIHJlbG9jYXRpb24gbmVlZHMgdG8KICAgIGJlIGRvbmUgdG8gU0RSQU0gYmVmb3JlIHRoZSBOQU5EIGNvbnRyb2xsZXIgY2FuIGdldCBhY2Nlc3NlZC4gV2hlbgogICAgaW5pdGRyYW0oKSBpcyBjYWxsZWQgbGF0ZXIgb24gaW4gbmFuZF9ib290KCksIHRoaXMgY2FuIGxlYWQgdG8gcHJvYmxlbXMKICAgIHdpdGggdmFyaWFibGVzIGluIHRoZSBic3Mgc2VjdGlvbnMgbGlrZSBuYW5kX2VjY19wb3NbXS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGEyNGMwN2JhNWRhMmM3MmFkMWYwNWUzZWI4YTQ2Mzc1MDIwMGM5OApBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVRodSBNYXkgMjIgMTQ6NDQ6MjQgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogRW5hYmxlIFByaW1vcmRpYWwgU3RhY2sgZm9yIDQweCBhbmQgVW5pZnkgRUNDIEhhbmRsaW5nCgogICAgVGhpcyBwYXRjaCAoUGFydCAyIG9mIDIpOgoKICAgICogUm9sbHMgdXAgYSBzdWl0ZSBvZiBjaGFuZ2VzIHRvIGVuYWJsZSBjb3JyZWN0IHByaW1vcmRpYWwgc3RhY2sgYW5kCiAgICAgIGdsb2JhbCBkYXRhIGhhbmRsaW5nIHdoZW4gdGhlIGRhdGEgY2FjaGUgaXMgdXNlZCBmb3Igc3VjaCBhIHB1cnBvc2UKICAgICAgZm9yIFBQQzQweC12YXJpYW50cyAoaS5lLiBDRkdfSU5JVF9EQ0FDSEVfQ1MpLgoKICAgICogUmVsYXRlZCB0byB0aGUgZmlyc3QsIHVuaWZpZXMgRERSMiBTRFJBTSBhbmQgRUNDIGluaXRpYWxpemF0aW9uIGJ5CiAgICAgIGVsaW1pbmF0aW5nIHJlZHVuZGFudCBFQ0MgaW5pdGlhbGl6YXRpb24gaW1wbGVtZW50YXRpb25zIGFuZCBtb3ZpbmcKICAgICAgcmVkdW5kYW50IFNEUkFNIGluaXRpYWxpemF0aW9uIG91dCBvZiBib2FyZCBjb2RlIGludG8gc2hhcmVkIDR4eAogICAgICBjb2RlLgoKICAgICogRW5hYmxlcyBNQ1NSIHZpc2liaWxpdHkgb24gdGhlIDQwNUVYKHIpLgoKICAgICogRW5hYmxlcyB0aGUgdXNlIG9mIHRoZSBkYXRhIGNhY2hlIGZvciBpbml0aWFsIFJBTSBvbgogICAgICBib3RoIEFNQ0MncyBLaWxhdWVhIGFuZCBNYWthbHUgYW5kIHJlbW92ZXMgYSByZWR1bmRhbnQKICAgICAgQ0ZHX1BPU1RfTUVNT1JZIGZsYWcgZnJvbSBlYWNoIGJvYXJkJ3MgQ09ORklHX1BPU1QgdmFsdWUuCgogICAgICAtIFJlbW92ZWQsIHBlciBTdGVmYW4gUm9lc2UncyByZXF1ZXN0LCBkZWZ1bmN0IG1lbW9yeS5jIGZpbGUgZm9yCglNYWthbHUgYW5kIHJvbGxlZCBzZHJhbV9pbml0IGZyb20gaXQgaW50byBtYWthbHUuYy4KCiAgICBXaXRoIHJlc3BlY3QgdG8gdGhlIDR4eCBERFIgaW5pdGlhbGl6YXRpb24gYW5kIEVDQyB1bmlmaWNhdGlvbiwgdGhlcmUKICAgIGlzIGNlcnRhaW5seSBtb3JlIHdvcmsgdGhhdCBjYW4gYW5kIHNob3VsZCBiZSBkb25lIChmaWxlIHJlbmFtaW5nLAogICAgZXRjLikuIEhvd2V2ZXIsIHRoYXQgY2FuIGJlIGhhbmRsZWQgYXQgYSBsYXRlciBkYXRlIG9uIGEgc2Vjb25kIG9yCiAgICB0aGlyZCBwYXNzLiBBcyBpdCBzdGFuZHMsIHRoaXMgcGF0Y2ggbW92ZXMgdGhpbmdzIGZvcndhcmQgaW4gYW4KICAgIGluY3JlbWVudGFsIHlldCBwb3NpdGl2ZSB3YXkgZm9yIHRob3NlIHBsYXRmb3JtcyB0aGF0IHV0aWxpemUgdGhpcwogICAgY29kZSBhbmQgdGhlIGZlYXR1cmVzIGFzc29jaWF0ZWQgd2l0aCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM4MjFiNWYxMjBiZWRmNzM4Njc1MTM0NjY0MTI1ODdjNjkxMmE4ZjgKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglUaHUgTWF5IDIyIDE0OjQ0OjE0IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEVuYWJsZSBQcmltb3JkaWFsIFN0YWNrIGZvciA0MHggYW5kIFVuaWZ5IEVDQyBIYW5kbGluZwoKICAgIFRoaXMgcGF0Y2ggKFBhcnQgMSBvZiAyKToKCiAgICAqIFJvbGxzIHVwIGEgc3VpdGUgb2YgY2hhbmdlcyB0byBlbmFibGUgY29ycmVjdCBwcmltb3JkaWFsIHN0YWNrIGFuZAogICAgICBnbG9iYWwgZGF0YSBoYW5kbGluZyB3aGVuIHRoZSBkYXRhIGNhY2hlIGlzIHVzZWQgZm9yIHN1Y2ggYSBwdXJwb3NlCiAgICAgIGZvciBQUEM0MHgtdmFyaWFudHMgKGkuZS4gQ0ZHX0lOSVRfRENBQ0hFX0NTKS4KCiAgICAqIFJlbGF0ZWQgdG8gdGhlIGZpcnN0LCB1bmlmaWVzIEREUjIgU0RSQU0gYW5kIEVDQyBpbml0aWFsaXphdGlvbiBieQogICAgICBlbGltaW5hdGluZyByZWR1bmRhbnQgRUNDIGluaXRpYWxpemF0aW9uIGltcGxlbWVudGF0aW9ucyBhbmQgbW92aW5nCiAgICAgIHJlZHVuZGFudCBTRFJBTSBpbml0aWFsaXphdGlvbiBvdXQgb2YgYm9hcmQgY29kZSBpbnRvIHNoYXJlZCA0eHgKICAgICAgY29kZS4KCiAgICAqIEVuYWJsZXMgTUNTUiB2aXNpYmlsaXR5IG9uIHRoZSA0MDVFWChyKS4KCiAgICAqIEVuYWJsZXMgdGhlIHVzZSBvZiB0aGUgZGF0YSBjYWNoZSBmb3IgaW5pdGlhbCBSQU0gb24KICAgICAgYm90aCBBTUNDJ3MgS2lsYXVlYSBhbmQgTWFrYWx1IGFuZCByZW1vdmVzIGEgcmVkdW5kYW50CiAgICAgIENGR19QT1NUX01FTU9SWSBmbGFnIGZyb20gZWFjaCBib2FyZCdzIENPTkZJR19QT1NUIHZhbHVlLgoKICAgICAgLSBSZW1vdmVkLCBwZXIgU3RlZmFuIFJvZXNlJ3MgcmVxdWVzdCwgZGVmdW5jdCBtZW1vcnkuYyBmaWxlIGZvcgoJTWFrYWx1IGFuZCByb2xsZWQgc2RyYW1faW5pdCBmcm9tIGl0IGludG8gbWFrYWx1LmMuCgogICAgV2l0aCByZXNwZWN0IHRvIHRoZSA0eHggRERSIGluaXRpYWxpemF0aW9uIGFuZCBFQ0MgdW5pZmljYXRpb24sIHRoZXJlCiAgICBpcyBjZXJ0YWlubHkgbW9yZSB3b3JrIHRoYXQgY2FuIGFuZCBzaG91bGQgYmUgZG9uZSAoZmlsZSByZW5hbWluZywKICAgIGV0Yy4pLiBIb3dldmVyLCB0aGF0IGNhbiBiZSBoYW5kbGVkIGF0IGEgbGF0ZXIgZGF0ZSBvbiBhIHNlY29uZCBvcgogICAgdGhpcmQgcGFzcy4gQXMgaXQgc3RhbmRzLCB0aGlzIHBhdGNoIG1vdmVzIHRoaW5ncyBmb3J3YXJkIGluIGFuCiAgICBpbmNyZW1lbnRhbCB5ZXQgcG9zaXRpdmUgd2F5IGZvciB0aG9zZSBwbGF0Zm9ybXMgdGhhdCB1dGlsaXplIHRoaXMKICAgIGNvZGUgYW5kIHRoZSBmZWF0dXJlcyBhc3NvY2lhdGVkIHdpdGggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDM5NjgwMDE5ZTA2MTcxZDRhNTY5NGI3OTkyYWNjY2U4N2Y1OTBlCkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJV2VkIE1heSAyMSAxMzoyODozMCAyMDA4IC0wNzAwCgogICAgUFBDNHh4OiBTaW1wbGlmaWVkIHBvc3Rfd29yZF97bG9hZCwgc3RvcmV9CgogICAgVGhpcyBwYXRjaCBzaW1wbGlmaWVzIHBvc3Rfd29yZF97bG9hZCxzdG9yZX0gYnkgdXNpbmcgdGhlIHByZXByb2Nlc3NvcgogICAgdG8gZWxpbWluYXRlIHJlZHVuZGFudCwgY29weS1hbmQtcGFzdGVkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KCmNvbW1pdCBmOTc5NjkwZWUzMzc0NTBiMjAzMGFiYTEyOGY5NWI3YThkOTg4MWMwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE1heSAxNSAxNToxMzowOCAyMDA4IC0wNTAwCgogICAgRml4IHdhcm5pbmdzIGZyb20gZ2NjLTQuMy4wIGJ1aWxkIG9uIGEgcHBjIGhvc3QKCiAgICAqIFRoZSBjZmlfZmxhc2guYyBtZW1zZXQgZml4IGFjdHVhbCBhbGxvd3MgdGhlIGJvYXJkIHRvIGJvb3Qgc28gdGhlcmUgaXMKICAgICAgYSBiaXQgbW9yZSBnb2luZyBvbiBoZXJlIHRoYW4ganVzdCByZXNvbHZpbmcgd2FybmluZ3MgYXNzb2NpYXRlZCB3aXRoCiAgICAgIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLgoKICAgICogaW5jbHVkZS9hc20vYml0b3BzLmg6MzAyOiB3YXJuaW5nOiAnX19zd2FiMzJwJyBpcyBzdGF0aWMgYnV0IHVzZWQgaW4KICAgICAgaW5saW5lIGZ1bmN0aW9uICdleHQyX2ZpbmRfbmV4dF96ZXJvX2JpdCcgd2hpY2ggaXMgbm90IHN0YXRpYwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOWIxMjRhNjgzNDZjZTk2MDViNmUxZmNmNzllMTAyMTU0MWNkYmE5ZQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDE0IDEzOjA5OjUxIDIwMDggLTA1MDAKCiAgICBNUEM1MTJ4OiBDaGFuZ2UgdHJhcHMuYyB0byBub3QgcmVmZXJlbmNlIG5vbi1hZGRyZXNzYWJsZSBtZW1vcnkKCiAgICBDdXJyZW50bHksIEVORF9PRl9SQU0gaXMgdXNlZCBieSB0aGUgdHJhcCBjb2RlIHRvIGRldGVybWluZSBpZgogICAgd2Ugc2hvdWxkIGF0dGVtcHQgdG8gYWNjZXNzIHRoZSBzdGFjayBwb2ludGVyIG9yIG5vdC4gSG93ZXZlciwKICAgIG9uIHN5c3RlbXMgd2l0aCBhIGxvdCBvZiBSQU0sIG9ubHkgYSBzdWJzZXQgb2YgdGhlIFJBTSBpcwogICAgZ3VhcmFudGVlZCB0byBiZSBtYXBwZWQgaW4gYW5kIGFjY2Vzc2libGUuCUNoYW5nZSBFTkRfT0ZfUkFNCiAgICB0byB1c2UgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkgaW5zdGVhZCBvZiB1c2luZyB0aGUgcmF3IHJhbQogICAgc2l6ZSBvdXQgb2YgdGhlIGJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxNjczZTlhZTE0Yjc3MWNkMTNmYWYxOTk0NzE5MjU5OWNhZTM5NTkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgTWF5IDEzIDE5OjAxOjU0IDIwMDggLTA1MDAKCiAgICBNYWtlIHN1cmUgY29tbW9uLmggaXMgdGhlIGZpcnN0IGluY2x1ZGUuCgogICAgSWYgY29tbW9uLmggaXNuJ3QgZmlyc3Qgd2UgY2FuIGdldCBDT05GSUdfIG9wdGlvbnMgZGVmaW5lZCBpbiB0aGUKICAgIGJvYXJkIGNvbmZpZyBmaWxlIGlnbm9yZWQuCVRoaXMgY2FuIGNhdXNlIGFuIGlzc3VlIGlmIGFueSBvZiB0aG9zZQogICAgY29uZmlnIG9wdGlvbnMgaW1wYWN0IHRoZSBzaXplIG9mIHR5cGVzIG9mIGRhdGEgc3RydWN0dXJlcwogICAgKGVnIENPTkZJR19QSFlTXzY0QklUKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk1ZDQ0OWFkNGRlNzlkZDMyYjE3MDViOGE0ZDM1NTBmMWU5MDgxZTMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDEzIDE1OjUzOjI5IDIwMDggKzAyMDAKCiAgICBBdm9pZCBpbml0cmQgYW5kIGxvZ2J1ZmZlciBhcmVhIG92ZXJsYXBzCgogICAgQWRkIGxvZ2J1ZmZlciB0byByZXNlcnZlZCBMTUIgYXJlYXMgdG8gcHJldmVudCBpbml0cmQgYWxsb2NhdGlvbgogICAgZnJvbSBvdmVybGFwaW5nIHdpdGggaXQuCgogICAgTWFrZSBzdXJlIHRvIHVzZSBjb3JyZWN0IGxvZ2J1ZmZlciBiYXNlIGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2OTU2ZDUzZDk5MzQ4NjI1MDdmODNmMGUzMjU1ZGZkNDY2MmU3NDgyCkF1dGhvcjogU2FzY2hhIExhdWUgPHNhc2NoYS5sYXVlQGxpZWJoZXJyLmNvbT4KRGF0ZToJVHVlIE1heSAxMyAxMzoyOTo1NCAyMDA4ICswMjAwCgogICAgbHdtb241OiBhZGQgbWVtb3J5LXBhdHRlcm4tdGVzdCB0byBGUEdBIFBPU1QuCgpjb21taXQgZTM0YTBlOTExYjZhMTU2OGQwY2E4NjQyMzRmYmQwZWUwNjBkOWIzNQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDggMTk6MDI6NTEgMjAwOCAtMDUwMAoKICAgIFBQQzogODZ4eCBBZGQgYmF0IHJlZ2lzdGVycyB0byByZWdpbmZvIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNWI5YjhjZGI4YjZlYjNhOGIwZjVkOTkwOWQ2OWNjYzljNzAzZWQ5CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgOSAxNTo0MTozNSAyMDA4IC0wNTAwCgogICAgUFBDOiBBZGQgcHJpbnRfYmF0cygpIHRvIGxpYl9wcGMvYmF0X3J3LmMKCiAgICBUaGlzIGZ1bmN0aW9uIHByaW50cyB0aGUgdmFsdWVzIG9mIGFsbCB0aGUgQkFUIHJlZ2lzdGVyCiAgICBwYWlycyAtIEkgbmVlZGVkIHRoaXMgZm9yIGRlYnVnIGVhcmxpZXIgdGhpcyB3ZWVrOyBhZGRpbmcgaXQgdG8KICAgIGxpYl9wcGMgc28gb3RoZXJzIGNhbiB1c2UgaXQgKGFuZCBhZGQgaXQgdG8gcmVnaW5mbyBjb21tYW5kcwogICAgaWYgc28gZGVzaXJlZCkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzE0OGYyNGMxNTc0M2EwMmU4NTU2MzZlNmJlZDAxM2JkMTIxZjdmMgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDE1IDIxOjI5OjA0IDIwMDggLTA1MDAKCiAgICBQUEM6IENoYW5nZSBsaWJfcHBjL2JhdF9ydy5jIHRvIHVzZSBoaWdoIGJhdHMKCiAgICBDdXJyZW50bHksIHRoaXMgY29kZSBvbmx5IGRlYWxzIHdpdGggQkFUcyAwLTMsIHdoaWNoIG1ha2VzCiAgICBpdCB1c2VsZXNzIG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IEJBVHMgNC03LiAgQWRkIHRoZQogICAgc3VwcG9ydCBmb3IgdGhlc2UgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxCZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMxZDgyNjcyMjQzNDkzMWUxMTUyYTA5ZDE0MDE4N2RjZjcyZjhhYWMKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSA4IDE5OjAyOjEyIDIwMDggLTA1MDAKCiAgICBQUEM6IENyZWF0ZSBhbmQgdXNlIENPTkZJR19ISUdIX0JBVFMKCiAgICBDaGFuZ2UgYWxsIGNvZGUgdGhhdCBjb25kaXRpb25hbGx5IG9wZXJhdGVzIG9uIGhpZ2ggYmF0CiAgICByZWdpc3RlcnMgKHRoYXQgaXMsIEJBVHMgNC03KSB0byBsb29rIGF0IENPTkZJR19ISUdIX0JBVFMKICAgIGluc3RlYWQgb2YgdGhlIG15cmlhZCB3YXlzIHRoaXMgaXMgZG9uZSBub3cuICBEZWZpbmUgdGhlIG9wdGlvbgogICAgZm9yIGV2ZXJ5IGNvbmZpZyBmb3Igd2hpY2ggaGlnaCBiYXRzIGFyZSBzdXBwb3J0ZWQgKGFuZAogICAgZW5hYmxlZCBieSBlYXJseSBib290LCBvbiBwYXJ0cyB3aGVyZSB0aGV5J3JlIG5vdCBhbHdheXMKICAgIGVuYWJsZWQpCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWEzYjhiZjljMzAwNjViYjJlYTg1Mjc5OWQzMmRiNTAyMDU5ODQ5NQpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgTWF5IDI4IDE5OjU1OjE5IDIwMDggKzAyMDAKCiAgICBFMTAwMDogQWRkIHN1cHBvcnQgZm9yIHRoZSA4MjU0MUdJIExGIEludGVsIFBybyAxMDAwIEdUIERlc2t0b3AgQWRhcHRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmZjM2ZmJiMmU3NTgzZmI4MDhlZWY3NzNmNTExNDg5YzdhOWMyZGYzCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAyOCAxMzowNjoyNSAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCAxMCBiYXNlIGV0aGVybmV0IHN1cHBvcnQgZm9yIG1jZjU0NDV4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMWE5ZmNjNGI3NjU1OTlkYjI0ZmE5YzMyMjkzNTk5ZjI0YzdhMTliYQpBdXRob3I6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgpEYXRlOglGcmkgTWF5IDMwIDAwOjUzOjM4IDIwMDggKzA5MDAKCiAgICBtaXBzOiBBZGQgYW4gJ2luY2x1ZGUvYXNtL2Vycm5vLmgnLCBsaWtlIGFsbCBvdGhlciBhcmNoaXRlY3R1cmVzCgogICAgQWxsIG90aGVyIHUtYm9vdCBhcmNoaXRlY3R1cmVzIGhhdmUgYW4gaW5jbHVkZS9hc20vZXJybm8uaCwgc28KICAgIHRoaXMgY2hhbmdlIGFkZHMgaXQgdG8gdGhlIG1pcHMgaW5jbHVkZS9hc20tbWlwcyBoZWFkZXJzIGFsc28uCgogICAgU3RvbGVuIGZyb20gTGludXggMi42LjI1LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgoKY29tbWl0IGUyYWQ4NDI2NjI0YmFjNDU3YWNjNjkyNWI2ZmY0MDhlOWJmMjA0NjYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglGcmkgTWF5IDMwIDAwOjUzOjM4IDIwMDggKzA5MDAKCiAgICBbTUlQU10gPGFzbS9taXBzcmVncy5oPjogVXBkYXRlIGNvcHJvY2Vzc29yIHJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDFhM2FkYWM4MWMyOTJmMmVlNzZlNDNjZGViMmZiZThmOTE1ZmUxOTQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglGcmkgTWF5IDMwIDAwOjUzOjM4IDIwMDggKzA5MDAKCiAgICBbTUlQU10gPGFzbS9taXBzcmVncy5oPjogVXBkYXRlIHJlZ2lzdGVyIC8gYml0IGZpZWxkIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBiZjQ2MmFlNDUwYTdmMmVlZWRkYzY5OWVkMzQ1YjM5MWUzMjYzNTQwCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJRnJpIE1heSAzMCAwMDo1MzozNyAyMDA4ICswOTAwCgogICAgW01JUFNdIDxhc20vbWlwc3JlZ3MuaD46IENvZGlueWdTdHlsZSBjbGVhbnVwcwoKICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDg5YTE1NTBlYzZiNzQ0NTIyNzRhN2EyMzEyNzkzNmUyYzdlZWM3MTEKQXV0aG9yOiBKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KRGF0ZToJRnJpIE1heSAzMCAwMDo1MzozNyAyMDA4ICswOTAwCgogICAgbWlwczogSWYgQ09ORklHX0NNRF9TUEkgaXMgZGVmaW5lZCwgY2FsbCBzcGlfaW5pdCgpCgogICAgVGhlIG1pcHMgYXJjaGl0ZWN0dXJlIGN1cnJlbnRseSBkb2VzIG5vdCBjYWxsICdzcGlfaW5pdCgpJyBpbiB0aGUgZ2VuZXJpYwogICAgYm9hcmQgaW5pdGlhbGl6YXRpb24gcm91dGluZSBpcyBDT05GSUdfQ01EX1NQSSBpcyBkZWZpbmVkLgoKICAgIFRoaXMgcGF0Y2ggcmVjdGlmaWVzIHRoYXQgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZTk5NmJjMzM5YjBmMzlmNmMwYjI5YjE0NTViYTdlYjMxOGIwMjNkMwpBdXRob3I6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgpEYXRlOglGcmkgTWF5IDMwIDAwOjUzOjM3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gbGliX21pcHMvYm9hcmQuYzogQWRkIG5hbmRfaW5pdAoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgc3RhbmRhcmQgJ25hbmRfaW5pdCgpJyBjYWxsIHRvIHRoZSBtaXBzIGdlbmVyaWMKICAgICdib2FyZF9pbml0X3IoKScgY2FsbCwgYnJpbmdpbmcgTUlQUyBpbiBsaW5lIHdpdGggdGhlIG90aGVyIGFyY2hpdGVjdHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGQ2YWMyZWQ4OTNjMjE2ODczOGFlZTAxNTc5ZDYyODNhZjhkMzcwNDUKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAyMiAxMDo0OTo0NiAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIHByb3RvdHlwZXMgb2YgbmFuZF9pbml0KCkgaW4gZmF2b3Igb2YgaW5jbHVkaW5nIG5hbmQuaC4KCiAgICBMaWtld2lzZSB3aXRoIG9uZW5hbmRfaW5pdCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyOWM1NmYwN2E4MmVhY2RhOGM4NzIwY2IxNDZmYzliZTBmNmRiNTQKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAyMiAxMDo0OTowMCAyMDA4IC0wNTAwCgogICAgTWFrZSBvbmVuYW5kX3Vib290Lmggc2VsZi1zdWZmaWNpZW50LgoKICAgIERvbid0IGFzc3VtZSB0eXBlcyBhcmUgcHJvdmlkZWQgYnkgcHJldmlvdXNseSBpbmNsdWRlZCBoZWFkZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3MjNiYmI0NmFiYjdiMmNhMjRlZWFkNTExNGEzZmFhNTgwNjBjMjAKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNDoyNjo1OSAyMDA4ICswMTAwCgogICAgbmFuZDogQ29ycmVjdCBOQU5EIGVyYXNlIHBlcmNlbnRhZ2Ugb3V0cHV0CgogICAgRm9yIE5BTkQgZXJhc2Ugc2l6ZXMgc21hbGxlciB0aGFuIG9uZSBOQU5EIGVyYXNlIGJsb2NrLCBlcmFzZQogICAgcGVyY2VudGFnZSBvdXRwdXQgYmVjb21lcyBncmF0ZXIgdGhhbiAxMDAlIGUuZy4KCiAgICAtLSBjdXQgLS0KICAgICAgPiBuYW5kIGluZm8KICAgIERldmljZSAwOiBOQU5EIDY0TWlCIDEsOFYgOC1iaXQsIHNlY3RvciBzaXplIDE2IEtpQgogICAgICA+IG5hbmQgZXJhc2UgMHgxMDAwMDAgMHgyMDAwCiAgICBOQU5EIGVyYXNlOiBkZXZpY2UgMCBvZmZzZXQgMHgxMDAwMDAsIHNpemUgMHgyMDAwCiAgICBFcmFzaW5nIGF0IDB4MTAwMDAwIC0tIDIwMCUgY29tcGxldGUuCiAgICBPSwogICAgICA+CiAgICAtLSBjdXQgLS0KCiAgICBDb3JyZWN0IHRoaXMgYW5kIGdpdmUgdXNlciBhIHdhcm5pbmcgdGhhdCBtb3JlIGlzIGVyYXNlZCB0aGFuIHNwZWNpZmllZDoKCiAgICAtLSBjdXQgLS0KICAgICAgPiBuYW5kIGVyYXNlIDB4MTAwMDAwIDB4MjAwMAogICAgTkFORCBlcmFzZTogZGV2aWNlIDAgb2Zmc2V0IDB4MTAwMDAwLCBzaXplIDB4MjAwMAogICAgV2FybmluZzogRXJhc2Ugc2l6ZSAweDAwMDAyMDAwIHNtYWxsZXIgdGhhbiBvbmUgZXJhc2UgYmxvY2sgMHgwMDAwNDAwMAoJICAgICAgIEVyYXNpbmcgMHgwMDAwNDAwMCBpbnN0ZWFkCiAgICBFcmFzaW5nIGF0IDB4MTAwMDAwIC0tIDEwMCUgY29tcGxldGUuCiAgICBPSwogICAgICA+CiAgICAtLSBjdXQgLS0KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCA1OTIyZGI2YzA5NDg1MDZiZTkxZTBkZTQ0ZTdhNjg2M2ExOGE0MTdmCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVHVlIE1heSAxMyAxNzozMToyNCAyMDA4ICswMjAwCgogICAgQ2xlYW51cCBuYW5kX2luZm9bXSBkZWNsYXJhdGlvbi4KCiAgICBUaGUgbmFuZF9pbmZvIGFycmF5IGlzIGRlY2xhcmVkIGFzIGV4dGVybiBpbiBzZXZlcmFsIC5jIGZpbGVzLgogICAgVGhvc2UgZGF5cywgbmFuZC5oIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBhcnJheSwgc28gdGhlcmUgaXMKICAgIG5vIG5lZWQgdG8gZGVjbGFyZSBpdCBlbHNld2hlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzNWYwYTc0ODhhZjI5NDdhZGJlNGI0MGI3OTI4MGJkZmU1ZTk4ODYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSAxOSAwOTozMDo0MyAyMDA4IC0wNTAwCgogICAgTkFORDogUHJvdmlkZSBhIHNhbmUgZGVmYXVsdCBmb3IgTkFORF9NQVhfQ0hJUFMuCgogICAgVGhpcyBhbGxvd3MgdGhlIGhlYWRlciB0byBiZSBpbmNsdWRlZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgYSBib2FyZCdzCiAgICBjb25maWcgZmlsZSBwcm92aWRlcyBOQU5ELXJlbGF0ZWQgZGVmaW5pbml0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhODA5MmMwMjFkMjdmMjdmNGIzMjNiN2Q0OTk3OWNhMDFiM2ZjMTlkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gTWF5IDI2IDEyOjE5OjEwIDIwMDggKzAyMDAKCiAgICBhdnIzMjogRml4IHRoZW9yZXRpY2FsIHJhY2UgaW4gdWRlbGF5KCkKCiAgICBJZiB0aGUgc3BlY2lmaWVkIGRlbGF5IGlzIHZlcnkgc2hvcnQsIHRoZSBjeWNsZSBjb3VudGVyIG1heSBnbyBwYXN0IHRoZQogICAgImVuZCIgdGltZSB3ZSBhcmUgd2FpdGluZyBmb3IgYmVmb3JlIHdlIGdldCBhcm91bmQgdG8gcmVhZGluZyBpdC4KCiAgICBGaXggaXQgYnkgY2hlY2tpbmcgdGhlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBjeWNsZSBjb3VudCAibm93IiBhbmQgdGhlCiAgICBjeWNsZSBjb3VudCBhdCB0aGUgYmVnaW5uaW5nLiBUaGlzIHdpbGwgd29yayBhcyBsb25nIGFzIHRoZSBkZWxheQogICAgbWVhc3VyZWQgaW4gbnVtYmVyIG9mIGN5Y2xlcyBpcyBiZWxvdyAyXjMxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0OGVhNjIzZWFlODY3NDc5MzM3MmUzZTdjOTVlNzJlNWE0NGQ3YTk1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWF5IDIxIDEzOjAxOjA5IDIwMDggKzAyMDAKCiAgICBhdnIzMjogQ29tcGlsZSBhdG1lbF9tY2kubyBjb25kaXRpb25hbGx5CgogICAgUmVtb3ZlICNpZmRlZiBDT05GSUdfTU1DIGZyb20gdGhlIHNvdXJjZSBmaWxlIGFuZCB1c2UgY29uZGl0aW9uYWwKICAgIGNvbXBpbGF0aW9uIGluIHRoZSBNYWtlZmlsZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlOTJhNWJmODMzMDY1NGUzM2FjMTNmNmIzMDU4NjM0ZTU4ZjVkMWMwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTWF5IDIyIDEyOjI4OjI1IDIwMDggKzAyMDAKCiAgICBhdnIzMjogRml4IHdyb25nIGVycm9yIGZsYWdzIGluIGF0bWVsX21jaSBkcml2ZXIKCiAgICBNYWtlIHN1cmUgd2UgY2hlY2sgZm9yIENSQyBlcnJvcnMgd2hlbiBzZW5kaW5nIGNvbW1hbmRzIHRoYXQgdXNlIENSQwogICAgY2hlY2tpbmcuCgogICAgUmVwb3J0ZWQtYnk6IEd1cnVyYWphIEhlYmJhciBLIFIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2E5NmRkYWRkMTNlNmFjOWE4MjlhZmZjZTliNmY4ODIzZjU4MGU0OQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyMSAxMToxMDo1OSAyMDA4ICswMjAwCgogICAgYXZyMzI6IEZpeCB0d28gd2FybmluZ3MgaW4gYXRtZWxfbWNpLmMKCiAgICBUaGUgd2FybmluZ3MgYXJlIGhhcm1sZXNzIGJ1dCBhbm5veWluZy4gTGV0J3MgZml4IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGEyM2UyNzdjNGEzYTJiYmM0MmQyMzdhYWUyOWRhM2E4OTcxZTc1N2YKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBNYXkgMTkgMTE6MzY6MjggMjAwOCArMDIwMAoKICAgIGF2cjMyOiBSZXdvcmsgU0RSQU0gaW5pdGlhbGl6YXRpb24gY29kZQoKICAgIFRoaXMgY2xlYW5zIHVwIHRoZSBTRFJBTSBpbml0aWFsaXphdGlvbiBhbmQgcmVsYXRlZCBjb2RlIGEgYml0LCBhbmQKICAgIGFsbG93cyBmYXN0ZXIgYm9vdGluZy4KCiAgICAgICogQWRkIGRlZmluaXRpb25zIGZvciBFQkkgYW5kIGludGVybmFsIFNSQU0gdG8gYXNtL2FyY2gvbWVtb3J5LW1hcC5oCiAgICAgICogUmVtb3ZlIG1lbW9yeSB0ZXN0IGZyb20gc2RyYW1faW5pdCgpIGFuZCBtYWtlIGNhbGxlciByZXNwb25zaWJsZQoJZm9yIHZlcmlmeWluZyB0aGUgU0RSQU0gYW5kIGRldGVybWluaW5nIGl0cyBzaXplLgogICAgICAqIFJlbW92ZSBiYXNlX2FkZHJlc3MgbWVtYmVyIGZyb20gc3RydWN0IHNkcmFtX2NvbmZpZyAod2FzIHNkcmFtX2luZm8pCiAgICAgICogQWRkIGRhdGFfYml0cyBtZW1iZXIgdG8gc3RydWN0IHNkcmFtX2NvbmZpZyBhbmQga2lsbCBDRkdfU0RSQU1fMTZCSVQKICAgICAgKiBBZGQgc3VwcG9ydCBmb3IgYSBjb21tb24gU1RLMTAwMCBoYWNrOiAxNk1CIFNEUkFNIGluc3RlYWQgb2YgOC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTUxMDdiN2MwMjg4MDY5MTk2MzBiZjAyYzY1M2FhOGY0Zjg2N2M5NApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE1heSAxOSAxMToyNzozNyAyMDA4ICswMjAwCgogICAgYXZyMzI6IERvIHN0cmljdGVyIHN0YWNrIGNoZWNraW5nIGluIHRoZSBleGNlcHRpb24gaGFuZGxlcgoKICAgIERvbid0IGRvIGEgc3RhY2sgZHVtcCBpZiB0aGUgc3RhY2sgcG9pbnRlciBpcyBvdXRzaWRlIHRoZSBtZW1vcnkgYXJlYQogICAgcmVzZXJ2ZWQgZm9yIHN0YWNrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjYWY4M2VhODg4YTAyMjBmNDE3NDdkMGI3NzQ4ZmE0M2I0YTRiZDQ5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDIgMTU6MzI6NTcgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBVc2UgdGhlIHNhbWUgZW50cnkgcG9pbnQgZm9yIHJlc2V0IGFuZCBleGNlcHRpb24gaGFuZGxpbmcKCiAgICBTaW5jZSB0aGUgcmVzZXQgdmVjdG9yIGlzIGFsd2F5cyBhbGlnbmVkIHRvIGEgdmVyeSBsYXJnZSBib3VuZGFyeSwgd2UKICAgIGNhbiBzYXZlIGEgY291cGxlIG9mIEtCIHdvcnRoIG9mIGFsaWdubWVudCBwYWRkaW5nIGJ5IHBsYWNpbmcgdGhlCiAgICBleGNlcHRpb24gdmVjdG9ycyBhdCB0aGUgc2FtZSBhZGRyZXNzLgoKICAgIERlY2lkaW5nIHdoaWNoIG9uZSBpdCBpcyBpcyBlYXN5OiBJZiB3ZSdyZSBoYW5kbGluZyBhbiBleGNlcHRpb24sIHRoZQogICAgQ1BVIGlzIGluIEV4Y2VwdGlvbiBtb2RlLiBJZiB3ZSdyZSBzdGFydGluZyB1cCBhZnRlciByZXNldCwgdGhlIENQVSBpcwogICAgaW4gU3VwZXJ2aXNvciBtb2RlLiBTbyB0aGlzIGFkZHMgYSB2ZXJ5IG1pbmltYWwgb3ZlcmhlYWQgdG8gdGhlIHJlc2V0CiAgICBwYXRoIChvbmx5IGV4ZWN1dGVkIG9uY2UpIGFuZCB0aGUgZXhjZXB0aW9uIGhhbmRsaW5nIHBhdGggKG5vcm1hbGx5CiAgICBuZXZlciBleGVjdXRlZCBhdCBhbGwuKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwYzE2ZWVkMjE4OWExOTBiZDU2NTViMzNjMDI5ZjgwOWE5YjMxMTI4CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDIgMTU6MjQ6MjIgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBQdXQgbWVtc2V0IGluIGl0cyBvd24gc2VjdGlvbgoKICAgIEFsbCBDIGNvZGUgaXMgY29tcGlsZWQgd2l0aCAtZmZ1bmN0aW9uLXNlY3Rpb25zIC1mZGF0YS1zZWN0aW9ucy4KICAgIEFzc2VtYmx5IGZ1bmN0aW9ucyBzaG91bGQgZ2V0IHRoZWlyIG93biBzZWN0aW9ucyBhcyB3ZWxsIHNvIHRoYXQKICAgIGV2ZXJ5dGhpbmcgbG9va3MgY29uc2lzdGVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgM2FjZTI1MjdiYTgwYmQyZmUxYmNlYWFiNTBkMGIzYzRmYjVkZDAyMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1heSAyIDE1OjIxOjQwIDIwMDggKzAyMDAKCiAgICBhdnIzMjogUmVuYW1lIHBtX2luaXQoKSBhcyBjbGtfaW5pdCgpIGFuZCBtYWtlIFNvQy1zcGVjaWZpYwoKICAgIHBtX2luaXQoKSB3YXMgYWx3YXlzIG1vcmUgYWJvdXQgY2xvY2sgaW5pdGlhbGl6YXRpb24gdGhhbiBhbnl0aGluZwogICAgZWxzZS4gRGVhbGluZyB3aXRoIFBMTHMsIGNsb2NrIGdhdGluZyBhbmQgc3VjaCBpcyBhbHNvIGluaGVyZW50bHkKICAgIFNvQy1zcGVjaWZpYywgc28gbW92ZSBpdCBpbnRvIGEgU29DLXNwZWNpZmljIGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNGY1OTcyYzNiMjQ1NGMyMjk1N2YyODQyY2ZlNjRlYzgxMThlMDE1YgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxNjoxNTo1NyAyMDA4ICswMjAwCgogICAgYXZyMzI6IFVzZSBuZXctc3R5bGUgTWFrZWZpbGUgZm9yIHRoZSBhdDMyYXAgcGxhdGZvcm0KCiAgICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBhdm9pZCBjb21waWxpbmcgY2VydGFpbiBmaWxlcyBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYTliMmJiNzhhMWJkOGViZGI2MzM1MDliZGQxYzgxMzRkNTI3YjIxMwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxNDozNjo0NyAyMDA4ICswMjAwCgogICAgYXZyMzI6IFJlbW92ZSB1bnVzZWQgZmlsZSBjcHUvYXQzMmFwL3BtLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNDQ0NTNiMjViMDY0MjZlZWYwYjdiMmZhN2MwMjZmZGYxOWNlMzRmMgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxNDoxOToyOCAyMDA4ICswMjAwCgogICAgYXZyMzI6IENsZWFuIHVwIHRoZSBITUFUUklYIGNvZGUKCiAgICBSZXdvcmsgdGhlIEhNQVRSSVggY29uZmlndXJhdGlvbiBpbnRlcmZhY2Ugc28gdGhhdCBpdCBiZWNvbWVzIGVhc2llcgogICAgdG8gY29uZmlndXJlIHRoZSBITUFUUklYIGZvciBib2FyZHMgd2l0aCBzcGVjaWFsIG5lZWRzLCBhbmQgYWRkIG5ldwogICAgcGFydHMuCgogICAgVGhlIEhNQVRSSVggaGVhZGVyIGZpbGUgaGFzIGJlZW4gc3BsaXQgaW50byBhIGdlbmVyYWwsCiAgICBjaGlwLWluZGVwZW5kZW50IHBhcnQgd2l0aCByZWdpc3RlciBkZWZpbml0aW9ucywgZXRjLiBhbmQgYQogICAgY2hpcC1zcGVjaWZpYyBwYXJ0IHdpdGggU0ZSIGJpdGZpZWxkIGRlZmluaXRpb25zIGFuZCBtYXN0ZXIvc2xhdmUKICAgIGlkZW50aWZpZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwYTJlNDg3OTJkZDM3MmM5MGI4MDA1OWYzMjM1ZTY3YTU2N2UxNmZjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDIyIDEyOjE0OjExIDIwMDcgKzAxMDAKCiAgICBhdnIzMjogQWRkIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDYgYm9hcmQKCiAgICBUaGlzIGlzIGEgcmVwbGFjZW1lbnQgZm9yIEFUU1RLMTAwMiB3aXRoIDY0TUIgU0RSQU0gYW5kIE5BTkQgZmxhc2ggb24KICAgIGJvYXJkLiBJdCdzIGN1cnJlbnRseSBpbiBwcm9kdWN0aW9uIGFuZCB3aWxsIGJlIGF2YWlsYWJsZSBzb29uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3ODFlYjlhMWU0YWY0YmQzNGMxMzhlNjEyNmVjNWNjNmRkNGI1NDQwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUdWUgQXByIDI5IDEyOjUzOjA1IDIwMDggKzAyMDAKCiAgICBhdnIzMjogR2V0IHJpZCBvZiB0aGUgLmZsYXNocHJvZyBzZWN0aW9uCgogICAgVGhlIC5mbGFzaHByb2cgc2VjdGlvbiB3YXMgb25seSBuZWVkZWQgYmFjayB3aGVuIHdlIHdlcmUgcnVubmluZwogICAgZGlyZWN0bHkgZnJvbSBmbGFzaCwgYW5kIGl0J3MgZXZlbiBtb3JlIHVzZWxlc3Mgb24gTkdXMTAwIHNpbmNlIGl0CiAgICB1c2VzIHRoZSBDRkkgZmxhc2ggZHJpdmVyIHdoaWNoIG5ldmVyIHVzZWQgdGhpcyB3b3JrYXJvdW5kIGluIHRoZQogICAgZmlyc3QgcGxhY2UuCgogICAgUmVtb3ZlIGl0IG9uIFNUSzEwMDAgYXMgd2VsbCwgYW5kIGdldCByaWQgb2YgYWxsIHRoZSBhc3NvY2lhdGVkIGNvZGUgYW5kCiAgICBhbm5vdGF0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgY2RkNDJjMGM3YTUyMDVmYzM4MDkxMmQ4MzIyOTA2OWE3MWVhM2FiZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxMzowOTo1NiAyMDA4ICswMjAwCgogICAgYXZyMzI6IFVzZSBjb3JyZWN0IGNvbmRpdGlvbiBhcm91bmQgbWFjYiBjbG9jayBhY2Nlc3NvcnMKCiAgICBnZXRfbWFjYl9wY2xrX3JhdGUoKSBhbmQgZ2V0X21hY2JfaGNsa19yYXRlKCkgc2hvdWxkIGJlIGF2YWlsYWJsZSB3aGVuCiAgICB0aGUgY2hpcCBoYXMgYSBNQUNCIGNvbnRyb2xsZXIsIG5vdCB3aGVuIGl0IGhhcyBhIFVTQVJULgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmNzkzYTM1ODE5MDFmZjM5YzJhYmI5NDAxMmQ5YmJjODU3M2NjZjAyCkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRhdmlkLWJAcGFjYmVsbC5uZXQ+CkRhdGU6CVdlZCBBcHIgMTYgMjI6NTc6NTggMjAwOCAtMDcwMAoKICAgIGF2cjMyOiBEaXNhYmxlIHRoZSBBUDcwMDAgaW50ZXJuYWwgd2F0Y2hkb2cgb24gc3RhcnR1cAoKICAgIFRoaXMgcGF0Y2ggZm9yY2VzIHRoZSB3YXRjaGRvZyBvZmYgaW4gYWxsIGNhc2VzLiAgVGhhdCB3aWxsIGF0IGxlYXN0CiAgICBnZXQgcmlkIG9mIHRoZSBjb25zdGFudCByZWJvb3QgY3ljbGUsIHRob3VnaCBpdCB3b24ndCBsZXQgdGhlIHdhdGNoZG9nCiAgICBhY3R1YWxseSBydW4gaW4gdGhlIG5ldyBrZXJuZWxzOiAgaXRzIHByb2JlKCkgY29tZXMgdXAgd2l0aCBhIHBvbGl0ZQogICAgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNTVhYzdhNzQ5MGI1NWRhNTY2NTlmOTVkODJhMGM4M2I5NzU2ZGYyNwpBdXRob3I6IERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgpEYXRlOglGcmkgRmViIDIyIDEyOjU0OjM5IDIwMDggLTA4MDAKCiAgICBhdnIzMjogc3RrMTAwMiBhbmQgbmd3MTAwIGNvbnZlcmdlbmNlCgogICAgTWFrZSBTVEsxMDAyIGFuZCBOR1cxMDAgYm9hcmRzIGFjdCBtb3JlIGFsaWtlOgogICAgICAtIFNUSyBib2FyZHMgY2FuIHVzZSBhcyBtYW55IGFyZ3VtZW50cyBhcyBOR1cKICAgICAgLSBTVEsgYm9hcmRzIGRvbid0IG5lZWQgdG8gbWFuYWdlIEZQR0FzIGVpdGhlcgogICAgICAtIE5HVyBjb21tYW5kcyBzaG91bGQgbWF0Y2ggU1RLIG9uZXMKCiAgICBBbHNvIHNwZWxsIFUtQm9vdCByaWdodCBpbiBwcm9tcHRzIGZvciBTVEsxMDAyIGFuZCBOR1cxMDAuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiAgICBbaGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbTogdXBkYXRlIFNUSzEwMFszNF0gYXMgd2VsbF0KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1ZTE4ODJkZjZhM2VmYzdkZTU1MjRkMjhjZWE0ZWNkZTdkMTYzZDU0CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIE1heSAyNyAxMzo0NzowMCAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IEZpeCBQQ0kgYnVzIGZyZXF1ZW5jeSByZXBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDc5MWUxZGJhOGRlNzZhZDhlNzYyYTdiYWRiODY5ZjIyNGExZjhiODIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgTWF5IDI3IDExOjQ5OjEzIDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogQWRkZWQgVVNCIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA1YTkwNGU1NjM3Y2ZmMWQ3MDhkYzY3MDk4MDA0ZjgzYmE5ZTg0YzU0CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIE1heSAyNyAxMTozNTowMiAyMDA4ICswMjAwCgogICAgVVNCOiBhZGQgbmV3IGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgQ09ORklHX1BDSV9PSENJX0RFVk5PCgogICAgSW4gY2FzZSBvZiBzZXZlcmFsIFBDSSBVU0IgY29udHJvbGxlcnMgb24gYSBib2FyZCB0aGlzIHZhcmlhYmxlCiAgICBzcGVjaWZ5cyB3aGljaCBjb250cm9sbGVyIHRvIHVzZS4KICAgIFNlZSBkb2MvUkVBRE1FLmdlbmVyaWNfdXNiX29oY2kgZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAyZjc0NjhhZWJhNjBlMTI4ODAzMGE4ZDAwN2M0ZTYzYmQzZjEzMjIxCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIE1heSAyNyAxMDozNjowNyAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IGFkZCBzdXBwb3J0IGZvciBEUzc1IERpZ2l0YWwgVGhlcm1vIFNlbnNvciBvbiBJMkMgYnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgODNlOWQ3YTI2MTRkNDAwNmI5MjY5MGFmYTMzOTBjMjkxNzM0MjY3ZQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXkgMjYgMTg6MTY6MDQgMjAwOCArMDIwMAoKICAgIFNvY3JhdGVzOiBDb25maWcgZmlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgNjAyY2FjMTM4OWI3NTViMjIzMjcyZjIzMjhhNDdlNmY4YzI0MDg0OApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBNYXkgMjQgMTI6NDc6NDYgMjAwOCArMDIwMAoKICAgIE1BS0VBTEw6IGFkZCBhdDkxIGxpc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI5MGVmNjQzNjgzOGIxY2MwMTNiZDY3ZTBlMDQ5NWM5ZWIzZTIzYzAKQXV0aG9yOiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+CkRhdGU6CUZyaSBNYXkgMjMgMTU6Mzc6MDUgMjAwOCAtMDcwMAoKICAgIEFkZCBNYXJ2ZWxsIDg4RTExMTggc3VwcG9ydCBmb3IgVFNFQwoKICAgIFNpZ25lZC1vZmYtYnk6IFJvbiBNYWRyaWQgPHJvbl9tYWRyaWRAc2JjZ2xvYmFsLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNTU3YjM3N2Q4YmZjOGI4MzNiNmU3NDk0NTdiY2RmYTI5ODMzMWEyNApBdXRob3I6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KRGF0ZToJTW9uIE1heSA1IDE0OjA2OjExIDIwMDggKzAyMDAKCiAgICBzbWM5MTF4OiBhZGQgMTYgYml0IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDYzMjRlNWJlYzg4MjVmN2ZlZTMwMjZmZmJkMzk0NDU0YWU4YjUzZmIKQXV0aG9yOiBDaHJpc3RpYW4gRWdnZXJzIDxjZWdnZXJzQGdteC5kZT4KRGF0ZToJV2VkIE1heSAyMSAyMToyOToxMCAyMDA4ICswMjAwCgogICAgRml4IGVuZGlhbmVzcyBjb252ZXJzaW9uIGluIHVzYl9vaGNpLmMKCiAgICBTb3JyeSwgSSBmb3Jnb3QgdGhpcyBsaW5lOgoKICAgIFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgoKICAgIEkgdGhpbmsgdGhpcyBtdXN0IGJlIHN3YXBwZWQgKHJlc3VsdCBtYXkgYmUgZXF1YWwpLgoKY29tbWl0IGM5MTgyNjFjNmQ5ZjI2NWY4OGJhZjcwZjhhNzNkZmU2ZjBjYjk1OTYKQXV0aG9yOiBDaHJpc3RpYW4gRWdnZXJzIDxjZWdnZXJzQGdteC5kZT4KRGF0ZToJV2VkIE1heSAyMSAyMjoxMjowMCAyMDA4ICswMjAwCgogICAgVVNCOiByZXBsYWNlIG9sZCBzd2FwXyB3aXRoIHByb3BlciBlbmRpYW5lc3MgY29udmVyc2lvbiBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gRWdnZXJzIDxjZWdnZXJzQGdteC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZmI2MzkzOWI0ZmUxNDA4NDljZGJhNjlmOWU2NGEzZTBlMmYzY2UxYwpBdXRob3I6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgpEYXRlOglXZWQgTWF5IDIxIDIxOjI5OjEwIDIwMDggKzAyMDAKCiAgICBGaXggZW5kaWFuZXNzIGNvbnZlcnNpb24gaW4gdXNiX29oY2kuYwoKICAgIFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA0Nzc0MzRjNjNjMmVhNWJhYTVjNmM0ZTQzNTAwNzg2ZjQzNjUxMWZmCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSAyMiAwMToxNTo1MyAyMDA4ICswMjAwCgogICAgVVNCOiBhZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgUENJIE9IQ0kgY29udHJvbGxlcnMKCiAgICBBZGQgbmV3IGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgQ09ORklHX1BDSV9PSENJX0RFVk5PLgogICAgSW4gY2FzZSBvZiBzZXZlcmFsIFBDSSBVU0IgY29udHJvbGxlcnMgb24gYSBib2FyZCB0aGlzIHZhcmlhYmxlCiAgICBzcGVjaWZ5cyB3aGljaCBjb250cm9sbGVyIHRvIHVzZS4KCiAgICBBbHNvIGFkZCBVU0Igc3VwcG9ydCBmb3Igc29rcmF0ZXMgYm9hcmQuCgogICAgU2VlIGRvYy9SRUFETUUuZ2VuZXJpY191c2Jfb2hjaSBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBjZTY3NTRkZjYxY2JlMjNiNWI3M2QwOTVhMDBhYzlhODUwNGIzZDc3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAyMSAxNjo1NjowOCAyMDA4ICswMjAwCgogICAgRml4IHNvbWUgd2hpdGVzcGFjZSBpc3N1ZXMKCiAgICBpbnRyb2R1Y2VkIGJ5IDUzNjc3ZWYxOCAiQmlnIHdoaXRlLXNwYWNlIGNsZWFudXAuIgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDQxNjYwM2FlYjA2ODYxYjQ2OGIwNmE5ODFlNTJjM2ZmODA1ZGI3YgpBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXkgMTIgMTQ6MzY6MzkgMjAwOCAtMDUwMAoKICAgIE1ha2UgYWRzNTEyMSBvdXQtb2YtdHJlZSBjb21waWxpbmcgc2FmZQoKICAgIFJldXNlIHRoZSBleGlzdGluZyBESVUgZHJpdmVyIGluIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24uCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZTFiYWQ0N2NkMzQ1Yzc2YzkxYTY0Y2FmNDEwMTFlNDMxYjYyNTk5CkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSA1IDEwOjIwOjAxIDIwMDggLTA1MDAKCiAgICBBZGRpbmcgRElVIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSA1MTIxQURTCgogICAgQWRkIERJVSBhbmQgY2ZiIGNvbnNvbGUgc3VwcG9ydCB0byBGU0wgNTEyMUFEUyBib2FyZC4KCiAgICBVc2UgI2RlZmluZSBDT05GSUdfVklERU8gaW4gY29uZmlnIGZpbGUgdG8gZW5hYmxlIGZiIGNvbnNvbGUuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNDhmZjY4ZDIzNWU2NzExNzZmNmI0OTZjNDQyNDZkYmU1ZTBhOTNmCkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSA1IDEwOjIwOjAwIDIwMDggLTA1MDAKCiAgICBSZXBsYWNlIERQUklOVEYgd2l0aCBkZWJ1ZwoKICAgIFJlbW92ZSBEUFJJTlRGIG1hY3JvIGFuZCByZXBsYWNlIGl0IHdpdGggZ2VuZXJpYyBkZWJ1ZyBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiODBjNWY1NzRhZDdmNmUxYzU1YTY4ZjQyNzUyYjQyN2ZkZjc3OGQKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDUgMTA6MTk6NTkgMjAwOCAtMDUwMAoKICAgIE1vdmUgcGl4ZWwgY2xvY2sgc2V0dGluZyB0byBib2FyZCBmaWxlCgogICAgVGhlIGNsb2NrIGRpdmlkZXIgaGFzIGRpZmZlcmVudCBmb3JtYXQgaW4gNTEyMSBhbmQgODYxMC4gVGhpcyBwYXRjaCBtb3ZlcyBpdCB0bwogICAgYm9hcmQgc3BlY2lmaWMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUzNjc3ZWYxOGUyNWM5N2FjNjEzMzQ5MDg3YzVjYjMzYWU1YTI3NDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIwIDE2OjAwOjI5IDIwMDggKzAyMDAKCiAgICBCaWcgd2hpdGUtc3BhY2UgY2xlYW51cC4KCiAgICBUaGlzIGNvbW1pdCBnZXRzIHJpZCBvZiBhIGh1Z2UgYW1vdW50IG9mIHNpbGx5IHdoaXRlLXNwYWNlIGlzc3Vlcy4KICAgIEVzcGVjaWFsbHksIGFsbCBzZXF1ZW5jZXMgb2YgU1BBQ0VzIGZvbGxvd2VkIGJ5IFRBQiBjaGFyYWN0ZXJzIGdldAogICAgcmVtb3ZlZCAodW5sZXNzIHRoZXkgYXBwZWFyIGluIHByaW50IHN0YXRlbWVudHMpLgoKICAgIEFsc28gcmVtb3ZlIGFsbCBlbWJlZGRlZCAidmltOiIgYW5kICJ2aToiIHN0YXRlbWVudHMgd2hpY2ggaGlkZQogICAgaW5kZW50YXRpb24gcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyZjg0NWRjMmJkZjQ2MWJmZWU5ZmEyNTgyM2Y3NjlmNWRiOWViYTBiCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSA4IDE3OjQ2OjIzIDIwMDggKzAyMDAKCiAgICBzb2NyYXRlczogZml4IHNlY29uZCBUU0VDIGNvbmZpZ3VyYXRpb24gKGl0IGlzIGFjdHVhbGx5IFRTRUMzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgNzkzNjcwYzNjMGYwZjcyY2FlYWQ2MmYwYmU5ZmMzZDlmYmM2MDYwZgpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBNYXkgOCAxNDoxNzowOCAyMDA4ICswMjAwCgogICAgRml4ZWQgcmVzZXQgZm9yIHNvY3JhdGVzCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBlMTg1NzVkNWY1ODlhNjJlMTljNzBkNDcxZDRiNGUyN2NhZDNhZjU2CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIE1heSA3IDE1OjEwOjQ5IDIwMDggKzAyMDAKCiAgICBzb2NyYXRlczogY2hhbmdlcyB0byBzdXBwb3J0IEZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVkMTA4YWM4ZjQzNTkyNGM2MjRjZDZhYWFjZDQ0ZjM1ZjVjZjk0YzAKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgQXByIDMwIDExOjQyOjUwIDIwMDggKzAyMDAKCiAgICBJbml0aWFsIHN1cHBvcnQgZm9yICJTb2NyYXRlcyIgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDBlMTVkZGQxMWYxYTg0YzQ2NWU0MzRlYjA1MWQyZWYwOGVmMDJiOWIKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBNYXkgOCAxNTo0Njo0MiAyMDA4ICswMjAwCgogICAgUE9TVDogcmVwbGFjZSB0aGUgTE9HQlVGRl9JTklUSUFMSVpFRCBmbGFnIGluIGdkLT5wb3N0X2xvZ193b3JkICgxIDw8IDMxKSB3aXRoIHRoZSBHRF9GTEdfTE9HSU5JVCBmbGFnIGluIGdkLT5mbGFncy4KCiAgICBUaGlzIHdheSB3ZSBiZWNvbWUgYWJsZSB0byB1dGlsaXplIHRoZSBmdWxsIHBvc3RfbG9nX3dvcmQgZm9yIFBPU1QKICAgIGFjdGl2aXRpZXMgKG92ZXJ3aXNlLCBQT1NUIEVDQywgd2hpY2ggaGFzIDB4ODAwMCBJRCwgY291bGQgYmUKICAgIGVycm9uZW91c2x5IHRyZWF0ZWQgYXMgc3RhcnRlZCBpbiBwb3N0X291dHB1dF9iYWNrbG9nKCkgZXZlbiBpZiB0aGVyZQogICAgd2FzIGFjdHVhbGx5IG5vIFBPU1QgRUNDIHJ1biAoYmVjYXVzZSBvZiBPQ00gUE9TVCBmYWlsdXJlLCBmb3IKICAgIGV4YW1wbGUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3ODQ1ZDQ5MDk0YzgxMzIxMDIxYjUwYTRkYmI4ODY0ZDJmMzc3N2U0CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTU6NDY6MDIgMjAwOCArMDIwMAoKICAgIFBPU1Q6IG1hcmsgT0NNIHRlc3QgYXMgUE9TVF9TVE9QCgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgMjhhMzg1MDY1ODgyZDZjYjZhYzVmNDQzMzExZmY4Nzg4N2VkN2MxMwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSA4IDE1OjQ1OjI2IDIwMDggKzAyMDAKCiAgICBQT1NUOiBhZGQgUE9TVF9TVE9QIGZsYWcKCiAgICBEb24ndCBydW4gZnV0aGVyIHRlc3RzIGluIGNhc2Ugb2YgYSB0ZXN0IGZhaWxzIHRoYXQgaXMgbWFya2VkIGFzCiAgICBQT1NUX1NUT1AuCgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYTUyNTE0NWQ4MTEwZDE1YjQzODlkMjNjM2VhOGE3OGYyMjUwOWQzZgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSA4IDE1OjQ0OjE2IDIwMDggKzAyMDAKCiAgICBQT1NUOiBzd2l0Y2ggQ0ZHX1BPU1RfT0NNIHdpdGggQ0ZHX1BPU1RfQ09ERUMgKHdvcmthcm91bmQpCgogICAgU3dpdGNoIHRoZSBPQ00gdGVzdGlkIHdpdGggdGhlIGNvZGVjIG9uZS4gVGhlIHJlYXNvbiBpcyB0aGF0IGN1cnJlbnQKICAgIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoZSBQT1NUX1JPTSB0ZXN0aWQgdG8gZml0IGludG8gbG93ZXIgMTYKICAgIGJpdHMsIGFuZCB0aGUgY29kZWMgdGVzdCB3aWxsIG5ldmVyIHJ1biB3aXRoIFBPU1RfUk9NIGhvcGVmdWxseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA4Yjk2Yzc4OGQ1OGY3Y2I4NWE4OWVlM2YxOWM5YjMzNWQyMjQ0M2NkCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTU6NDM6MjggMjAwOCArMDIwMAoKICAgIGx3bW9uNTogZW5hYmxlIE9DTSBwb3N0IHRlc3Qgb24gbHdtb241IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgNmU4ZWM2ODIyNjg0OTNiOGQwOThmOTllMTdiMWNlNzFiNDQ0ODk3NwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSA4IDE1OjQyOjQ3IDIwMDggKzAyMDAKCiAgICBQT1NUOiBPQ00gdGVzdCBhZGRlZC4KCiAgICBBZGRlZCBPQ00gdGVzdCB0byBQT1NUIGxheWVyLiBUaGlzIHZlcnNpb24gcnVucyBiZWZvcmUgYWxsIG90aGVyIHRlc3RzCiAgICBidXQgZG9lc24ndCB5ZXQgaW50ZXJydXB0IHBvc3Qgc2VxdWVuY2Ugb24gZmFpbHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA2ODkxMjYwYmRkOTM1YTM4MmM5NWQ5ZmEzMzM5MjJiMGRmZGVkNjhhCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTU6NDA6MzkgMjAwOCArMDIwMAoKICAgIFBPU1Q6IHR5cG8gZml4CgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgNzI3ZjYzMzM0Njc2ZTc2MDg3N2Q0M2JmYjhmMGU5MzMxYWM4YjEwMQpBdXRob3I6IEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJVHVlIE1heSAyMCAwMjoxNjozNiAyMDA4IC0wNzAwCgogICAgY29tbW9uL3VzYi5jOiBmaXggaW5jb3JyZWN0IGVzY2FwZSBzZXF1ZW5jZQoKICAgIFNpZ25lZCBvZmYgYnk6IEd1cnVyYWphIEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCA0Y2UxZTIzYjVlMTIyODM1Nzk4MjhiM2QyM2U4ZmQ2ZTEzMjhhN2FhCkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAxNSAxNToyNjoyNyAyMDA4IC0wNTAwCgogICAgRml4IDgzMTNFUkRCIGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBDaGFuZ2UgTENSUiBjbG9jayByYXRpbyBmcm9tIDIgdG8gNCB0byBjb21tb2RhdGUgVlNDNzM4NS4KICAgIENvcnJlY3QgVFNFQzEgdnMgVFNFQzIgYXNzaWdubWVudC4KICAgIERlZmluZSBFVEhBRERSIGFuZCBFVEgxQUREUiBhbHdheXMuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmMyODllMzIwZGNmYjM3NjBlOTljZjFkNzY1Y2IwNjcxOTRhMTIwMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXkgMTkgMDk6NDc6MjUgMjAwOCAtMDUwMAoKICAgIG1wYzg2eHg6IFJlbW92ZWQgdW51c2VkIGFuZCB1bmNvbmZpZ3VyZWQgbWVtb3J5IHRlc3QgY29kZS4KCiAgICBCZXNpZGVzLCBvdGhlciBjb21tb24gY29kZSBleGlzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODBhOTBhYmRhZTcyNTg3YzBmNjc5ZWRmODk5MTQ1NWU1NTk0NDBkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAxOSAxMjo0NzoxMSAyMDA4ICswMjAwCgogICAgUmVsZWFzZSB2MS4zLjMKCiAgICBVcGRhdGUgQ0hBTkdFTE9HIGZvciByZWxlYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTZiZWRjNjYxZGUwZGFlNzY3YjEzNzdkODQxMzM3M2EzZmJjZmE3OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAxOSAwNzoxNDozOCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDYW55b25sYW5kczogRGlzYWJsZSBQQ0llMC9TQVRBIGluIGRldi10cmVlIGRlcGVuZGluZyBvbiBzZWxlY3Rpb24KCiAgICBXaGVuIFNBVEEgaXMgc2VsZWN0ZWQgKHZpYSBqdW1wZXIgSjYpIHdlIG5lZWQgdG8gZGlzYWJsZSB0aGUgZmlyc3QgUENJZQogICAgbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUsIHNvIHRoYXQgTGludXggZG9lc24ndCBpbml0aWFsaXplIGl0LiBPdGhlcndpc2UKICAgIHRoZSBMaW51eCBTQVRBIGRyaXZlciB3aWxsIGZhaWwgdG8gZGV0ZWN0IHRoZSBkZXZpY2VzLgoKICAgIFRoZSBzYW1lIGdvZXMgdGhlIG90aGVyIHdheSBhcm91bmQgdG9vLiBTbyBpZiBQQ0llIGlzIHNlbGVjdGVkIHdlIG5lZWQKICAgIHRvIGRpc2FibGUgdGhlIFNBVEEgbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUuCgogICAgVGhpcyBpcyBiZWNhdXNlIFBDSWUgcG9ydCAwIGFuZCBTQVRBIG9uIDQ2MEVYIHNoYXJlIHRoZSBzYW1lIHBpbnMKICAgIChtdWx0aXBsZXhlZCkgYW5kIHdlIGhhdmUgdG8gY29uZmlndXJlIGluIFUtQm9vdCB3aGljaCBwZXJpcGhlcmFsIGlzCiAgICBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzY2MyN2I0MjZhZWVmZTI5MzBmOTExNjkyZTlkZjMxNDNmYjI1NjVmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo1OCAyMDA4ICswMjAwCgogICAgaTM4NjogRml4IG11bHRpcGxlIGRlZmluaXRpb25zIG9mIF9fc2hvd19ib290X3Byb2dyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzMTFmMzQ0NjkzMGMxZTY0YzEyMDI2YzFjZmQwMDUwMGIwNWJlNTJkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo1NyAyMDA4ICswMjAwCgogICAgc2M1MzBfc3B1bms6IGFkZCBtaXNzaW5nIFNPQkpTIGVudHJ5CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhNTU5MzE3MTQzYjRmOTU5MjdiMDhjZDM4ODcwN2U2ZjA3N2U5NWZhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo1NiAyMDA4ICswMjAwCgogICAgc2M1MjBfc3B1bms6IEZpeCBmbGFzaAoKICAgIGZsYXNoLmM6NTkzOiB3YXJuaW5nOiBkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QtYWxpYXNpbmcgcnVsZXMKICAgIGZsYXNoLmM6Mzk4OiBlcnJvcjogbGFiZWwgYXQgZW5kIG9mIGNvbXBvdW5kIHN0YXRlbWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTFmMjIxMzE3YWY2NDE5MWVlOGNhZjMwM2VhOTMwNTk0MzE1ODY5MQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NDkgMjAwOCArMDIwMAoKICAgIGRyaXZlcnMvcGNtY2lhOiBhZGQgbWlzc2luZyBpODIzNjUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGRkMjIzOTQ0MTMyZjk3ZmZhNTI5NzdlYTk1ZTVhNTI0MjhmNWNjMmYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjQ3IDIwMDggKzAyMDAKCiAgICBpMzg2L2Jvb3RtOiByZW1vdmUgdW51c2VkIHZhcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTlkYTM0MWRmMTliMzJhZDJlY2I1OGNlNTI5ZjdlNGZhZGE3ODE0ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NDUgMjAwOCArMDIwMAoKICAgIGV4YW1wbGUvZ2l0aWdub3JlOiB1cGRhdGUgd2l0aCBhbGwgZ2VuZXJhdGVkIGV4YW1wbGVzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMzhkYzNlYTg2MTRmOGIwYzQxZTQzMmI0NDVhOTk1OWI5NzExMjk1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAxNSAwMDo0Mjo0NSAyMDA4ICswMjAwCgogICAgVFFNODI3MjogZml4IG91dC1vZi10cmVlIGJ1aWxkaW5nCgogICAgLi4uYW5kIGFkZCB0byBNQUtFQUxMIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNGY4MDVjMWUzYTYwYjkyNjNkYThlYzNiY2QxZjQ1ZWRjZWZhN2RjZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMjM6MzQ6NTMgMjAwOCArMDIwMAoKICAgIGVudmlyb25tZW50OiBmaXggYnVnIGludHJvZHVjZWQgYnkgY29tbWl0IGE4NDA5ZjRmMWFjOAoKICAgIGVudl9nZXRfY2hhciBpcyBub3QgYSBmdW5jdGlvbiwgYnV0IGEgcG9pbnRlciB0byBvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwYzExOTM1Y2Q2MmNhMWY2NWVlYjIyOGZmNGM4NDg0NDBkNDU1M2JmCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTM6Mzk6MjIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUVVBRDEwMEhEOiBBbGxvdyB0aGUgZW52aXJvbm1lbnQgdG8gYmUgcHV0IGludG8gZmxhc2guCgogICAgQWZ0ZXIgbW92aW5nIFRFWFRfQkFTRSB0aGUgdmFsdWUgZm9yIENGR19FTlZfQUREUiB3YXMgaW5jb3JyZWN0LiAgQWxzbwogICAgdXNlIGEgcmVkdW5kYW50IGVudmlyb25tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgoKY29tbWl0IGNkYTJhNGE5OTYxZmQ0MzQxYjdkYjMwNWNiMjJmYzA1OTU3ZThiNzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDEzOjU1OjMwIDIwMDggKzAyMDAKCiAgICBGaXggY29uZmlnIGZpbGVzIGZvciBvdXQtb2YtdHJlZSBidWlsZGluZwoKICAgIFNldmVyYWwgYm9hcmQvPC4uLj4vY29uZmlnLm1rIGZpbGVzIGluY2x1ZGUgZHluYW1pY2FsbHkgYnVpbHQgKGJ5CiAgICB0aGUgTWFrZWZpbGUpIGNvbmZpZyBmaWxlcyBidXQgdXNlZCB0aGUgd3JvbmcgZmlsZSBuYW1lIG9mCgkkKFRPUERJUikvYm9hcmQvJChCT0FSRERJUikvY29uZmlnLnRtcAogICAgaW5zdGVhZCBpZiB0aGUgY29ycmVjdAoJJChPQkpUUkVFKS9ib2FyZC8kKEJPQVJERElSKS9jb25maWcudG1wCgogICAgVGhlIGJ1ZyBpcyBuYXN0eSBiZWNhdXNlIHRoZSBidWlsZCByZXN1bHQgaXMgY29ycmVjdCBmb3IgdGhlIChub3JtYWwpCiAgICBpbi10cmVlIGJ1aWxkcywgYW5kIGJlY2F1c2UgJ3NpbmNsdWRlJyBpcyB1c2VkIG5vIGVycm9ycyBnZXQgcmFpc2VkCiAgICBldmVuIGZvciBvdXQtb2YtdHJlZSBidWlsZCB0ZXN0cy4gQnV0IG91dC1vZi10cmVlIGJ1aWxkcyB1c2UgYW4KICAgIGluY29tcGxldGUgYW5kIHRodXMgdXN1YWxseSBpbmNvcnJlY3QgY29uZmlndXJhdGlvbi4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmRkNzA4MmUwNmQ1ODA0MDQwMTBiMDZmZTRlMGU4YjcwMzhhMDBjOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMzo0MDowMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggYm9ndXMgQ2FueW9ubGFuZHMgY29uZmlnLm1rCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgY2FueW9ubGFuZHMgY29uZmlnLm1rIGZpbGUgdG8gZW5hYmxlIGNvcnJlY3QKICAgIG91dC1vZi10cmVlIGJ1aWxkcy4gVGhhbmtzIHRvIFdvbGZnYW5nIERlbmsgZm9yIHNwb3R0aW5nIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZkZDEyNDdhNjZkNzg4YTM0NDYyNDRmNmZkZTk5NTVhOTNjMjYzMjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTA6MzI6MzIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogSW5kaXZpZHVhbCBoYW5kbGluZyBvZiBkZHIyX2ZpeGVkLmMgZm9yIGNhbnlvbmxhbmRzX25hbmQgYnVpbGQKCiAgICBDYW55b25sYW5kcyBoYXMgYSBmaWxlIGRkcjJfZml4ZWQuYyB3aGljaCBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudCB3aGVuCiAgICBidWlsZGluZyBpbiBzZXBhcmF0ZSBkaXJlY3RvcnkuIEl0IGhhcyB0byBiZSBsaW5rZWQgdG8gYnVpbGQgZGlyZWN0b3J5CiAgICBvdGhlcndpc2UgaXQgaXMgbm90IHNlZW4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE4NDA5ZjRmMWFjODRjMzYyNzNjMWExZTM0MTE4OTY2MjUyMWJjZmIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDEyOjIyOjQ5IDIwMDggKzAyMDAKCiAgICBlbnZpcm9ubWVudDogY2xlYW51cCBwcm90b3R5cGUgZGVjbGFyYXRpb25zIG9mIGVudiBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZjM5YjA3OTQ4MDE1YzQ4MGI3MmE2ZTczMmNmN2Q4MzlhYTkzYTllCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMjoyMTo0OCAyMDA4ICswMjAwCgogICAgbGlua3N0YXRpb25fSEdMQU46IEZpeCBvdXQgb2YgdHJlZSBidWlsZGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4NTU1MWMwNWNhMDllNmM0OTFlYTExYTFjNjcyN2EzNjc3NmE1NDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTA6MzI6MzIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogSW5kaXZpZHVhbCBoYW5kbGluZyBvZiBkZHIyX2ZpeGVkLmMgZm9yIGNhbnlvbmxhbmRzX25hbmQgYnVpbGQKCiAgICBDYW55b25sYW5kcyBoYXMgYSBmaWxlIGRkcjJfZml4ZWQuYyB3aGljaCBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudCB3aGVuCiAgICBidWlsZGluZyBpbiBzZXBhcmF0ZSBkaXJlY3RvcnkuIEl0IGhhcyB0byBiZSBsaW5rZWQgdG8gYnVpbGQgZGlyZWN0b3J5CiAgICBvdGhlcndpc2UgaXQgaXMgbm90IHNlZW4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE1MTBiODJkNTA2MTVmMzQ0ZTg5ZDQyNTMzZTgyMjRjY2UwNjdkYzAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDEzIDIzOjE1OjUyIDIwMDggKzAyMDAKCiAgICBNYWtlZmlsZTogZml4ICJlcnJvcjogdmVyc2lvbl9hdXRvZ2VuZXJhdGVkLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NDY5NGE5MTQyOGY2YzMyODBmZTFlZTA5MjM0ODhhMWU3ZThkYmM0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVHVlIE1heSAxMyAxNzozMToyNCAyMDA4ICswMjAwCgogICAgQ2xlYW51cCBuYW5kX2luZm9bXSBkZWNsYXJhdGlvbi4KCiAgICBUaGUgbmFuZF9pbmZvIGFycmF5IGlzIGRlY2xhcmVkIGFzIGV4dGVybiBpbiBzZXZlcmFsIC5jIGZpbGVzLgogICAgVGhvc2UgZGF5cywgbmFuZC5oIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBhcnJheSwgc28gdGhlcmUgaXMKICAgIG5vIG5lZWQgdG8gZGVjbGFyZSBpdCBlbHNld2hlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzBmYWIxOTA4ZmMxNzM0YTQwMzcxMWVhYWJiZWY1NDZiYzRiNzdkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAxMyAyMDoyMjowMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNDA1RVgocikgcmV2aXNpb24gQyBQVlIgZGVmaW5pdGlvbnMgYW5kIGRldGVjdGlvbiBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY1ZGNmYTc5MjA0ZjQ3NTBiOTA1YTE3M2E1MzY1ZTBiMmViNmMyZjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDEyIDAxOjExOjIxIDIwMDggKzAyMDAKCiAgICBSZXZlcnQgInBjaTogQWRkIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBjb25maWcgb3B0aW9uIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTU3NzRiNTEyZmRmNjNjMDUxNmQ0NDFjYzVkYTdjNTRiYmZmYjdmMgogICAgd2hpY2ggYnJva2UgbWFueSBQb3dlclBDIGJvYXJkcy4KCmNvbW1pdCBlZTBjZmE3MDgwM2EzZTYyOWVhNTgxYTliMjE2ZjhlY2VmNDAyYmZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAxMiAwMDo1NjoyOCAyMDA4ICswMjAwCgogICAgUmV2ZXJ0ICJBdm9pZCBpbml0cmQgYW5kIGxvZ2J1ZmZlciBhcmVhIG92ZXJsYXBzIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWI1NjA1Y2E1N2ZiYjM2NGY0ZDc4ZWVlZTI4Yjk3NGVkODc1ZTg4OAogICAgd2hpY2ggYnJlYWtzIGJ1aWxkaW5nIG9uIGFsbCBQUEMgYm9hcmRzIHRoYXQgZG9uJ3QgdXNlIGEgbG9nIGJ1ZmZlci4KCmNvbW1pdCAwMmI5YjIyNDQ2ZTNkN2FkNmE2MzgyYmUxN2ExY2U3OWE3ZGU1ODliCkF1dGhvcjogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBNYXkgMTAgMTQ6MDI6MDQgMjAwOCAtMDcwMAoKICAgIEZpeCBvZmZzZXQgY2FsY3VsYXRpb24gZm9yIG11bHRpLXR5cGUgbGVnYWN5IGltYWdlcy4KCiAgICBDYWxjdWxhdGlvbiBvZiB0YWlsIHdhcyBpbmNvcnJlY3Qgd2hlbiBzaXplICUgNCA9PSAwLgoKICAgIE5ldyBjb2RlIHJlbW92ZXMgdGhlIGNvbmRpdGlvbmFsIGFuZCBkb2VzIHRoZSBzYW1lIHRoaW5nIGJ1dCB3aXRoIGFyaXRobWV0aWMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOWRjYTNjM2YzN2QyNjQ3YWVjNDUwOWIyNGIxNmQxNTg4MmFlM2U0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAxMiAwMDo0MDo1OCAyMDA4ICswMjAwCgogICAgUmV2ZXJ0ICJDaGFuZ2UgZW52X2dldF9jaGFyIGZyb20gYSBnbG9iYWwgZnVuY3Rpb24gcHRyIHRvIGEgZnVuY3Rpb24uIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzA1NTliZTM3MWIyYTY0YjFhODE3MDg4YzMzMDg2ODhlMjE4MmY5MwogICAgd2hpY2ggaXMga25vd24gdG8gYnJlYWsgYm9vdGluZyBmcm9tIGRhdGFmbGFzaCBhbmQgTkFORC4KCmNvbW1pdCAyMGU1ZWQxMzc0ODM4MjNhYWVhNTE3ODE2OWYzYjE0NGM3YTRkOWUwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxMSAyMzoxMzo1NyAyMDA4ICswMjAwCgogICAgQVBJOiByZW1vdmUgZHVwbGljYXRlIHN5c2NhbGwgY2hlY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY3ZTNiZWI1MmMzMjBiMGEzMWNmMDMwNzE2Yzk5MzkyY2RlMmQ1MzIKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglGcmkgTWF5IDkgMjE6NDY6NTEgMjAwOCArMDIwMAoKICAgIEFUOTE6IENsZWFudXAgdW51c2VkIGNvbmZpZyBoZWFkZXIgZmlsZSBkZWZpbml0aW9ucy4KCiAgICBDT05GSUdfRU5WX09WRVJXUklURSBpcyBjb21tZW50ZWQgb3V0IGluIHRoZSBjb25maWcgaGVhZGVyIGZpbGVzLAogICAgc28gbGV0J3MgY2xlYW51cCB0aGUgZmlsZXMgYnkgcmVtb3ZpbmcgdGhlIHdob2xlIGRlZmluaXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTk4ODNhZWRlMmFjMGE1MjI0OTNiZmIyYjM1YTdkYmIyMDAwNzFiMQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxNDo1MjozNCAyMDA4ICswMjAwCgogICAgU3VwcG9ydCBBVDkxQ0FQOSByZXZDIENQVXMKCiAgICBUaGUgQVQ5MUNBUDkgcmV2QyBDUFUgaGFzIGEgZmV3IGRpZmZlcmVuY2VzIG92ZXIgdGhlIHByZXZpb3VzLAogICAgcmV2QiBDUFUgd2hpY2ggd2FzIGRpc3RyaWJ1dGVkIGluIHNtYWxsIHF1YW50aXRpZXMgb25seSAocmV2QSB3YXMKICAgIGFuIGludGVybmFsIEF0bWVsIHByb2R1Y3Qgb25seSkuCgogICAgVGhlIHJldkMgc2lsaWNvbiBuZWVkcyBhIHNwZWNpYWwgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UgdG8KICAgIHN3aXRjaCBmcm9tIHRoZSBpbnRlcm5hbCAoaW1wcmVjaXNlKSBSQyBvc2NpbGxhdG9yIHRvIHRoZQogICAgZXh0ZXJuYWwgMzJrIGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA5OGI3YjRiNDQxYjEyYzJhNjRkZDUxNzkzMGY0M2M3OTM1NDI3NTkKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMTQ6NTI6MzMgMjAwOCArMDIwMAoKICAgIFVzZSBjdXN0b20gbG9nbyBmb3IgQXRtZWwgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgY3VzdG9tIHZlbmRvciBsb2dvIGZvciB0aGUgQXRtZWwgQVQ5MSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzYxYzcwYjgwY2RkM2JlYWQ0MDE0NmI5NmE4ZTcxM2Q2YWUwMTYzMgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxNDo1MjozMiAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTlSTEVLOiBob29rIHVwIHRoZSBBVE1FTCBMQ0QgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgbmVjZXNzYXJ5IGFkYXB0YXRpb25zIChQSU8gY29uZmlndXJhdGlvbnMgYW5kCiAgICBkZWZpbmVzIGluIGNvbmZpZyBoZWFkZXIgZmlsZSkgdG8gaG9vayB1cCB0aGUgQXRtZWwgTENEIGRyaXZlciB0byB0aGUKICAgIEFUOTFTQU05UkxFSyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NmEyNDc5Y2Q3ZmVjYWJkZDkxMzQ4YTc3NWIyODAxZGQyZTY1YzdmCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDE0OjUyOjMxIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2M0VLOiBob29rIHVwIHRoZSBBVE1FTCBMQ0QgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgbmVjZXNzYXJ5IGFkYXB0YXRpb25zIChQSU8gY29uZmlndXJhdGlvbnMgYW5kCiAgICBkZWZpbmVzIGluIGNvbmZpZyBoZWFkZXIgZmlsZSkgdG8gaG9vayB1cCB0aGUgQXRtZWwgTENEIGRyaXZlciB0byB0aGUKICAgIEFUOTFTQU05MjYzRUsgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODIwZjJhOTU4MzI1MDYxYTQ0NjExNWYzMDM1ZTQ4ZTQ3MjZiMzM5MApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxNDo1MjozMCAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjFFSzogaG9vayB1cCB0aGUgQVRNRUwgTENEIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIG5lY2Vzc2FyeSBhZGFwdGF0aW9ucyAoUElPIGNvbmZpZ3VyYXRpb25zIGFuZAogICAgZGVmaW5lcyBpbiBjb25maWcgaGVhZGVyIGZpbGUpIHRvIGhvb2sgdXAgdGhlIEF0bWVsIExDRCBkcml2ZXIgdG8gdGhlCiAgICBBVDkxU0FNOTI2MUVLIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMxMzliMTdkMjBjODM3MWMxZTBhOGQ3ZmIyN2MxMTA1MGNmODYzMDQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMTQ6NTI6MjkgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBob29rIHVwIHRoZSBBVE1FTCBMQ0QgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgbmVjZXNzYXJ5IGFkYXB0YXRpb25zIChQSU8gY29uZmlndXJhdGlvbnMgYW5kCiAgICBkZWZpbmVzIGluIGNvbmZpZyBoZWFkZXIgZmlsZSkgdG8gaG9vayB1cCB0aGUgQXRtZWwgTENEIGRyaXZlciB0byB0aGUKICAgIEFUOTFDQVA5QURLIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM5Y2Y0ODA0ODRmY2NlNWMwNGE1OTBlZTFjMzBiZTBjMTdiMDJjMzQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglGcmkgTWF5IDkgMjE6NTc6MTggMjAwOCArMDIwMAoKICAgIEFkZCBBVE1FTCBMQ0QgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVE1FTCBMQ0RDIGRyaXZlciB3aGljaCBpcyB1c2VkIG9uIHNvbWUKICAgIEFUOTEgYW5kIEFWUiBwbGF0Zm9ybXMuCgogICAgSXMgaGFzIGJlZW4gdGVzdGVkIHdpdGggdGhlIEFUOTFDQVA5QURLLCBBVDkxU0FNOTI2MUVLLCBBVDkxU0FNOTI2M0VLIGFuZAogICAgQVQ5MVNBTTlSTEVLIGJvYXJkcy4gQWRhcHRhdGlvbiBmb3IgQVZSMzIgc2hvdWxkIHByb2JhYmx5IGJlIGVhc3kuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjExOGViYjQ0ZGM0MGY4MTE3Yzk0OTUwZmQ5NTc5OWE5ZWY4MjFiMgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxODo1MjoyNSAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTlSTEVLIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUOTFTQU05UkwgY2hpcCBhbmQgdGhlIEFUOTFTQU05UkxFSwogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGU0MjliM2VlZTIzOTI3YzEyMjI2NzlmNmI2ZjUzNjY3YjIxNTk1YwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxODo1MjoyMyAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjNFSyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVDkxU0FNOTI2MyBjaGlwIGFuZCB0aGUgQVQ5MVNBTTkyNjNFSwogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDk5YThmZjY2ZDhhZTg3ZTVjODc1OTBlZDJlNGVhZDYyOTU0MDYwNwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoyMiAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjFFSyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVDkxU0FNOTI2MSBjaGlwIGFuZCB0aGUgQVQ5MVNBTTkyNjFFSwogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODZjOGM4YTQxNDk4OGM1MDEwNGEzYjAyYzI5ZjUwYWYyYmU3MzhjMApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoyMSAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjBFSzogRml4IGRhdGFmbGFzaCBvZmZzZXRzIGluIENPTkZJR19CT09UQ09NTUFORAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGRhdGFmbGFzaCBvZmZzZXRzIHVzZWQgaW4gQ09ORklHX0JPT1RDT01NQU5ECiAgICBpbiBvcmRlciB0byBjb3BlIHdpdGggdGhlIGNoYW5nZXMgaW4gRGF0YUZsYXNoIHBhcnRpdGlvbm5pbmcgc2NoZW1lCiAgICAoY3NldCBjM2E2MGNiMykuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTY5OTZhYzI1ZDUyMjI2MTFhODg4ODk2OGRiNmU1M2E2ZDM3MjZkYQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoyMCAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjBFSzogTm9ybWFsaXplIEJPT1RBUkdTCgogICAgVGhpcyBwYXRjaCBhZGFwdHMgQ09ORklHX0JPT1RBUkdTIHRvIHRoZSBjaG9zZW4gYm9vdCBtZXRob2QgKGJvb3QgZnJvbQogICAgRGF0YUZsYXNoIG9yIGZyb20gTkFORCksIGFuZCBnaXZlcyB0byBMaW51eCBhIGZ1bGx5IHNwZWNpZmllZCBtdGRwYXJ0cwogICAgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzlmMGNiNmU5YzU0ZDMxYTFkOWUzZjVlMjI2YTliZWJjM2MzYTQ3YQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoxOSAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjBFSzogTm9ybWFsaXplIFNQSSB0aW1pbmdzCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBTUEkgdGltaW5ncyB0byBjbG9zZWx5IG1hdGNoIHRoZSBvbmVzCiAgICB1c2VkIGJ5IHRoZSBMaW51eCBrZXJuZWwgYW5kIHRoZSBBdG1lbCdzIG93biBib290c3RyYXAgcHJvamVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjMTIxMmIyZjVjNWVkNDQwYmY4ZTllYmM4ZTRmZDc0ODg4NThiOTM1CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjE4IDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2MEVLOiBIYW5kbGUgOCBvciAxNiBiaXQgTkFORAoKICAgIFRoZSBBdG1lbCBib2FyZHMgY2FuIGhhbmRsZSA4IG9yIDE2IGJpdCBOQU5EIG1lbW9yaWVzLiBUaGlzIHBhdGNoCiAgICBtYWtlcyB0aGUgc3VwcG9ydCBjb25maWd1cmFibGUgaW4gdGhlIGJvYXJkIGNvbmZpZyBoZWFkZXIgZmlsZQogICAgKENGR19OQU5EX0RCV184IG9yIENGR19OQU5EX0RCV18xNikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYWI1MjY0MGZjMDE2MjRlMjA4NDI0ZTUyN2FmMGI3YjNhNWE2NWExMgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoxNyAyMDA4ICswMjAwCgogICAgQVQ5MUNBUDlBREs6IEZpeCBkYXRhZmxhc2ggb2Zmc2V0cyBpbiBDT05GSUdfQk9PVENPTU1BTkQKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBkYXRhZmxhc2ggb2Zmc2V0cyB1c2VkIGluIENPTkZJR19CT09UQ09NTUFORAogICAgaW4gb3JkZXIgdG8gY29wZSB3aXRoIHRoZSBjaGFuZ2VzIGluIERhdGFGbGFzaCBwYXJ0aXRpb25uaW5nIHNjaGVtZQogICAgKGNzZXQgYzNhNjBjYjMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDMyNjc1MDhlYzRjOWU3NGMzOWVlNDFjOWFlNjk1MWFkMTg1ZmUyNzAKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTYgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBOb3JtYWxpemUgQk9PVEFSR1MKCiAgICBUaGlzIHBhdGNoIGFkYXB0cyBDT05GSUdfQk9PVEFSR1MgdG8gdGhlIGNob3NlbiBib290IG1ldGhvZCAoYm9vdCBmcm9tCiAgICBEYXRhRmxhc2ggb3IgZnJvbSBOQU5EKSwgYW5kIGdpdmVzIHRvIExpbnV4IGEgZnVsbHkgc3BlY2lmaWVkIG10ZHBhcnRzCiAgICB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5M2RhNDhiOTEwNTExOTExY2UxMTA2NTZlMTdlZDczM2M4YWM0YzQ1CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjE1IDIwMDggKzAyMDAKCiAgICBBVDkxQ0FQOUFESzogTm9ybWFsaXplIFNQSSB0aW1pbmdzCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBTUEkgdGltaW5ncyB0byBjbG9zZWx5IG1hdGNoIHRoZSBvbmVzCiAgICB1c2VkIGJ5IHRoZSBMaW51eCBrZXJuZWwgYW5kIHRoZSBBdG1lbCdzIG93biBib290c3RyYXAgcHJvamVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxYzkwZGYzZTE0OGNlMGEzZTJjODZjNjNiMzhiMTlkNDc3NzJmMmEwCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjE0IDIwMDggKzAyMDAKCiAgICBBVDkxQ0FQOUFESzogSGFuZGxlIDggb3IgMTYgYml0IE5BTkQKCiAgICBUaGUgQXRtZWwgYm9hcmRzIGNhbiBoYW5kbGUgOCBvciAxNiBiaXQgTkFORCBtZW1vcmllcy4gVGhpcyBwYXRjaAogICAgbWFrZXMgdGhlIHN1cHBvcnQgY29uZmlndXJhYmxlIGluIHRoZSBib2FyZCBjb25maWcgaGVhZGVyIGZpbGUKICAgIChDRkdfTkFORF9EQldfOCBvciBDRkdfTkFORF9EQldfMTYpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDExYjE2MmJhZTA1OGU5NmM3OTI5ZTM1OGQ0YWRmZjJiZWU2YzJjYzQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTMgMjAwOCArMDIwMAoKICAgIFVzZSBhIGNvbW1vbiB1LWJvb3QubGRzIGZpbGUgYWNyb3NzIGFsbCBBVDkxQ0FQOS9BVDkxU0FNOSBwbGF0Zm9ybXMKCiAgICBBbGwgdGhlIEFUOTFDQVA5L0FUOTFTQU05IGJvYXJkcyBoYXZlIHRoZSBzYW1lIGxpbmtlciBzY3JpcHQuIFRoZSBwYXRjaAogICAgYmVsb3cgYXZvaWRzIHRoZSBkdXBsaWNhdGlvbiBvZiB1LWJvb3QubGRzIGJ5IHB1dHRpbmcgdGhlIGZpbGUgaW4gdGhlCiAgICBjcHUgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIGJvYXJkIG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkNDhhYmVhNGI4OWFkYWY1ZTQ1ZWE3NWI1ZTM4YzBkOGRlMTc5ZWNlCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjEyIDIwMDggKzAyMDAKCiAgICBBZGQgcHJvcGVyIGNvcHlyaWdodCBub3RpY2VzIGluIEF0bWVsIGJvYXJkcyBNYWtlZmlsZXMKCiAgICBUaGUgTWFrZWZpbGVzIGZvciB0aGUgQVQ5MUNBUDkvQVQ5MVNBTTkgYm9hcmRzIGhhdmUgYW4gaW5jb21wbGV0ZQogICAgY29weXJpZ2h0IG5vdGljZS4gVGhpcyBwYXRjaCBhZGRzIHRoZSBtaXNzaW5nIHBpZWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlODE3YTA0MmNlZjYxNjRiZjI2ZmVlODZmOTAzMjZmMmVjOWU2NzQ1CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjExIDIwMDggKzAyMDAKCiAgICBBZGQgY29weXJpZ2h0IGluZm9ybWF0aW9uIGluIEF0bWVsIGJvYXJkcyBwYXJ0aXRpb24uYwoKICAgIFdoZW4gVWxmIGRpZCB0aGUgZGF0YWZsYXNoLmMgY2xlYW51cCwgaGUgZGlkbid0IGFkZCBoaXMgY29weXJpZ2h0IG9uCiAgICB0aGUgbmV3IGNyZWF0ZWQgZmlsZXMuIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGY2YzgxMDEwNmY0Zjc2ZDgzY2ZjNTdkOThmNDU0MGNkNDVmOWExOQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoxMCAyMDA4ICswMjAwCgogICAgVXBkYXRlIG9yaWdpbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uIGluIGFyY2gtYXQ5MXNhbTkgaGVhZGVyIGZpbGVzCgogICAgV2hlbiBkb2luZyB0aGUgQVQ5MUNBUDkvQVQ5MVNBTTkgcG9ydCwgYSBudW1iZXIgb2YgaGVhZGVyIGZpbGVzIHdlcmUKICAgIGNvcGllZCBmcm9tIHRoZSBMaW51eCBrZXJuZWwgc291cmNlcy4gVGhpcyBwYXRjaCBleHBsaWNpdGx5IHNwZWNpZmllcwogICAgdGhpcyBvcmlnaW4gZm9yIGFsbCB0aGUgY29waWVkIGhlYWRlcnMsIGFuZCBmb3IgdGhvc2UgbWlzc2luZyBjb3B5cmlnaHQKICAgIGluZm9ybWF0aW9uLCBhZGRzIGl0LgoKICAgIEFkZGl0aW9uYWx5LCB0aGUgaGVhZGVyIGZpbGUgJ2F0OTFzYW05MjZ4X21jLmgnIGhhcyBiZWVuIHN1cGVyY2VlZGVkCiAgICBpbiB0aGUgbGF0ZXN0IGtlcm5lbCBzb3VyY2VzIGJ5ICdhdDkxc2FtOV9zbWMuaCcuCgogICAgVGhlIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBoYXMgYmVlbiBjb25maXJtZWQgYnkgdGhlIEFUOTEgTGludXgga2VybmVsCiAgICBtYWludGFpbmVyLCBBbmRyZXcgVmljdG9yIDxhdmljdG9yLnphQGdtYWlsLmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzlkZDE3MTI2ODlkNmE1MDMxZDdjYmZmNTQ5NTcwNDk2ODA3NTFjNwpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxNjowMDo1NSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBLaWxhdWVhOiBBZGQgQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgdG8gS2lsYXVlYSBib2FyZCBjb25maWcKCiAgICBXaGVuIHVzaW5nIGRoY3AvYm9vdHAgdGhlICJuZXRtYXNrIiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0CiAgICBiZWNhdXNlIENPTkZJR19CT09UUF9TVUJORVRNQVNLIGlzIG5vdCBkZWZpbmVkLiBCdXQgdXN1YWxseSB0aGlzIGlzCiAgICBkZXNpcmVhYmxlLCBzbyB0aGUgZm9sbG93aW5nIHBhdGNoIGFkZHMgdGhpcyB0aGlzIG9wdGlvbiB0byB0aGUgYm9hcmQKICAgIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg2OWQxNGI0Y2MyZTQ3ZGUyZGRjYjExN2JhZDA0MDdhNDQ0MzY2ODQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgMTAgMTA6MzA6MzYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIE1ha2FsdSBkZWZjb25maWcgdG8gdXNlIGRldmljZS10cmVlIGJvb3RpbmcgYXMgZGVmYXVsdAoKICAgIFRoaXMgcGF0Y2ggcmV3b3JrcyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCBvbiBNYWthbHUuIE5vdyAibmV0X25mcyIgZm9yCiAgICBleGFtcGxlIHVzZXMgdGhlIGRldmljZS10cmVlIHN0eWxlIGJvb3RpbmcgZm9ybWVybHkga25vdyBhcyAibmV0X25mc19mZHQiLgogICAgQWxzbyB0aGUgYWRkcmVzc2VzIGluIFJBTSB3ZXJlIGNoYW5nZWQgYmVjYXVzZSBvZiB0aGUgbmV3IGltYWdlIGJvb3RpbmcKICAgIHN1cHBvcnQsIHdoaWNoIGNoZWNrIGZvciBpbWFnZSBvdmVyd3JpdGluZy4gU28gdGhlIGFkZHJlc3NlcyBuZWVkZWQgdG8KICAgIGdldCBhZGp1c3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjM2MTJhN2IxOTljYWIzOTQyZjYwZDljMTM5MmViMzlkNThjYzY5OQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZ2lsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDcgMTM6Mjg6MTYgMjAwOCAtMDUwMAoKICAgIFBQQzogZml4IG1hcF9waHlzbWVtIGJ1aWxkIHdhcm5pbmcKCiAgICBtYXBfcGh5c21lbSBjdXJyZW50bHkgZ2VuZXJhdGVzIGEgd2FybmluZyB3aGVuIENPTkZJR19QSFlTXzY0QklUIGlzCiAgICBlbmFibGVkLiAgVGhpcyBxdWlldHMgdGhlIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPEJlY2t5LkJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzZmMzI2NzVmNDAyOTIwMDJlZTFmZWQyNTJjMTgwYTQzMDIyZDJkNApBdXRob3I6IEJlY2t5IEJydWNlIDxiZ2lsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDcgMTM6MjQ6NTcgMjAwOCAtMDUwMAoKICAgIFVwZGF0ZSBwY2kgY29kZSB0byB1c2UgcGh5c19hZGRyX3QKCiAgICBQaHlzaWNhbCBhZGRycyBuZWVkIHRvIGJlIHJlcHJlc2VudGVkIGJ5IHBoeXNfYWRkcl90LCBub3QKICAgIHVuc2lnbmVkIGxvbmcuICBPdGhlcndpc2UsIHN5c3RlbXMgdGhhdCB1c2UgQ09ORklHX1BIWVNfNjRCSVQKICAgIGFyZSBnb2luZyB0byBmYWlsIG1pZ2h0aWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxYTYxNjc0MWZjMTI4Y2RiODhmMzliZGRjZDRkNzJmZTE3NDY2ZDAKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSA4IDIyOjMyOjIyIDIwMDggLTA3MDAKCiAgICBTdXBwb3J0IGxlZ2FjeSBtdWx0aS10eXBlIGltYWdlcyB3aXRob3V0IEZEVCBzZWN0aW9uLgoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBsZWdhY3kgbXVsdGktdHlwZSBpbWFnZXMgY29udGFpbmluZyBvbmx5IGEgTGludXgga2VybmVsCiAgICBhbmQgcm9vdCBmaWxlIHN5c3RlbSB0byBiZSBsb2FkZWQsIG1haW50YWluaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cwogICAgdmVyc2lvbnMgb2YgdS1ib290LgoKICAgIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB1c2luZyBvbGQgaW1hZ2UgZmlsZXMgc3VjaCBhcyBhIExpbnV4IDIuNCBrZXJuZWwgLwogICAgZmlsZXN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDg4MTAzMWQ5NzMyNzgzYjdhZWFlMjE5OGZjN2ViNDgwYWU4OTc0YTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDEwIDAwOjM4OjAyIDIwMDggKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTVlOWQ2YzljMDgxNjBiZTdlNWEzNmUwNGQxMjVjY2NlOTliODc3NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgMTAgMDA6MzY6MDkgMjAwOCArMDIwMAoKICAgIHBvc3QvY3B1L3BwYzR4eC9NYWtlZmlsZTogbGluZSBsZW5ndGggY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2NlOWNmZGFiY2Y0MTZlY2QyYWFjYzM2ODFjOTFlNTM3OGM3NWEzZApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMjo1MjowOSAyMDA4ICswMjAwCgogICAgRml4IEAgLT4gPGF0PiBzdWJzdGl0dXRpb24KCiAgICBXaGVuIGFwcGx5aW5nIHRoZSBBVDkxQ0FQOSBwYXRjaGVzIHVwc3RyZWFtLCBzb21ldGhpbmcgdHJhbnNmb3JtZWQKICAgIHRoZSAnQCcgY2hhcmFjdGVyIGludG8gdGhlICcgPGF0PiAnIHNlcXVlbmNlLgoKICAgIFRoZSBwYXRjaCBiZWxvdyByZXN0b3JlcyB0aGUgb3JpZ2luYWwgZm9ybSBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZQogICAgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKHRoZSBBVDkxQ0FQOSBmaWxlcywgdGhlIEFUOTFTQU05MjYwIGZpbGVzIHdoaWNoCiAgICB3ZXJlIGNvcGllZCBmcm9tIEFUOTFDQVA5LCBhbmQgYSBjb3VwbGUgb2Ygb3RoZXIgZmlsZXMgd2hlcmUgdGhlCiAgICAnIDxhdD4gJyBzZXF1ZW5jZSB3YXMgcHJlc2VudCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA5NjA2YjNjODFiM2M0N2ExZDU4NTE0ZTlhMjMyYzZmNDYxYTE3NTk3CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIyOjUyOjEwIDIwMDggKzAyMDAKCiAgICBVcGRhdGUgb3JpZ2luIGFuZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24gaW4gYXJjaC1hdDkxc2FtOSBoZWFkZXIgZmlsZXMKCiAgICBXaGVuIGRvaW5nIHRoZSBBVDkxQ0FQOS9BVDkxU0FNOSBwb3J0LCBhIG51bWJlciBvZiBoZWFkZXIgZmlsZXMgd2VyZQogICAgY29waWVkIGZyb20gdGhlIExpbnV4IGtlcm5lbCBzb3VyY2VzLiBUaGlzIHBhdGNoIGV4cGxpY2l0bHkgc3BlY2lmaWVzCiAgICB0aGlzIG9yaWdpbiBmb3IgYWxsIHRoZSBjb3BpZWQgaGVhZGVycywgYW5kIGZvciB0aG9zZSBtaXNzaW5nIGNvcHlyaWdodAogICAgaW5mb3JtYXRpb24sIGFkZHMgaXQuCgogICAgQWRkaXRpb25hbHksIHRoZSBoZWFkZXIgZmlsZSAnYXQ5MXNhbTkyNnhfbWMuaCcgaGFzIGJlZW4gc3VwZXJjZWVkZWQKICAgIGluIHRoZSBsYXRlc3Qga2VybmVsIHNvdXJjZXMgYnkgJ2F0OTFzYW05X3NtYy5oJy4KCiAgICBUaGUgY29weXJpZ2h0IGluZm9ybWF0aW9uIGhhcyBiZWVuIGNvbmZpcm1lZCBieSB0aGUgQVQ5MSBMaW51eCBrZXJuZWwKICAgIG1haW50YWluZXIsIEFuZHJldyBWaWN0b3IgPGF2aWN0b3IuemFAZ21haWwuY29tPi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGNlYjZiNGZiZTFkY2M0MGJiNjcyZWY4MTMzZGRmNDgxM2U5N2NiYjEKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjI6NTI6MTEgMjAwOCArMDIwMAoKICAgIEFkZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24gaW4gQXRtZWwgYm9hcmRzIHBhcnRpdGlvbi5jCgogICAgV2hlbiBVbGYgZGlkIHRoZSBkYXRhZmxhc2guYyBjbGVhbnVwLCBoZSBkaWRuJ3QgYWRkIGhpcyBjb3B5cmlnaHQgb24KICAgIHRoZSBuZXcgY3JlYXRlZCBmaWxlcy4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDJhYjAyZmQ0NTZkOGVmOTJhZTlmNTQzOTYxOGQxZmE3Y2ExNmU1ZjMKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxMDowOToyNyAyMDA4ICswMjAwCgogICAgbXgzMWFkczogZml4IDMya0h6IGNsb2NrIGhhbmRsaW5nCgogICAgQWNjb3JkaW5nIHRvIHNjaGVtYXRpY3MgYW5kIHRvIFJlZEJvb3Qgc291cmNlcywgdGhlIE1YMzFBRFMgdXNlcyBhIDMyNzY4SHoKICAgIG9zY2lsbGF0b3IgYXMgYSBTS0lMIHNvdXJjZS4gRml4IHByZXZpb3VzbHkgd3JvbmdseSBhc3N1bWVkIDMyMDAwSHogdmFsdWUuCiAgICBBbHNvIGZpeCBhIHR5cG8gd2hlbiB2ZXJpZnlpbmcgYSBqdW1wZXIgY29uZmlndXJhdGlvbi4gV2hpbGUgYXQgaXQsIG1ha2UKICAgIHR3byBuZWVkbGVzc2x5IGdsb2JhbCBmdW5jdGlvbnMgc3RhdGljLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAxYjU2MDVjYTU3ZmJiMzY0ZjRkNzhlZWVlMjhiOTc0ZWQ4NzVlODg4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1heSA3IDEzOjEwOjA0IDIwMDggKzAyMDAKCiAgICBBdm9pZCBpbml0cmQgYW5kIGxvZ2J1ZmZlciBhcmVhIG92ZXJsYXBzCgogICAgQWRkIGxvZ2J1ZmZlciB0byByZXNlcnZlZCBMTUIgYXJlYXMgdG8gcHJldmVudCBpbml0cmQgYWxsb2NhdGlvbgogICAgZnJvbSBvdmVybGFwaW5nIHdpdGggaXQuCgogICAgTWFrZSBzdXJlIHRvIHVzZSBjb3JyZWN0IGxvZ2J1ZmZlciBiYXNlIGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjNTk1MThlMTU5NDliMzQwM2RmNWM1YjBjMmM0OGVhMGU1YmVhMjRiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1heSA3IDEzOjA4OjU0IDIwMDggKzAyMDAKCiAgICBwcGM6IENsZWFudXAgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkgdXNlCgogICAgUmVtb3ZlZCBkdXBsaWNhdGVkIGVmZmVjdGl2ZSBtZW1vcnkgc2l6ZSBjYWxjdWxhdGlvbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjczYzM3ZDg0M2Q1YjU4MTA5MDM3ODAxNmNkMTJkZDljNTg2OTA3YgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXkgNyAwOTowMzo1MyAyMDA4ICswMjAwCgogICAgRml4IGJ1aWxkIGVycm9ycyB3aGVuIENPTkZJR19MT0dCVUZGRVIgYW5kIENPTkZJR19GSVQgYXJlIGVuYWJsZWQKCiAgICBSZWNlbnQgbW9kaWZjYXRpb25zIHRvIExPR0JVRkZFUiBoYW5kbGluZyBjb2RlIHdlcmUgaW5jb3JyZWNseQogICAgaW50cm9kdWNlZCB0byBmaXRfY2hlY2tfa2VybmVsKCkgcm91dGluZSBkdXJpbmcKICAgICJNZXJnZSBicmFuY2ggJ25ldy1pbWFnZScgb2YgZ2l0Oi8vd3d3LmRlbnguZGUvZ2l0L3UtYm9vdC10ZXN0aW5nIiwKICAgIGNvbW1pdCAyN2YzM2U5ZjQ1ZWY3Zjk2ODVjYmRjNjUwNjZhMTgyOGU4NWRkZTRmLgoKICAgIFRoaXMgcGF0Y2ggY2xlYW5zIHVwIHRoaXMgbWVyZ2UgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiYzExNzU2ZGFmZjg5YTNkZTA5Y2E4MGFkYWM5NjJiODhjZjA2ZTZlCkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJVHVlIE1heSA2IDIwOjE2OjE1IDIwMDggLTA3MDAKCiAgICBQcm9wYWdhdGUgRXJyb3IgU3RhdHVzIHRvIHRoZSBTaGVsbCBvbiBmd19wcmludGVudiBFcnJvcnMKCiAgICBDaGFuZ2VkIGltcGxlbWVudGF0aW9uIHN1Y2ggdGhhdCBmd19wcmludGVudiByZXR1cm5zIGZhaWx1cmUgc3RhdHVzCiAgICB3aGVuIG9uZSBvciBtb3JlIHNwZWNpZmllZCB2YXJpYWJsZXMgZG8gbm90IGV4aXN0IG9yIHdoZW4gaW5jb3JyZWN0CiAgICBjb21tYW5kIHN5bnRheCBpcyB1c2VkLgoKICAgIFRoaXMgYWlkcyBzY3JpcHRpbmcgZndfcHJpbnRlbnYgc3VjaCB0aGF0IHRoZSBzY3JpcHQgY2FuIGtleSBvZiB0aGUKICAgIHJldHVybiBzdGF0dXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBzdGFuZGFyZCBlcnJvciAic2NyYXBpbmciLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGYzYjZkNTI4ZTRkZDcxOTY0MGE0YmZjZDk1NGY0ZTRjN2Y1ZGIwZDYKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglUdWUgTWF5IDYgMTY6MTg6MDAgMjAwOCAtMDcwMAoKICAgIEZpeCBDb21waWxhdGlvbiBFcnJvcnMgd2l0aCAndG9vbHMvZW52L2Z3X3ByaW50ZW52JwoKICAgIEluIHRoZSBjdXJyZW50IHRvcC1vZi10cmVlLCAxLjMuMy4tcmMyLCB0aGUgb3B0aW9uYWwgdG9vbAogICAgJ3Rvb2xzL2Vudi9md19wcmludGVudicgZmFpbHMgdG8gY29tcGlsZSBmb3IgdHdvIHJlYXNvbnM6CgogICAgMSkgVGhlIGhlYWRlciB3YXRjaGRvZy5oIGNhbm5vdCBiZSBmb3VuZC4KICAgIDIpIFRoZSBoZWFkZXIgemxpYi5oIGlzIHBpY2tlZCB1cCBmcm9tIHRoZSB0b29sIGNoYWluIHJhdGhlciB0aGFuIHRoZQogICAgICAgcHJvamVjdCBjYXVzaW5nIGEgcHJvdG90eXBlIGNvbmZsaWN0IGZvciBjcmMzMi4KCiAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBib3RoIG9mIHRoZXNlIGlzc3Vlcy4KCiAgICBQbGF0Zm9ybXMgVGVzdGVkIE9uOgogICAgLSBBTUNDICJLaWxhdWVhIgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+Cgpjb21taXQgNTk3ZjZjMjZhMThiMzg5OTAzYTY0NjkyYmFjYmY5YTFjYTY5MzU1YgpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSA1IDEwOjIyOjUzIDIwMDggLTA1MDAKCiAgICBGaXggcmVhZGxpbmVfaW50b19idWZmZXIoKSB3aXRoIENPTkZJR19DTURMSU5FX0VESVRJTkcgYmVmb3JlIHJlbG9jYXRpbmcKCiAgICBXaGVuIENPTkZJR19DTURMSU5FX0VESVRJTkcgaXMgZW5hYmxlZCwgcmVhZGxpbmVfaW50b19idWZmZXIoKSBkb2Vzbid0CiAgICB3b3JrIGJlZm9yZSByZWxvY2F0aW5nIHRvIFJBTSBiZWNhdXNlIGNvbW1hbmQgaGlzdG9yeSBpcyB3cml0dGVuIGludG8KICAgIGEgZ2xvYmFsIGFycmF5IHRoYXQgaXMgbm90IHdyaXRhYmxlIGJlZm9yZSByZWxvY2F0aW9uLiAgVGhpcyBwYXRjaAogICAgZGVmZXJzIHRvIHRoZSBuby1lZGl0aW5nIGFuZCBuby1oaXN0b3J5IGNvZGUgaW4gcmVhZGxpbmVfaW50b19idWZmZXIoKQogICAgaWYgaXQgaXMgY2FsbGVkIGJlZm9yZSByZWxvY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzI2YzBmMWU1ZjEwOGRjY2VhMDUyOTY1MTIzYjk1ODM3ZDJiZDQwMgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglNb24gTWF5IDUgMTY6MTE6MjIgMjAwOCArMDIwMAoKICAgIGNvc21ldGljOiBBZGp1c3QgY29kaW5nIHN0eWxlIGZvciBzd2l0Y2ggc3RhdGVtZW50cyB0byBiZSBjb25zaXN0ZW50CgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNTc0YjMxOTUxMmIxM2UxMDgwMGYwMDQ1ZTM5Yjk5M2Y0Y2EyNWU0MgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglNb24gTWF5IDUgMTY6MTE6MjEgMjAwOCArMDIwMAoKICAgIEZpeCBkaXNrIHR5cGUgb3V0cHV0IGluIGRpc2svcGFydC5jCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgMDQ1YjRkMmQ3MTY4ZWYwOWM3MzQ5ZGNmNmVjZWJlNzQzMmI3NDE3MQpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWQubHVuZ3VAd2luZHJpdmVyLmNvbT4KRGF0ZToJTW9uIE1heSA1IDE0OjIwOjAzIDIwMDggKzAzMDAKCiAgICBNYWlsIGFkZHJlc3MgY2hhbmdlLCBkb2N1bWVudGF0aW9uIG1vZGlmaWVkCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcnZpZXIuY29tPgoKY29tbWl0IDRkNDliMjgwMzhlMjgxOTA4OGU4MzU2YTc3MjEyZmM5NWE4OWNlNWEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBNYXkgNCAxNTo0Mjo0MSAyMDA4ICswMjAwCgogICAgbWljcm9ibGF6ZTogUmVwYXJlIGludGMgaGFuZGxpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgODc4YjNiMWUxOTNlNTcwY2FmM2U5NmFkOGUzMWU1NjFmNjhkMDI4NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgNCAxNToxNzo1MiAyMDA4ICswMjAwCgogICAgaW5jbHVkZS9naXRpZ25vcmU6IHVwZGF0ZSB0byBhbGwgYXJjaGl0ZWN0dXJlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMWRmMzY4YWVkM2I4YmMyNDBmZTE1OTVkMjkwYjBlOTFiMjI5NjFkYQpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJTW9uIE1heSA1IDAyOjEyOjA2IDIwMDggKzAyMDAKCiAgICBpZGU6IFJlbW92ZSBzcHVyaW91cyBzZWNvbmQgaW5jbHVkZSBvZiBpby5oCgogICAgUmVtb3ZlZCB0aGUgc2Vjb25kIGluY2x1ZGUsIHdpdGggYWxsIHRoZSAjaWZkZWYgYXJvdW5kIGFzIHN1Z2dlc3RlZCBieSBXb2xmZ2FuZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgOGZiYzk4NWJkYWQwOWIyM2I3ZWI0ZGYxZDJlYTU4OTYxOWQ4ZGI0YwpBdXRob3I6IEFkcmlhbiBGaWxpcGkgPGFkcmlhbi5maWxpcGlAZXVyb3RlY2guY29tPgpEYXRlOglUdWUgTWF5IDYgMTY6NDY6MzcgMjAwOCAtMDQwMAoKICAgIEZpeCBzb21lIHR5cG9zCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aHJlZSB0eXBvcy4KICAgIFRoZSBmaXJzdCBpcyBhIHJlcGV0aXRpb24gb2YgQ09ORklHX0NNRF9CU1AuCiAgICBUaGUgc2Vjb25kIG1ha2VzIHRoZSAjZW5kaWYgY29tbWVudCBtYXRjaCBpdHMgI2lmLgogICAgVGhlIHRoaXJkIGlzIGEgc3BlbGxpbmcgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogQWRyaWFuIEZpbGlwaSA8YWRyaWFuLmZpbGlwaUBldXJvdGVjaC5jb20+Cgpjb21taXQgZTQxOWUxMmQwNGFlM2IyODBjOTlhODdhMmVhNGFkN2E0MDYyOGJjYgpBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVN1biBNYXkgNCAxNjo0NTowMSAyMDA4IC0wNzAwCgogICAgUmVjb2duaXplICdwb3dlcnBjJyBBcyBhbiBBbGlhcyBmb3IgSUhfQVJDSF9QUEMKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHJlY29nbml0aW9uIG9mICdwb3dlcnBjJyBhcyBhbiBhbGlhcyBmb3IgdGhlIFBvd2VyUEMKICAgIGFyY2hpdGVjdHVyZSB0eXBlIHNpbmNlIExpbnV4IGlzIGFscmVhZHkgdHJlbmRpbmcgaW4gdGhhdCBkaXJlY3Rpb24sCiAgICBwcmVmZXJyaW5nICdwb3dlcnBjJyB0byAncHBjJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgoKY29tbWl0IGY1YTI0MjU5MTkwYzM4OGMyNTI3YmRjNDlmZWUzNDU3N2Q4NjJjYzcKQXV0aG9yOiBXaGVhdGxleSBUcmF2aXMgPFRyYXZpcy5XaGVhdGxleUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDIgMTM6MzU6MTUgMjAwOCAtMDcwMAoKICAgIDc0NTAgYW5kIDg2eHggTDIgY2FjaGUgaW52YWxpZGF0ZSBidWcgY29ycmVjdGlvbnMKCiAgICBUaGUgNzYxMCBhbmQgcmVsYXRlZCBwYXJ0cyBoYXZlIGFuIEwySVAgYml0IGluIHRoZSBMMkNSIHRoYXQgaXMKICAgIG1vbml0b3JlZCB0byBzaWduYWwgd2hlbiB0aGUgTDIgY2FjaGUgaW52YWxpZGF0ZSBpcyBjb21wbGV0ZSB3aGVyZWFzIHRoZQogICAgNzQ1MCBhbmQgcmVsYXRlZCBwYXJ0cyB1dGlsaXplIEwySSBmb3IgdGhpcyBwdXJwb3NlLiBIb3dldmVyLCB0aGUKICAgIGN1cnJlbnQgY29kZSBkb2VzIG5vdCBhY2NvdW50IGZvciB0aGlzIGRpZmZlcmVuY2UuIEFkZGl0aW9uYWxseSB0aGUgODZ4eAogICAgTDIgY2FjaGUgaW52YWxpZGF0ZSBjb2RlIHVzZWQgYW4gImFuZGkiIGluc3RydWN0aW9uIHdoZXJlIGFuICJhbmRpcyIKICAgIGluc3RydWN0aW9uIHNob3VsZCBoYXZlIGJlZW4gdXNlZC4KCiAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBib3RoIG9mIHRoZXNlIGJ1Z3MuCgogICAgU2lnbmVkLW9mZi1ieTogVHJhdmlzIFdoZWF0bGV5IDx0cmF2aXMud2hlYXRsZXlAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLUJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkMzFjZGM0NWQzNTkyYTU1NDVhNjQ5ZmI1YTI0YjQ1OGE0ZTRiNzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDkgMTA6MTY6MTMgMjAwOCArMDIwMAoKICAgIEF2b2lkIGluZmluaXRlIGxvb3AgIkdlbmVyYXRpbmcgaW5jbHVkZS9hdXRvY29uZi5tayIKCiAgICBGaXggYSBib2d1cyBjaXJjdWxhciBkZXBlbmRlbmN5IHRoYXQgY2F1c2VkIGFuIGluZmluaXRlIGxvb3Agb2YKICAgICJHZW5lcmF0aW5nIGluY2x1ZGUvYXV0b2NvbmYubWsiIGFnYWluIGFuZCBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU2N2ZiODUyMTc4ZGJmNTk1MjlkNzMwMTYyMGEzZjM3MzJhNGIwMmQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjI6NTI6MDkgMjAwOCArMDIwMAoKICAgIEZpeCBAIC0+IDxhdD4gc3Vic3RpdHV0aW9uCgogICAgV2hlbiBhcHBseWluZyB0aGUgQVQ5MUNBUDkgcGF0Y2hlcyB1cHN0cmVhbSwgc29tZXRoaW5nIHRyYW5zZm9ybWVkCiAgICB0aGUgJ0AnIGNoYXJhY3RlciBpbnRvIHRoZSAnIDxhdD4gJyBzZXF1ZW5jZS4KCiAgICBUaGUgcGF0Y2ggYmVsb3cgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIGZvcm0gaW4gYWxsIHRoZSBwbGFjZXMgd2hlcmUKICAgIGl0IGhhcyBiZWVuIG1vZGlmaWVkICh0aGUgQVQ5MUNBUDkgZmlsZXMsIHRoZSBBVDkxU0FNOTI2MCBmaWxlcyB3aGljaAogICAgd2VyZSBjb3BpZWQgZnJvbSBBVDkxQ0FQOSwgYW5kIGEgY291cGxlIG9mIG90aGVyIGZpbGVzIHdoZXJlIHRoZQogICAgJyA8YXQ+ICcgc2VxdWVuY2Ugd2FzIHByZXNlbnQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDczY2NiMzQxMGEwNzg1NTkzY2RhN2FlZTQ1NWRmYzUxZjc5MGUyODEKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeS5qZW5uZWpvaG5AZnJlZW5ldC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxNDowNDozMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgdGhlIEhhcnJpcyBRVUFEMTAwSEQgQU1DQyA0MDVFUC1iYXNlZCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVmMjY0MjYyNWNiZmIxYzM2OTVlMzQ3OGQwOGFlNTE1MDUyYTQ5NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxMToxMDo0NiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBLaWxhdWVhOiBGaXggaW5jb3JyZWN0IEZQR0EgRklGTyBhZGRyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGEwMGVjY2ZlYmM5NTRhZDk0ODUxNjFlZmVjYTdkOWFhZjYyNmQ1MzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxMTowNToxNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgdG8gYWxsIHJlbWFpbmluZyBBTUNDIFBQQzR4eCBldmFsIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBmZHQgKGZsYXR0ZW5lZCBkZXZpY2UgdHJlZSkgc3VwcG9ydCB0byBhbGwgcmVtYWluaW5nIEFNQ0MKICAgIGV2YWwgYm9hcmRzLiBNb3N0IG5ld2VyIGJvYXJkcyBhbHJlYWR5IHN1cHBvcnQgZGV2aWNlIHRyZWUuIFdpdGggdGhpcyBwYXRjaCwKICAgIGFsbCBBTUNDIGJvYXJkcyBub3cgZW5hYmxlIGRldmljZSB0cmVlIHBhc3NpbmcgZnJvbSBVLUJvb3QgdG8gTGludXgKICAgIGFyY2gvcG93ZXJwYyBrZXJuZWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYjVkODhiOTYxMWUwYzM1YzUzNTQzYWQzYjRhYjk5ZmE4MjIwM2UzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDggMTE6MDE6MDkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIHdlYWsgZGVmYXVsdCBmdF9ib2FyZF9zZXR1cCgpIHJvdXRpbmUKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBkZWZhdWx0IGZ0X2JvYXJkX3NldHVwKCkgcm91dGluZSB0byB0aGUgNHh4IGZkdCBjb2RlLgogICAgVGhpcyByb3V0aW5lIGlzIGRlZmluZWQgYXMgd2VhayBhbmQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IGEgYm9hcmQgc3BlY2lmaWMKICAgIG9uZSBpZiBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQxYzFiYTg1Yzc5MTUwNTNhZGY2YThkMTRhMDhhYzZmY2I3NTBkMDEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxMDo0ODo1OCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBhY2FkaWE6IEFkZCBmZHQgc3VwcG9ydCBhbmQgZml4IHNlY3Rpb24gb3ZlcmxhcCBwcm9ibGVtCgogICAgVGhpcyBwYXRjaCBhZGRzIGZkdCAoZmxhdHRlbmVkIGRldmljZSB0cmVlKSBzdXBwb3J0IHRvIHRoZSBBTUNDCiAgICBBY2FkaWEgZXZhbCBib2FyZC4gVGhpcyBpbmNyZWFzZXMgdGhlIGltYWdlIHNpemUgYW5kIGl0IGRvZXNuJ3QKICAgIGZpdCBhbnltb3JlIGludG8gMjU2a0J5dGUuIFNpbmNlIHdlIGRpZG4ndCB3YW50IHRvIHJlbW92ZSBmZWF0dXJlcwogICAgZnJvbSB0aGUgY29uZmlndXJhdGlvbiwgd2UgZGVjaWRlZCB0byBpbmNyZWFzZSB0aGUgVS1Cb290IGltYWdlIHNpemUKICAgIChhZGQgb25lIGZsYXNoIHNlY3RvcikuCgogICAgQWxzbyBjaGFuZ2VkIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IGRlZmluaXRpb24gdG8gbWFrZSBpdAogICAgaW5kZXBlbmRlbnQgb2Ygc3VjaCBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YWRiMzAyM2RlNzViYzE1MGYwODhjODkzNWRiMzQwOTMwYWQzOGM4CkF1dGhvcjogSXJhIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CkRhdGU6CVR1ZSBBcHIgMjkgMTE6MTg6NTQgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWRkIGRldmljZSB0cmVlIHN1cHBvcnQgdG8gQU1DQyBZb3NlbWl0ZQoKICAgIEFkZCBzdXBwb3J0IGZvciBib290aW5nIHdpdGggYSBkZXZpY2UgdHJlZSBibG9iLiBUaGlzIGlzIG5lZWRlZCB0byBib290CiAgICBBUkNIPXBvd2VycGMga2VybmVscy4gQWxzbyBhZGQgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgZXRoMCBtYWMgYWRkcmVzcwogICAgdmlhIHRoZSBldGhhZGRyIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IElyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI5YmJlZmNlMWE2NTNlYTM1Zjc0YTY2ZWMxMTdjZGRhMmUwNDNhNGIKQXV0aG9yOiBEYXZlIE1pdGNoZWxsIDxkbWl0Y2hlbGxAYW1jYy5jb20+CkRhdGU6CVdlZCBNYXkgNyAwOTowMDoyMyAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBGaXggdHlwb3MgaW4gNDYwR1QvRVggRkJEViBhcnJheQoKICAgIENvcnJlY3RlZCB0d28gdHlwb3MgaW4gdGhlIDQ2MEdUL0VYIEZCRFYgYXJyYXkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBNaXRjaGVsbCA8ZG1pdGNoZWxsQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY2ZjVmYTkyNjM2MjkyNzFlZGM4NjE3OGIxZjIyNGUzYzlhYWIyYjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgNyAxNjo1NDozMSAyMDA4IC0wNTAwCgogICAgODV4eDogTGltaXQgQ1BVMiB3b3JrYXJvdW5kIHRvIHBhcnRzIHRoYXQgaGF2ZSB0aGUgZXJyYXRhCgogICAgU2lnbmVkLW9mZi1ieTogRWJvbnkgWmh1IDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNWZlNTE0ZThhY2U1NjQzMDBkMmMxZDczODQ2ZGRmZjQ5NjU0MjQzCkF1dGhvcjogTGVlIE5pcHBlciA8bGVlLm5pcHBlckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDI1IDE1OjQ0OjQ1IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBzeXN0ZW0gcGVyZm9ybWFuY2Ugc2V0dGluZ3MgZm9yIE1QQzgzNDlFTURTLgoKICAgIFRoZXNlIHNhbWUgc2V0dGluZ3MgYXJlIHVzZWQgb24gTVBDODM0OUlUWCwgYW5kCiAgICBpbXByb3ZlIHBlcmZvcm1hbmNlIG9uIE1QQzgzNDlFTURTLgoKICAgIFNpZ25lZC1vZmYtYnk6IExlZSBOaXBwZXIgPGxlZS5uaXBwZXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDkzODdkYmE5MTBlNDg1NjQwYjU3NWU5MjBlZTQ2M2I3ZTYxMWRjMwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXkgNiAxMzoyMjo1MiAyMDA4ICswOTAwCgogICAgW01JUFNdIGNwdS9taXBzL2NhY2hlLlM6IEZpeCBidWlsZCB3YXJuaW5nCgogICAgU29tZSBvbGQgR05VIGFzc2VtYmxlcnMsIHN1Y2ggYXMgdjIuMTQgKEVMREsgMy4xLjEpLCB2Mi4xNiAoRUxESyA0LjEuMCksCiAgICB3YXJucyBpbGxlZ2FsIGdsb2JhbCBzeW1ib2wgcmVmZXJlbmNlcyBieSBiYWwgKGFuZCBqYWwgYWxzbykgaW5zdHJ1Y3Rpb24uCiAgICBUaGlzIGRvZXMgbm90IGhhcHBlbiB3aXRoIHRoZSBsYXRlc3QgYmludXRpbHMgdjIuMTguCgogICAgSGVyZSdzIGFuIGV4YW1wbGUgb24gZ3RoMl9jb25maWc6CgogICAgbWlwc180S0MtZ2NjICAtRF9fQVNTRU1CTFlfXyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4OTAwMDAwMDAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5CiAgICBzdGVtIC9vcHQvZWxkazMxMS91c3IvYmluLy4uL2xpYi9nY2MtbGliL21pcHMtbGludXgvMy4zLjMvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGsKICAgIGMgLUVCIC1jIC1vIGNhY2hlLm8gY2FjaGUuUwogICAgY2FjaGUuUzogQXNzZW1ibGVyIG1lc3NhZ2VzOgogICAgY2FjaGUuUzoyNDM6IFdhcm5pbmc6IFByZXRlbmRpbmcgZ2xvYmFsIHN5bWJvbCB1c2VkIGFzIGJyYW5jaCB0YXJnZXQgaXMgbG9jYWwuCiAgICBjYWNoZS5TOjI1MDogV2FybmluZzogUHJldGVuZGluZyBnbG9iYWwgc3ltYm9sIHVzZWQgYXMgYnJhbmNoIHRhcmdldCBpcyBsb2NhbC4KCiAgICBJbiBwcmluY2lwbGUsIGdhcyBtaWdodCBiZSBzZW5zaXRpdmUgdG8gZ2xvYmFsIHN5bWJvbCByZWZlcmVuY2VzIGluIFBJQwogICAgY29kZSBiZWNhdXNlIHRoZXkgc2hvdWxkIGJlIHByb2Nlc3NlZCB0aHJvdWdoIEdPVCAoZ2xvYmFsIG9mZnNldCB0YWJsZSkuCiAgICBCdXQgaWYgYGJhbCcgaW5zdHJ1Y3Rpb24gaXMgdXNlZCwgaXQgcmVzdWx0cyBpbiBQQy1iYXNlZCBvZmZzZXQganVtcC4KICAgIFRoaXMgaXMgdGhlIGNhdXNlIG9mIHRoaXMgd2FybmluZy4KCiAgICBJbiBwcmFjdGljZSwgd2Uga25vdyBpdCBkb2Vzbid0IG1hdHRlciB3aGV0aGVyIFBDLWJhc2VkIHJlZmVyZW5jZSBvciBHT1QtCiAgICBiYXNlZC4gQXMgZm9yIHRoaXMgY2FzZSwgYm90aCB3aWxsIHdvcmsgYmVmb3JlL2FmdGVyIHJlbG9jYXRpb24uIEJ1dCBsZXQncwogICAgZml4IHRoZSBjb2RlLgoKICAgIFRoaXMgcGF0Y2ggZXhwbGljaXRseSBzZXRzIHVwIGEgdGFyZ2V0IGFkZHJlc3MsIHRoZW4ganVtcCB0aGVyZS4KICAgIEhlcmUncyBhbiBleGFtcGxlIG9mIGRpc2Fzc2VtYmxlZCBjb2RlIHdpdGgvd2l0aG91dCB0aGlzIHBhdGNoLgoKICAgICA5MDAwMDY2ODoJICAgICAxNDg1ZmZlZgkgICAgIGJuZSAgICAgYTAsYTEsOTAwMDA2MjggPG1pcHNfY2FjaGVfcmVzZXQrMHgyMD4KICAgICA5MDAwMDY2YzoJICAgICBhYzgwZmZmYwkgICAgIHN3ICAgICAgemVybywtNChhMCkKICAgICA5MDAwMDY3MDoJICAgICAwMTQwMjgyMQkgICAgIG1vdmUgICAgYTEsdDIKICAgIC05MDAwMDY3NDoJICAgICAwNDExZmZiYQkgICAgIGJhbCAgICAgOTAwMDA1NjAgPG1pcHNfaW5pdF9pY2FjaGU+CiAgICAtOTAwMDA2Nzg6CSAgICAgMDE4MDMwMjEJICAgICBtb3ZlICAgIGEyLHQ0CiAgICAtOTAwMDA2N2M6CSAgICAgMDE2MDI4MjEJICAgICBtb3ZlICAgIGExLHQzCiAgICAtOTAwMDA2ODA6CSAgICAgMDQxMWZmY2MJICAgICBiYWwgICAgIDkwMDAwNWI0IDxtaXBzX2luaXRfZGNhY2hlPgogICAgLTkwMDAwNjg0OgkgICAgIDAxYTAzMDIxCSAgICAgbW92ZSAgICBhMix0NQogICAgLTkwMDAwNjg4OgkgICAgIDAzMDAwMDA4CSAgICAganIgICAgICB0OAogICAgLTkwMDAwNjhjOgkgICAgIDAwMDAwMDAwCSAgICAgbm9wCiAgICArOTAwMDA2NzQ6CSAgICAgMDE4MDMwMjEJICAgICBtb3ZlICAgIGEyLHQ0CiAgICArOTAwMDA2Nzg6CSAgICAgOGY4ZjgzZWMJICAgICBsdyAgICAgIHQ3LC0zMTc2NChncCkKICAgICs5MDAwMDY3YzoJICAgICAwMWUwZjgwOQkgICAgIGphbHIgICAgdDcKICAgICs5MDAwMDY4MDoJICAgICAwMDAwMDAwMAkgICAgIG5vcAogICAgKzkwMDAwNjg0OgkgICAgIDAxNjAyODIxCSAgICAgbW92ZSAgICBhMSx0MwogICAgKzkwMDAwNjg4OgkgICAgIDAxYTAzMDIxCSAgICAgbW92ZSAgICBhMix0NQogICAgKzkwMDAwNjhjOgkgICAgIDhmOGY4MWUwCSAgICAgbHcgICAgICB0NywtMzIyODgoZ3ApCiAgICArOTAwMDA2OTA6CSAgICAgMDFlMGY4MDkJICAgICBqYWxyICAgIHQ3CiAgICArOTAwMDA2OTQ6CSAgICAgMDAwMDAwMDAJICAgICBub3AKICAgICs5MDAwMDY5ODoJICAgICAwMzAwMDAwOAkgICAgIGpyICAgICAgdDgKICAgICs5MDAwMDY5YzoJICAgICAwMDAwMDAwMAkgICAgIG5vcAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMGY4YzYyYTE0YjUyM2M1Njg3NGViY2I2N2MxYTE2Yzk5YWFkNDhiMwpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWQubHVuZ3VAd2luZHJpdmVyLmNvbT4KRGF0ZToJTW9uIE1heSA1IDE0OjA0OjAwIDIwMDggKzAzMDAKCiAgICBBbGxvdyBidWlsZGluZyBtaXBzIHZlcnNpb25zIHdpdGggRUxESyAzLjEuMQoKICAgIC5ncHdvcmQgd29ya3Mgb25seSB3aXRoIGxvY2FsIHN5bWJvbHMgb24gY2VydGFpbiBiaW51dGlscyB2ZXJzaW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWQubHVuZ3VAd2luZHJ2aWVyLmNvbT4KCmNvbW1pdCAxMmE2N2E5ZTUxZjZiM2VjMjZjYjBmMDc3ZmI1Njg1YTQ0N2MzNTlkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA1IDEyOjUyOjM2IDIwMDggKzAyMDAKCiAgICBNQUtFQUxMOiBhZGQgaW5rYTR4MCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjgzZGNjMTNhZTdiMmRhYjM5NGJmZWY2ZjY5OTc1MGQxMTQ5MGVlMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXkgNCAyMTozNDoyMyAyMDA4ICswMjAwCgogICAga2I5MjAyIGJvYXJkOiBmaXggYnVpbGQgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZhZGY2MWRjNGNiNWM1M2EyZGY5OTBjYmM4ZGYyYmNlYWNiZmQ4NjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWF5IDQgMTI6MTA6MzMgMjAwOCArMDIwMAoKICAgIFByZXBhcmUgZm9yIHYxLjMuMy1yYzMKCiAgICBVcGRhdGUgQ2hOQUdFTE9HLCBtaW5vciB3aGl0ZSBzcGFjZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgN2MwNzczZmRlNjEwMGI2MWJlMjU1OGNiNWQ4YzQ0MmEzMTk0YWVjYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXkgNCAwMDozNToxNSAyMDA4ICswMjAwCgogICAgZHJpdmVycy9uZXQvdHNlYy5jOiBGaXggdHlwby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFhNzM3OTQ1ZTZmMzdhNWRlNWRiYWQ1NTBhNzY5NGUwY2IyYTgxMjAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBNYXkgMiAyMTo0NToxMiAyMDA4IC0wNDAwCgogICAgdmVyc2lvbl9hdXRvZ2VuZXJhdGVkLmg6IHVzZSBwcmludGYgcmF0aGVyIHRoYW4gZWNobyAtbgoKICAgIFNvbWUgc3lzdGVtcyBhcmUgZHVtYiBhbmQgZG8gbm90IGltcGxlbWVudCB0aGUgLW4gZmxhZyB0byBlY2hvIChsaWtlIE9TIFgpLgogICAgQ29udmVydCB0aGUgTWFrZWZpbGUgdG8gdXNlIHByaW50ZiBhcyB0aGlzIHNob3VsZCB3b3JrIGV2ZXJ5d2hlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0YWNjMmExMDhhZDBhNjY5MTY1OTI0NzA0YTZjYjA4M2Y5MTM4MjQyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgTWF5IDIgMTg6MTc6NTAgMjAwOCAtMDQwMAoKICAgIGZpeCBidWlsZGluZyB3aGVuIHNhdmVlbnYgaXMgZGlzYWJsZWQgaW4gc29tZSBzZXR1cHMKCiAgICBJZiB5b3UgZW5hYmxlIGVudmlyb25tZW50IGluIHRoZSBmbGFzaCwgYnV0IGRpc2FibGUgdGhlIGVtYmVkZGVkCiAgICBvcHRpb24sIGFuZCB5b3UgZGlzYWJsZSB0aGUgc2F2ZWVudiBjb21tYW5kLCB0aGVuIHRoZSAjaWYgbmVzdGVkCiAgICBsb2dpYyB3aWxsIHRyaWdnZXIgYSBjb21waWxlIGZhaWx1cmU6CiAgICBlbnZfZmxhc2guYzogSW4gZnVuY3Rpb24gJ2Vudl9yZWxvY2F0ZV9zcGVjJzoKICAgIGVudl9mbGFzaC5jOjM5OTogZXJyb3I6ICdmbGFzaF9hZGRyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIFRoZSBmaXggaXMgdG8gYWRkIENNRF9TQVZFRU5WIGlmZGVmIHByb3RlY3Rpb24gbGlrZSBldmVyeXdoZXJlIGVsc2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGNjZjFhZDUzNWFlMWMwZGMyZDQ2NjIzNWM2NjhhZGJkZmUzYTU1YjcKQXV0aG9yOiBKZXJlbXkgTWNOaWNvbGwgPGplcmVteS5tY25pY29sbEB3aW5kcml2ZXIuY29tPgpEYXRlOglGcmkgTWF5IDIgMTY6MTA6MDQgMjAwOCAtMDQwMAoKICAgIFNCQzg1NDg6IGZpeCBhZGRyZXNzIG1hc2sgdG8gYWxsb3cgNjRNIGZsYXNoCgogICAgRml4IGluY29ycmVjdCBtYXNrIHRvIGVuYWJsZSBhbGwgNjRNQiBvZiBvbmJvYXJkIGZsYXNoLgogICAgUHJldmlvdXNseSBVLUJvb3QgaW5jb3JyZWN0bHkgbWFwcGVkIG9ubHkgOE1CIG9mIGZsYXNoLCB0aGlzCiAgICBwYXRjaCBjb3JyZWN0bHkgbWFwcyBhbGwgdGhlIGF2YWlsYWJsZSBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZXJlbXkgTWNOaWNvbGwgPGplcmVteS5tY25pY29sbEB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDM2NDgwODVjNDY0YzhjMjJlZjc2ZmFiMDA2Y2E0MzQ0ZDM3OTYxMjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgTWF5IDIgMTk6NDg6NTYgMjAwOCArMDIwMAoKICAgIHFlbXVfbWlwczogYWRkIFJFQURNRQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmZkZDAwMjY4OTE5MGEwMDIyYzdiM2RiYWIzN2ZjYmE3MjQ1ODBjZQpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJRnJpIE1heSAyIDAyOjM1OjU5IDIwMDggKzAyMDAKCiAgICBGaXggbWlzc3BlbGxlZCBjb21tZW50CgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IGZhOTU2ZmRlNjBiN2VjNGRkNjZiZDYyZjk5MTBmZDM0MWI1MDQ5YTEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBNYXkgMSAwNDoxMzowNSAyMDA4IC0wNDAwCgogICAgbWtpbWFnZTogbWFrZSBtbWFwKCkgY2hlY2tzIGNvbnNpc3RlbnQKCiAgICBUaGUgbW1hcCgpIHJlbGF0ZWQgY29kZSBpcyBmdWxsIG9mIGluY29uc2lzdGVudCBjYXN0cy9jb25zdGFudHMgd2hlbgogICAgaXQgY29tZXMgdG8gZXJyb3IgY2hlY2tpbmcsIGFuZCBtYXkgYnJlYWsgd2hlbiBidWlsZGluZyBvbiBzb21lCiAgICBzeXN0ZW1zIChsaWtlIG9uZXMgdGhhdCBkbyBub3QgaW1wbGljaXRseSBkZWZpbmUgdGhlIGNhZGRyX3QgdHlwZSkuCiAgICBMZXQncyBqdXN0IGF2b2lkIHRoZSB3aG9sZSBtZXNzIGJ5IHdyaXRpbmcgdGhlIGNvZGUgbmljZSBhbmQgY2xlYW4gaW4KICAgIHRoZSBmaXJzdCBwbGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGU5MGNkMDQ0N2EwZjBjY2Y1MjllZjg2ZjBlNmI1NjE4N2QzYjgyYQpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJVGh1IE1heSAxIDA5OjA1OjM0IDIwMDggKzAyMDAKCiAgICBGaXggZGVmaW5lZCBidXQgbm90IHVzZWQgYnVpbGQgd2FybmluZwoKICAgIC0gd2FybmluZzogJ3Nyb20nIGRlZmluZWQgYnV0IG5vdCB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IGI3MTE5MGYzMjUwYWFmZmNjODFjMzVmNmNmZDM0OThjYjdjNDgwMTMKQXV0aG9yOiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CkRhdGU6CVRodSBNYXkgMSAwOTowNToyNiAyMDA4ICswMjAwCgogICAgRml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIGJ1aWxkIHdhcm5pbmdzCgogICAgLSB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhzZXJpYWxfaW5pdGlhbGl6ZeKAmQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCA5YWNkZTEyOWNjM2Y5YzFiM2JjMTFhODIxNDgwZGQ0NDY3NzRkNjE4CkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglUdWUgQXByIDI5IDE5OjE4OjMyIDIwMDggKzAyMDAKCiAgICBUU0VDOiBhZGQgY29uZmlnIG9wdGlvbnMgZm9yIFZTQzg2MDEgUkdNSUkgUEhZCgogICAgVGhlIFZpdGVzc2UgVlNDODYwMSBSR01JSSBQSFkgaGFzIGludGVybmFsIGRlbGF5IGZvciBib3RoIFJ4CiAgICBhbmQgVHggY2xvY2sgbGluZXMuIFRoZXkgYXJlIGNvbmZpZ3VyZWQgdXNpbmcgMiBiaXRzIGluIGV4dGVuZGVkCiAgICByZWdpc3RlciAweDE3LgogICAgVGhlcmVmb3JlIENGR19WU0M4NjAxX1NLRVdfVFggYW5kIENGR19WU0M4NjAxX1NLRVdfUlggaGF2ZQogICAgYmVlbiBpbnRyb2R1Y2VkIHdpdGggdmFsaWQgdmFsdWVzIDAtMyBnaXZpbmcgMC4wLCAxLjQsMS43IGFuZCAyLjBucyBkZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICAtLQoKICAgICBkcml2ZXJzL25ldC90c2VjLmMgfCAgICA2ICsrKysrKwogICAgIGRyaXZlcnMvbmV0L3RzZWMuaCB8ICAgIDMgKysrCiAgICAgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpjb21taXQgYmQ5OGVlNjBkZjQzZWU2ZGQ2ZjVlYmUzMmM2N2QwM2U5MDUxM2ZmOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgMyAyMzowNzoxNSAyMDA4ICswMjAwCgogICAgUmV2ZXJ0ICJDb2xkRmlyZTogR2V0IGluZm9ybWF0aW9uIGZyb20gdGhlIGNvcnJlY3QgR0NDIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjcxNjZlMDVhNTEzYzA4MDZiNjNiOWRmYjZmMWQ3NzY0NWNlZGUyYQogICAgKHJlcGxhY2VkIGJ5IGNvbW1pdCBjNGU1ZjUyYTU4ZDI3OGVlYmI4N2Y0NzZlMzUzOTcyYzVkYWNlYTQwKS4KCmNvbW1pdCBjNGU1ZjUyYTU4ZDI3OGVlYmI4N2Y0NzZlMzUzOTcyYzVkYWNlYTQwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAzIDIyOjI1OjAwIDIwMDggKzAyMDAKCiAgICBjb25maWcubWs6IHVzZSBjb3JyZWN0IChjcm9zcykgY29tcGlsZXIKCiAgICBTb21lIGNvbmZpZy5tayBmaWxlcyByZWZlcmVuY2UgJChDQykgdG8gdGVzdCBmb3Igc3BlY2lmaWMgdG9vbCBjaGFpbgogICAgZmVhdHVyZXMsIHNvIG1ha2Ugc3VyZSAkKENDKSBnZXRzIHNldCBiZWZvcmUgaW5jbHVkaW5nIGFueSBzdWNoCiAgICBjb25maWcgZmlsZXMuCgogICAgVGhpcyBwYXRjaCByZXBsYWNlcyBjb21taXQgYjcxNjZlMDVhNSAoIkNvbGRGaXJlOiBHZXQgaW5mb3JtYXRpb24gZnJvbQogICAgdGhlIGNvcnJlY3QgR0NDIikuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyN2MzODY4OWQwY2ZkZTBlNDQ0MjM5MzQ1Zjk3YjVlZWNjOWY0MDY3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IE1heSAxIDAyOjEzOjQ0IDIwMDggKzAyMDAKCiAgICBweGE6IGZpeCBwcmV2aW91cyBkZWZpbml0aW9uIG9uIGNwdSBpbml0CgogICAgc3RhcnQuUzoxODM6MTogd2FybmluZzogIklDTVIiIHJlZGVmaW5lZAogICAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHN0YXJ0LlM6MzM6CiAgICBpbmNsdWRlL2FzbS9hcmNoL3B4YS1yZWdzLmg6OTM1OjE6IHdhcm5pbmc6IHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcmV2aW91cyBkZWZpbml0aW9uCiAgICBzdGFydC5TOjE4NzoxOiB3YXJuaW5nOiAiUkNTUiIgcmVkZWZpbmVkCiAgICAuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZkMTJlNjk3ZGU3OTRkNzAwNzY3ZjIyZjk1MGUzMDI2Y2NmNGRhZjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgTWF5IDEgMDI6MTM6NDMgMjAwOCArMDIwMAoKICAgIHB4YTogZml4IHBjbWNpYSBvcGVyYXRpb24gb24gJ2knIG1heSBiZSB1bmRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0ZDc3ZjUxMDJkZmVhYTM2Y2Q1OGQ5YTlmMDgzYmQyY2M0OTE1MjZmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEFwciAzMCAxNjoyNDozNSAyMDA4IC0wNTAwCgogICAgTVBDODYxMEhQQ0Q6IERyb3AgLU8yIGZyb20gdGhlIGJ1aWxkIGZsYWdzCgogICAgTWFrZSB0aGUgZmxhZ3MgdXNlIC1PcyBsaWtlIGFsbCBvdGhlciBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDAwNzJiNzhiZTJiNDFlNWEwY2EzZGRjMzkzMzU1NzRkYzJlODU1YmQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTU6NTA6MzkgMjAwOCArMDIwMAoKICAgIFJUQzogRml4IG1vbnRoIG9mZnNldCBieSBvbmUgcHJvYmxlbSBpbiBNNDFUNjIgUlRDIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIG1vbnRoIGJlaW5nIHJlYWQgYW5kIHdyaXR0ZW4KICAgIGluY29ycmVjdGx5IChvZmZzZXQgYnkgb25lKS4gVGhpcyBvbmx5IGdldHMgdmlzaWJsZSBieSBhbHNvIHVzaW5nCiAgICB0aGUgTGludXggZHJpdmVyIChydGMtbTQxdDgwKS4KCiAgICBUZXN0ZWQgb24gQU1DQyBDYW55b25sYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQxYmExY2FkOGU2NTk4YTI0NjZlN2UyOTc2YzZhMTIyODVkZjYxOQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBNYXkgMyAxMzo1MTo0NCAyMDA4ICswOTAwCgogICAgW01JUFNdIGNwdS9taXBzL2NvbmZpZy5tazogRml4IEdOVSBhc3NlbWJsZXIgbWlub3IgdmVyc2lvbiBwaWNrZXIKCiAgICBDdXJyZW50IHRyaWNrIHRvIHBpY2sgdXAgR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHVzZXMgYSBkb3QoLikgYXMgYQogICAgZGVsaW1pdGVyLCBhbmQgdGFrZSB0aGUgc2Vjb25kIGZpZWxkIHRvIG9idGFpbiBtaW5vciB2ZXJzaW9uIG51bWJlci4gQnV0CiAgICBhcyBjYW4gYmUgZXhwZWN0ZWQsIHRoaXMgZG9lc24ndCB3b3JrIHdpdGggYSB2ZXJzaW9uIHN0cmluZyB3aGljaCBoYXMKICAgIGRvdHMgbW9yZSB0aGFuIG5lZWRzLgoKICAgIEhlcmUncyBhbiBleGFtcGxlOgoKICAgICQgbWlwcy1saW51eC1nbnUtYXMgLS12ZXJzaW9uIHwgZ3JlcCAnR05VIGFzc2VtYmxlcicKICAgIEdOVSBhc3NlbWJsZXIgKFNvdXJjZXJ5IEcrKyBMaXRlIDQuMi0xMjkpIDIuMTguNTAuMjAwODAyMTUKICAgICQgbWlwcy1saW51eC1nbnUtYXMgLS12ZXJzaW9uIHwgZ3JlcCAnR05VIGFzc2VtYmxlcicgfCBjdXQgLWQuIC1mMgogICAgMi0xMjkpIDIKICAgICQKCiAgICBUaGlzIHBhdGNoIHJlc3RyaWN0cyB0aGUgdmVyc2lvbiBmb3JtYXQgdG8gMi5YWC5YWC4uLiBUaGlzIHdpbGwgd29yawogICAgaW4gbW9zdCBjYXNlcy4KCiAgICAkIG1pcHMtbGludXgtZ251LWFzIC0tdmVyc2lvbiB8IGdyZXAgJ0dOVSBhc3NlbWJsZXInIHwgZWdyZXAgLW8gJzJcLlswLTlcLl0rJwogICAgMi4xOC41MC4yMDA4MDIxNQogICAgJCBtaXBzLWxpbnV4LWdudS1hcyAtLXZlcnNpb24gfCBncmVwICdHTlUgYXNzZW1ibGVyJyB8IGVncmVwIC1vICcyXC5bMC05XC5dKycgfCBjdXQgLWQuIC1mMgogICAgMTgKICAgICQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGVhNjM4OTUxYWNlYWQ3ZjEwODZjOTA4YzBiOWYwODZiZWFiODJhMjIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTWF5IDMgMTM6NTE6MjggMjAwOCArMDkwMAoKICAgIFtNSVBTXSBjcHUvbWlwcy9jYWNoZS5TOiBBZGQgZGNhY2hlX2VuYWJsZQoKICAgIFJlY2VudCBib290ZWxmIGNvbW1hbmQgZml4ZXMgKDAxN2U5Yjc5MjVmNzQ4NzhkMGU5NDc1Mzg4Y2NhOWJkYTVlZjk0ODIsCiAgICAiYWxsb3cgcG9ydHMgdG8gb3ZlcnJpZGUgYm9vdGVsZiBiZWhhdmlvciIpIHJlcXVpcmVzIHBvcnRzIHRvIGhhdmUgdGhpcwogICAgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQyYzZmYmVjNDM5N2M5MzZiMThjZDQyNDgyYjY5NzNjZDY3ODFiZGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDEgMjE6MzA6MTYgMjAwOCArMDIwMAoKICAgIG9uZW5hbmQ6IHJlbmFtZSAxNiBiaXQgbWVtb3J5IGNvcHkgaW50byBtZW1jcHlfMTYoKSB0byBhdm9pZCBjb25mbGljdHMKCiAgICBPbmVuYW5kIG5lZWRzIGEgdmVyc2lvbiBvZiBtZW1jcHkoKSB3aGljaCBwZXJmb3JtcyAxNiBiaXQgYWNjZXNzZXMKICAgIG9ubHk7IG1ha2Ugc3VyZSB0aGUgbmFtZSBkb2VzIG5vdCBjb25mbGljdCB3aXRoIHRoZSBzdGFuZGFyZAogICAgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxMmJjNGU5NDI1MWMzNjljNTI5ZmZhNTA1Y2Y1OGIxNDhjMzcyZjdmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEFwciAzMCAyMjozODoxNyAyMDA4ICswMjAwCgogICAgY21kX25hbmQ6IGZpeCB3YXJuaW5nOiBzdHIybG9uZyBuY29tcGF0aWJsZSBwb2ludGVyIHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFiOWVkMjU3NGEzOGM5M2NiMDNkYWQ0MTg4NWZjMDZiZTRiZmM5ZGQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDQgMTE6MTY6MTEgMjAwOCAtMDUwMAoKICAgIEZpeCBjYWxjdWxhdGlvbiBvZiBJMkMgY2xvY2sgZm9yIHNvbWUgODZ4eCBjaGlwcwoKICAgIFNvbWUgODZ4eCBjaGlwcyB1c2UgQ0NCIGFzIHRoZSBiYXNlIGNsb2NrIGZvciB0aGUgSTJDLCBhbmQgb3RoZXJzIHVzZWQgQ0NCLzIuCiAgICBUaGVyZSBpcyBubyBwYXR0ZXJuIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGNoaXBzIHVzZSB3aGljaAogICAgZnJlcXVlbmN5LCBzbyB0aGUgb25seSB3YXkgdG8gZGV0ZXJtaW5lIGlzIHRvIGxvb2sgdXAgdGhlIGFjdHVhbCBTT0MKICAgIGRlc2lnbmF0aW9uIGFuZCB1c2UgdGhlIHJpZ2h0IHZhbHVlIGZvciB0aGF0IFNPQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYzMmY3ZmU3YmQzYTViZGEzYTQ3NjUyMGYwMGUxYWNhN2MyMTAzYTkKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDMwIDEyOjExOjE5IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGV0aGVybmV0IGhhbmcgaXNzdWUgZm9yIG1jZjU0N3hfOHgKCiAgICBUaGUgZXRoZXJuZXQgaGFuZyBpcyBjYXVzZWQgYnkgcmVjZWl2aW5nIGJ1ZmZlciBpbiBEUkFNIGlzIG5vdAogICAgeWV0IHJlYWR5IGR1ZSB0byBhY2Nlc3MgY3ljbGVzIHJlcXVpcmUgbG9uZ2VyIHRpbWUgaW4gRFJBTS4KICAgIFJlbG9jYXRlIERNQSBidWZmZXIgZGVzY3JpcHRvcnMgZnJvbSBEUkFNIHRvIGludGVybmFsIFNSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ODZkOTAxNzZmYzI1N2UwYWI0ZDBkYjA1ZDExZDA3NDliYmVkM2NhCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxMjoxMDo0NyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBjb21waWxhdGlvbiBpc3N1ZSBjYXVzZWQgYnkgbmV3IGNoYW5nZXMgaW4gZnNsX2kyYy5jCgogICAgU2lnbmVkLW9mZi1ieTogTHVpZ2kgQ29taW8gTWFudGVsbGluaSA8bHVpZ2kubWFudGVsbGluaUBpZGYtaGl0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjcxNjZlMDVhNTEzYzA4MDZiNjNiOWRmYjZmMWQ3NzY0NWNlZGUyYQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMzAgMTI6MTA6MjMgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBHZXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY29ycmVjdCBHQ0MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdXJ0IE1haGFuIDxrbWFoYW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzc4ZTdlYzk1ZGE0NzUxZWM4ZmU0NjFiYWFjYWIyYmY3ZDI1MTJhOQpBdXRob3I6IGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20gPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBBcHIgMzAgMTg6MDI6NTkgMjAwOCArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGluIGVudl9uYW5kLmMgaWYgY29tcGlsZWQgZm9yIERhVmluY2kgU2NobW9vZ2llCgogICAgRml4IHdhcm5pbmdzCgogICAgbnZfbmFuZC5jOiBJbiBmdW5jdGlvbiAnc2F2ZWVudic6CiAgICBlbnZfbmFuZC5jOjIwMDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAzIG9mICduYW5kX3dyaXRlJyBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUKICAgIGVudl9uYW5kLmM6IEluIGZ1bmN0aW9uICdlbnZfcmVsb2NhdGVfc3BlYyc6CiAgICBlbnZfbmFuZC5jOjI3NTogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAzIG9mICduYW5kX3JlYWQnIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQoKICAgIGlmIGNvbXBpbGVkIGZvciBkYXZpbmNpX3NjaG1vb2dpZV9jb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CiAgICBBY2sgYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgoKY29tbWl0IDMzYTRhNzBkNDhkNjIyY2M0OTUwYzYwYTg0ZmVjMjNiOTQyMWYyM2UKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTM6MzQ6NDAgMjAwOCArMDIwMAoKICAgIEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxpbmcgbmV0L25ldC5jIGZvciBNUEM4NjEwSFBDRCBib2FyZAoKICAgIE1QQzg2MTBIUENEIGJvYXJkIGFkZHMgLU8yIGdjYyBvcHRpb24gdG8gUExBVEZPUk1fQ1BQRkxBR1MKICAgIGNhdXNpbmcgb3ZlcnJpZGluZyBkZWZhdWx0IC1PcyBvcHRpb24uIE5ldyBnY2MgKHZlci4gNC4yLjIpCiAgICBwcm9kdWNlcyB3YXJuaW5ncyB3aGlsZSBjb21waWxpbmcgbmV0L25ldC5jIGZpbGUgd2l0aCAtTzIKICAgIG9wdGlvbi4gVGhlIHBhdGNoIGlzIGFuIGF0dGVtcHQgdG8gZml4IHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDU4YjU3NWU1NzVjMjVmZGY4Yzg4MTQxZTE0NWRiMjAxZjMwOTIxNDkKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJV2VkIEFwciAzMCAxNToyMzozOCAyMDA4ICswMjAwCgogICAgbHdtb241OiBmaXggb2Zmc2V0IGVycm9yIGluIHN5c21vbjAgUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBMYXVlIDxzYXNjaGEubGF1ZUBsaWViaGVyci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU3NDE5YjI0M2EzNzNkZTRlZTA0MmY3ZDRmNDVmNjZkZTc4NzI0MGQKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJV2VkIEFwciAzMCAxNToxNjozNSAyMDA4ICswMjAwCgogICAgbHdtb241OiBmaXggbWFudWFsIG1lcmdlIGVycm9yIGluIFBPU1QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgoKY29tbWl0IDQyZmZjZWMzZjllYmEwMTBhNjYyZDViNDI5ODE4MTJiNmJlYmZiOWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDMwIDE3OjQ2OjI2IDIwMDggKzAyMDAKCiAgICBjbWRfbmFuZC5jOiBmaXggYW5vdGhlciAnaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZScgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRlMTA5ZDkwOTcwN2UyZGZlODA2YmU1ZWZjM2NkYjEwM2I0N2M4YWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDMwIDE3OjI1OjA3IDIwMDggKzAyMDAKCiAgICBNYWtlZmlsZTogZml4IHBhcmFsbGVsIGJ1aWxkcwoKICAgIFRoaXMgcHJvYmxlbSBzaG93cyB1cCB3aXRoIHBhcmFsbGVsIGJ1aWxkcyBvbmx5OyBpdCByZXN1bHRzIGluCiAgICBzb21ld2hhdCBjcnlwdGljIGVycm9yIG1lc3NhZ2VzIGxpa2UKCgkkIEpPQlM9LWo2IE1BS0VBTEwgbmV0c3RhcgoJQ29uZmlndXJpbmcgZm9yIG5ldHN0YXIgYm9hcmQuLi4KCWFybS1saW51eC1sZDogY2Fubm90IGZpbmQgLWxnZW5lcmljCgltYWtlWzFdOiAqKiogW2VlcHJvbS5zcmVjXSBFcnJvciAxCgogICAgQSBmZXcgYm9hcmRzIChsaWtlIG5ldHN0YXIgYW5kIHZvaWNlYmx1ZSkgbmVlZCBzb21lIGxpYnJhcmllcyBmb3IKICAgIGJ1aWxkaW5nOyBob3dldmVyLCB0aGUgYm9hcmQgTWFrZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgc3VjaAogICAgZGVwZW5kZW5jaWVzIHdoaWNoIG1heSBjYXVzZSBwcm9ibGVtcyB3aXRoIHBhcmFsbGVsIGJ1aWxkcy4gQWRkaW5nCiAgICBzdWNoIGRlcGVuZGVuY2llcyBpcyBkaWZmaWN1bHQgYXMgd2Ugd291bGQgYWxzbyBoYXZlIHRvIHByb3ZpZGUgYnVpbGQKICAgIHJ1bGVzLCB3aGljaCBhbHJlYWR5IGV4aXN0IGluIHRoZSByZXNwZWN0aXZlIGxpYnJhcnkgTWFrZWZpbGVzLgoKICAgIFRvIHNvbHZlIHRoaXMsIHdlIG1ha2Ugc3VyZSB0aGF0IGFsbCBsaWJyYXJpZXMgZ2V0IGJ1aWx0IGJlZm9yZSB0aGUKICAgIGJvYXJkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0ZjI3MDk4ZTViMDczNjk4OWIxM2NkNjFkN2JjYTk0YjM1NzRjZjVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDMwIDE0OjUxOjM2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkYXB0IENhbnlvbmxhbmRzIGZpeGVkIEREUjIgc2V0dXAgdG8gbmV3IERJTU0gbW9kdWxlCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBDYW55b25sYW5kcy9HbGFjaWVyIGZpeGVkIEREUjIgY29udHJvbGxlciBzZXR1cAogICAgdXNlZCBmb3IgTkFORCBib290aW5nIHRvIG1hdGNoIHRoZSB2YWx1ZXMgbmVlZGVkIGZvciB0aGUgbmV3IDUxMk1CCiAgICBESU1NIG1vZHVsZXMgc2hpcHBlZCB3aXRoIHRoZSBwcm9kdWN0aW9ucyBib2FyZHM6CgogICAgQ3J1Y2lhbDogQ1Q2NDY0QUM2NjcuOEZCCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVhOTIwMmE2NTlkYzc1OTk2ZmFjZjE0NzVmMTg2NmExOWE5ZDMxMjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTA6NDk6NDMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gd2l0aCBESU1NcyB3aXRoIDggYmFua3MgaW4gNDR4X3NwZF9kZHIyLmMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB3aXRoIERJTU1zIHRoYXQgaGF2ZSA4IGJhbmtzLiBOb3cgdGhlCiAgICBNQ0lGMF9NQnhDRiByZWdpc3RlciB3aWxsIGJlIHNldHVwIGNvcnJlY3RseSBmb3IgdGhpcyBzZXR1cCB0b28uCgogICAgVGhpcyB3YXMgbm90aWNlZCB3aXRoIHRoZSA1MTJNQiBESU1NIG9uIENhbnlvbmxhbmRzL0dsYWNpZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc2NjE3Mjk5MzU4ZWJiYTI2MGVjYzAyZDMzZThlNzVkOGQxM2RkM2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI5IDIzOjQxOjA2IDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYxLjMuMy1yYzIsIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjdmY2M0YzEzOTkzNzgyMzQyY2Y1Y2QyMGQyMzdhNjI4MTY0OGEwYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMjM6MzU6MjQgMjAwOCArMDIwMAoKICAgIFByZXBhcmUgdjEuMy4zLXJjMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjdiMTZhMGE0ZDU3MWRkMzNiMmI1MTg1YTU0ZjdkZGMzMTFmODlkNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMjM6MzI6MjAgMjAwOCArMDIwMAoKICAgIGNvbW1vbi9lbnZfbmFuZC5jOiBmaXggb25lIG1vcmUgaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBpc3N1ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZWE2ZjY2ODk0Zjk1MjIyOWVlYmZjNGFkMDNjZDIxZmU1YzhiM2YwZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMjE6MzM6MDggMjAwOCArMDIwMAoKICAgIHBvc3QvYm9hcmQvbHdtb241L3N5c21vbi5jOiBmaXggbWFudWFsIG1lcmdlIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzBhMGY4MTQxMmIwYjE4YTZmZDBiZWE5NjA0NTFiYzZjMmNjYTQ5YQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBcHIgMjkgMTI6NTQ6NTkgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZCAtbW5vLXNwZSB0byBlNTAwLzg1eHggYnVpbGRzCgogICAgTmV3ZXIgZ2NjJ3MgbWlnaHQgYmUgY29uZmlndXJlZCB0byBlbmFibGUgYXV0b3ZlY3Rvcml6YXRpb24gYnkgZGVmYXVsdC4KICAgIElmIHdlIGhhcHBlbiB0byBidWlsZCB3aXRoIG9uZSBvZiB0aG9zZSBjb21waWxlcnMgd2Ugd2lsbCBnZXQgU1BFCiAgICBpbnN0cnVjdGlvbnMgaW4gcmFuZG9tIGNvZGUuCgogICAgLW1uby1zcGUgZGlzYWJsZXMgdGhlIGNvbXBpbGVyIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgU1BFCiAgICBpbnN0cnVjdGlvbnMgd2l0aG91dCBvdXIga25vd2xlZGdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGVhMDhlNWJlNjk0MzZhYmNjOTVkM2RhMTE0ZGU0YTJmZjhhNmFiNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBcHIgMjkgMTA6MTg6MzQgMjAwOCAtMDUwMAoKICAgIFVwZGF0ZSAuZ2l0aWdub3JlIGZvciB6bGliLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ1MjM5Y2Y0MTUyMTA5Y2FhOTI1MTQ1Y2NkNDMzNTI5OTAyZGY4ODcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXByIDI5IDEwOjI3OjA4IDIwMDggLTA1MDAKCiAgICA4NXh4Lzg2eHg6IFJlbmFtZSBleHRfcmVmcmVjIHRvIHRpbWluZ19jZmdfMyB0byBtYXRjaCBkb2NzCgogICAgQWxsIHRoZSA4NXh4IGFuZCA4Nnh4IFVNIGRlc2NyaWJlIHRoZSByZWdpc3RlciBhcyB0aW1pbmdfY2ZnXzMKICAgIG5vdCBhcyBleHRfcmVmcmVjLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZWY3ZDMwYjE0Mzk0ZTRjNGExNTMxMThmNTg0NTc2MGNhZGFkYTAyYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBcHIgMjkgMTA6Mjg6MzQgMjAwOCAtMDUwMAoKICAgIDg1eHgvODZ4eDogUmVuYW1lIEREUiBpbml0IGFkZHJlc3MgYW5kIGluaXQgZXh0ZW5kZWQgYWRkcmVzcyByZWdpc3RlcgoKICAgIFJlbmFtZSBpbml0X2FkZHIgYW5kIGluaXRfZXh0X2FkZHIgdG8gbWF0Y2ggdGhlIGRvY3MgYmV0d2VlbgogICAgODV4eCBhbmQgODZ4eC4gIEJvdGggbm93IHVzZSAnaW5pdF9hZGRyJyBhbmQgJ2luaXRfZXh0X2FkZHInLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgY2Y2Y2MwMTQyNzA1NDk2ODQ4NzNhNTk3MmQyNTk1MDUyYzQ2OGNiNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBBcHIgMjggMDI6MjQ6MDQgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZGl0aW9uYWwgZml4ZXMgYW5kIGNsZWFudXAgb2YgTVAgY29kZQoKICAgICogYWRqdXN0IF9fc3Bpbl90YWJsZSBhbGlnbm1lbnQgdG8gbWF0Y2ggZVBBUFIgdjAuOTQgc3BlYwogICAgKiBsb29wIG92ZXIgYWxsIGNwdXMgd2hlbiBkZXRlcm1pbmcgd2hvIGlzIHVwLiAgVGhpcyBmaXhlcyBhbiBpc3N1ZSBpZgogICAgICB0aGUgImJvb3QgY3B1IiBpc24ndCBjb3JlMC4gIFRoZSAiYm9vdCBjcHUiIHdpbGwgYWxyZWFkeSBiZSBpbiB0aGUKICAgICAgY3B1X3VwX21hc2sgc28gdGhlcmUgaXMgbm8gaGFybQogICAgKiBBZGRlZCBzb21lIHByb3RlY3Rpb24gaW4gdGhlIGNvZGUgdG8gZW5zdXJlIHByb3BlciBiZWhhdmlvci4gIFRoZXNlCiAgICAgIGNoYW5nZXMgYXJlIGV4cGxpY2l0bHkgbmVlZGVkIGJ1dCBkb24ndCBodXJ0OgogICAgICAtIEFkZGVkIGVpZWlvIHRvIGVuc3VyZSB0aGUgImhvdCB3b3JkIiBvZiB0aGUgdGFibGUgaXMgd3JpdHRlbiBhZnRlcgoJYWxsIG90aGVyIHRhYmxlIHVwZGF0ZXMgaGF2ZSBvY2N1cnJlZC4KICAgICAgLSBBZGRlZCBpc3luYyB0byBlbnN1cmUgd2UgZG9uJ3QgcHJlZmV0Y2ggbG9hZGluZyBvZiB0YWJsZSBlbnRyaWVzCgl1bnRpbCB3ZSBhIHJlbGVhc2VkCgogICAgVGhlc2UgaXNzdWVzIHdlIHJhaXNlZCBieSBEYXZlIExpdS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGIyZDUyN2E4YjlmYjUwYWZjY2JhZjc5YjU1NDA5NTI1ODVjZGM3NjAKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBBcHIgMjkgMTU6MDY6NDEgMjAwOCArMDIwMAoKICAgIGx3bW9uNTogbWlub3IgY2xlYW4tdXAgdG8gaW5jbHVkZS9jb25maWdzL2x3bW9uNS5oCgogICAgTFdNT041IERTUElDIFBPU1QgdXNlcyB0aGUgd2F0Y2gtZG9nIHNjcmF0Y2ggcmVnaXN0ZXIuIFNvLCBtYWtlCiAgICB0aGUgQ0ZHX0RTUElDX1RFU1RfQUREUiBkZWZpbml0aW9uIG1vcmUgcmVhZGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IGY0YzRkMjFhODg1Y2NjMjIyZmQwYWNkZjY1M2I2ODMyNDllODUxMTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTY6MDg6MDUgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IENGR19NT05JVE9SX0xFTiBvbiBLYXRtYWkgZmFpbHNhdmUgdGhpcyB0aW1lCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEzODEwNWVmZTFkMmIxYTQwYTNhOTdiNGMxZjg1YzIxMTFiZWEyZDgKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBBcHIgMjkgMTM6MzI6NDUgMjAwOCArMDIwMAoKICAgIHBwYyBmbHVzaF9jYWNoZTogYWRkIHdhdGNoLWRvZyB0cmlnZ2VyaW5nIGludG8gdGhlIGxvb3BzLgoKICAgIFNvbWUgYm9hcmRzIChlLmcuIGx3bW9uNSkgbmVlZCByYXRoZXIgYSBmcmVxdWVudCB3YXRjaC1kb2cKICAgIGtpY2tpbmcuIFNpbmNlIHRoZSB0aW1lIGl0IHRha2VzIGZvciB0aGUgZmx1c2hfY2FjaGUoKSBmdW5jdGlvbgogICAgdG8gY29tcGxldGUgaXRzIGpvYiBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIGRhdGEgYmVpbmcgZmx1c2hlZCwgb25lCiAgICBtYXkgZW5jb3VudGVyIHdhdGNoLWRvZyByZXNldHMgb24gc3VjaCBib2FyZHMgd2hlbiwgZm9yIGV4YW1wbGUsCiAgICBkb3dubG9hZCBiaWcgZmlsZXMgb3ZlciBldGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgY2FiOTlkNmYzMjgxYWI2Nzg0ZmVjY2Y5OGI5YjQyNWRhYTU4NDE4YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxNDo0NDo1NCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gd2FybmluZyBpbiBkZW5hbGlfc3BkX2RkcjIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZWM5ZDc4ZmU1Y2Q1ODVkMjg2ODczMWZhMTA4Y2ExZTYyNzMwZTcwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI5IDE0OjEyOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBLYXRtYWkgQ0ZHX01PTklUT1JfTEVOCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg1YWQxODRiM2IyYjBmOGFmOTIyODQ3NzMwM2M1NWRjYTFiNTJlZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTM6NTc6MDcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ29tcGxldGUgcmVtb3ZlIGJvZ3VzIGRmbHVzaCgpCgogICAgU2luY2UgdGhlIGN1cnJlbnQgZGZsdXNoKCkgaW1wbGVtZW50YXRpb24gaXMga25vdyB0byBoYXZlIHNvbWUgcHJvYmxlbXMKICAgIChhcyBzZWVtIG9uIGx3bW9uNSBFQ0MgaW5pdCkgdGhpcyBwYXRjaCByZW1vdmVzIGl0IGNvbXBsZXRlbHkgYW5kIHJlcGxhY2VzCiAgICBpdCBieSB1c2luZyBjbGVhbl9kY2FjaGVfcmFuZ2UoKS4KCiAgICBUZXN0ZWQgb24gS2F0bWFpIHdpdGggRUNDIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEzNTg0NmQ2ZWNhYWQyNTVhZDI4ZDkzZWJiYjc4YjNkNWRhNjhjZGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTM6MzY6NTEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIEVDQyBpbml0aWFsaXphdGlvbiBvbiBsd21vbjUgdG8gdXNlIGNsZWFuX2RjYWNoZV9yYW5nZSgpCgogICAgQXMgaXQgc2VlbXMgdGhlICJvbGQiIEVDQyBpbml0aWFsaXphdGlvbiByb3V0aW5lIGJ5IHVzaW5nIGRmbHVzaCgpIGRpZG4ndAogICAgd3JpdGUgYWxsIGxpbmVzIGluIHRoZSBkY2FjaGUgYmFjayB0byBtZW1vcnkgb24gbHdtb241LiBUaGlzIGNvdWxkIGxlYWQKICAgIHRvIEVDQyBlcnJvciB1cG9uIExpbnV4IGJvb3RpbmcuIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgcHJvZ3JhbV9lY2MoKQogICAgcm91dGluZSB0byBub3cgdXNlIGNsZWFuX2RjYWNoZV9yYW5nZSgpIGluc3RlYWQgb2YgZGZsdXNoKCkuCiAgICBjbGVhbl9kY2FjaGVfcmFuZ2UoKSB1c2VzIGRjYnN0IHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50IGluIHRoaXMKICAgIGNhc2UuCgogICAgU2luY2UgZGZsdXNoKCkgaXMga25vd24gaXMgY2F1c2UgcHJvYmxlbXMsIHRoaXMgcm91dGluZSB3aWxsIGJlCiAgICByZW1vdmVkIGNvbXBsZXRlbHkgYW5kIHJlcGxhY2VkIGJ5IGNsZWFuX2RjYWNoZV9yYW5nZSgpIHdpdGggYW4KICAgIGFkZGl0aW9uYWwgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE4ZWMxOWU0YWExYTA0NWRmYmYyYzdjMmUzMzk2MzQ4OGU5MmQ3NTcKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBBcHIgMjggMTg6MTk6MzQgMjAwOCArMDIwMAoKICAgIFBPU1Q6IGZpeCBNYWtlZmlsZXMgZm9yIG1wYzh4eCwgbHdtb24sIGFuZCBuZXR0YSBQT1NUcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZWVhNWE3NDNhMjE5M2VmMmEwNWI5YmM2ZGM0NDdiYTI0MTQxNmYzNQpBdXRob3I6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnb29nbGVtYWlsLmNvbT4KRGF0ZToJTW9uIEFwciAyOCAwODo0Nzo0NyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXh1cCBlYmMgY2xvY2sgaW4gRkRUIGZvciA0MDVHUC9FUAoKICAgIE9uIHBwYzQwNUVQIGFuZCBwcGM0MDVHUCAoYXQgbGVhc3QpIHRoZSBlYmMgaXMgZGlyZWN0bHkgYXR0YWNoZWQgdG8gdGhlIHBsYgogICAgYW5kIG5vdCB0byB0aGUgb3BiLiBUaGlzIHBhdGNoIHdpbGwgdHJ5IHRvIGZpeHVwIC9wbGIvZWJjIGlmIC9wbGIvb3BiL2ViYwogICAgZG9lc24ndCBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ21haWwuY29tPgoKY29tbWl0IDJlZjc1MDNhNTkzYzc3YTgwYzJhMDU0MDExOTcwMjI3YzRiNjI3NzQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgQXByIDI0IDA3OjU3OjE3IDIwMDggKzAyMDAKCiAgICBORTIwMDA6IEZpeCByZWdyZXNzc2lvbiBpbnRyb2R1Y2VkIGJ5IGU3MTAxODVhYWU5MCBvbiBub24gQVg4ODc5NgoKICAgIE1vdmUgbm9uLWlubGllZCBmdW5jdGlvbnMgaW50byBzcGVjaWZpYyBkcml2ZXJzIGZpbGUKICAgIFNldCBnZXRfcHJvbSBhcyB3ZWFrCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA0MGNiOTBlZTJiOTdkYjFmNjk3ZTFiNTRmMTlhNTQ4ZmZjOTZkNzFiCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTc6MDQ6MTkgMjAwOCArMDIwMAoKICAgIG5ldDogbWFrZSBBUlAgdGltZW91dCBjb25maWd1cmFibGUKCiAgICBDdXJyZW50bHkgdGhlIHRpbWVvdXQgd2FpdGluZyBmb3IgYW4gQVJQIHJlcGx5IGlzIGhhcmQgc2V0IHRvIDUgc2Vjb25kcy4KICAgIE9uIGkuTVgzMUFEUyBkdWUgdG8gYSBoYXJkd2FyZSAic3RyYW5nZW5lc3MiIHVwIHRvIGZvdXIgZmlyc3QgSVAgcGFja2V0cwogICAgdG8gdGhlIGJvYXJkcyBnZXQgbG9zdCwgd2hpY2ggdHlwaWNhbGx5IGFyZSBBUlAgcmVwbGllcy4gQnkgY29uZmlndXJpbmcKICAgIHRoZSB0aW1lb3V0IHRvIGEgbG93ZXIgdmFsdWUgd2Ugc2lnbmlmaWNhbnRseSBpbXByb3ZlIHRoZSBmaXJzdCBuZXR3b3JrCiAgICB0cmFuc2ZlciB0aW1lIG9uIHRoaXMgYm9hcmQuIFRoZSB0aW1lb3V0IGlzIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsCiAgICBsYXRlciBpbnRlcm5hbGx5IGl0IGlzIGNvbnZlcnRlZCB0byBkZWNpc2Vjb25kcywgYmVjYXVzZSBpdCBoYXMgdG8gYmUKICAgIGNvbnZlcnRlZCB0byBoYXJkd2FyZSB0aWNrcywgYW5kIENGR19IWiByYW5nZXMgZnJvbSA5MDAgdG8gMjcwMDAwMDAgb24KICAgIGRpZmZlcmVudCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxM2UwYjhmN2NhOWQyOTI2N2JmMDFkN2EwMWU1MjFhMDUxN2FkY2UxCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTM6MzY6MTggMjAwOCArMDIwMAoKICAgIG1pbm9yIGNzODkwMCBkcml2ZXIgY2xlYW4gdXAKCiAgICBSZW1vdmUgYSByZWR1bmRhbnQgcmVnaXN0ZXIgZGVmaW5pdGlvbiwgY2xlYW4gdXAgc29tZSBjb2Rpbmcgc3R5bGUKICAgIHZpb2xhdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA3MDdmYTkxN2NjYTI0YzBmMjI3NzZmNDhhYzRhNmZhNWU1MTg5YjEwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAyMjowMTowNCAyMDA4ICswMjAwCgogICAgamZmczJfMXBhc3MuYzogZml4IGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmFlZTAwZjVlNmExY2YyOWQ4ZmU4ZmRjOWI3MjUyZmJkMzExMTVkOQpBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglUdWUgQXByIDEgMTA6MTA6MTggMjAwOCArMDIwMAoKICAgIGx3bW9uNTogdXBkYXRlIGRzUElDIFBPU1Qgc3BlemlmaWNhdGlvbgoKICAgIFRoZSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgbHdtb241IGJvYXJkIGRzUElDIFBPU1QgZ290IGNoYW5nZWQuCiAgICBBbHNvIGFkZCBkZWZpbmVzIGZvciB0aGUgdGVtcGVyYXR1cmVzICBhbmQgdm9sdGFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIExhdWUgPHNhc2NoYS5sYXVlQGxpZWJoZXJyLmNvbT4KCmNvbW1pdCAzZTQ2MTVhYjdmZjM4NzgxYTVkZDgwZDBmNDliOWFmNTViNGZlMGI3CkF1dGhvcjogU2FzY2hhIExhdWUgPFNhc2NoYS5MYXVlQGdteC5iaXo+CkRhdGU6CVR1ZSBBcHIgMSAxNToxMzowMyAyMDA4ICswMjAwCgogICAgRml4IHdhdGNoZG9nIFBPU1QgZm9yIGx3bW9uNQoKICAgIElmIHRoZSBoYXJkd2FyZSB3YXRjaGRvZyBkZXRlY3RzIGEgdm9sdGFnZSBlcnJvciwgdGhlIHdhdGNoZG9nIHNldHMKICAgIEdQSU82MiB0byBsb3cuIFRoZSB3YXRjaGRvZyBQT1NUIGhhcyB0byBkZXRlY3QgdGhpcyBsb3cgbGV2ZWwuCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIExhdWUgPGxlZ2xhczBAbGVncGMxODAubGVnLmxpZWJoZXJyLmk+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRkNTc0OGJjZDY2OWY0NmFlYjY2ODZjMWIzNDEzMjM4NDM3MzhjY2MKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxNDozNzoxNCAyMDA4ICswMjAwCgogICAgcnRsODE2OTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgogICAgRml4IG11bHRpcGxlIGNvbXBpbGVyIHdhcm5pbmdzIHJlbGF0ZWQgdG8gYXJndW1lbnQgdHlwZSBtaXNtYXRjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KCmNvbW1pdCA0MTNiZjU4NjI2NmY4NmM2YmRiYzZjNmQxNDBmNjdhMTVhZjRjNGYxCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+CkRhdGU6CU1vbiBBcHIgMjggMTQ6MzY6MDYgMjAwOCArMDIwMAoKICAgIElERTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgogICAgVGhlIElERSBkcml2ZXIgY2FuIHVzZSAzMi1iaXQgYWRkcmVzc2VzIGluIExCQSBtb2RlLCBpbiB3aGljaCBjYXNlIGl0CiAgICBzcGl0cyBtdWx0aXBsZSB3YXJuaW5ncyBkdXJpbmcgY29tcGlsYXRpb24uIEZpeCB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IGRiOTA4NGRlMjhjNDZhYzgxYzhmNjgxNzIyY2IwZDc0MTFiZTRkN2YKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxNDozNTo1NyAyMDA4ICswMjAwCgogICAgTGlua1N0YXRpb246IGZpeCBjb21waWxlciB3YXJuaW5nLCBhZGQgYSBtYWludGFpbmVyCgogICAgb3V0Xzggd2FudHMgYSBwb2ludGVyIHRvIGFuIHVuc2lnbmVkIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gQWRkIGEKICAgIG1haW50YWluZXIgZm9yIExpbmtzdGF0aW9uIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KCmNvbW1pdCBjNzFhYmJhM2NiNjdiMDYzZjc4OWYxN2FiZjZjNzQ0NzcyN2MwY2Q1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxNDo1NToxMiAyMDA4ICswMjAwCgogICAgY21kX25hbmQuYzogZml4ICJkaWZmZXIgaW4gc2lnbmVkbmVzcyIgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjJjMjg4YTM1MzQxYWQwMmFjMDNiMTU2M2Q3ODY3NjNjOWM4ZjE1OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMTI6NDg6NDcgMjAwOCArMDIwMAoKICAgIHBjbmV0LmM6IGZpeCBhIG1lcmdlIGlzc3VlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0Y2E3OWY0NzdlYmQyNWE2ODcyZTYxOTZkODBlMmY1ZWZmNDQxMzc2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxMjowODoxOCAyMDA4ICswMjAwCgogICAgTkFORDogZml4IHNvbWUgc3RyaWN0LWFsaWFzaW5nIGNvbXBpbGVyIHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1Y2QwMTMwZWNjNzlkNmRjZGUxYjFhYzI1M2FiYzQ1N2NhOGMzMTE1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDExOjM3OjE0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxlIHdhcm5pbmcgb2YgaGN1NCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1Mzc5Y2QxNWRkNmM3NGFjNTE0OTliY2UzNDU1YmY2ZTBjZGJlOWYxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxMTozMToyMyAyMDA4ICswMjAwCgogICAgTVBDODMyM0VSREI6IGZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnbWFjX3JlYWRfZnJvbV9lZXByb20nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3NjAyZWQ1MGEyZjBlZjNkYzhkN2RhOTNmMTE2ZGU1MDI4OGY1YjU5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDAwOjI1OjMyIDIwMDggKzAyMDAKCiAgICBteDMxYWRzOiBmaXggbG9hZGFkZHIgZW52aXJvbm1lbnQgdmFyaWFibGUgZGVmaW5lCgogICAgQXJpdGhtZXRpYyBleHByZXNzaW9ucyBkbyBub3QgZ2V0IGV2YWx1YXRlZCB1bmRlciBzdHJpbmdpZmljYXRpb24uIFJlbW92ZQogICAgZGVmYXVsdCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24sIGFkZCBESENQIGNvbW1hbmQgc3VwcG9ydC4gVGhhbmtzIHRvIEZlbGl4CiAgICBSYWRlbnNreSBmb3IgcmVwb3J0aW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAxNDRlZWM3NzdhYzA3YmNiMTJiZDM4MjQ1YTVhMjg5ZjY5NGE3Zjk4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxMDo1NToyNCAyMDA4ICswMjAwCgogICAga2F0bWFpOiBmaXggc2VjdGlvbiBvdmVybGFwIHByb2JsZW0KCiAgICBTaW5jZSB3ZSBkaWRuJ3Qgd2FudCB0byByZW1vdmUgZmVhdHVyZXMgZnJvbSB0aGUgY29uZmlndXJhdGlvbiwgd2UKICAgIGRlY2lkZWQgdG8gaW5jcmVhc2UgdGhlIFUtQm9vdCBpbWFnZSBzaXplIChhZGQgb25lIGZsYXNoIHNlY3RvcikuCgogICAgQWxzbyBjaGFuZ2VkIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IGRlZmluaXRpb24gdG8gbWFrZSBpdAogICAgaW5kZXBlbmRlbnQgb2Ygc3VjaCBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk0MWQ2OTZkMjU2MjRlM2NjNjVlYmY5MjQxOTk1NDFhY2Y1MmQ3NGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDEwOjU1OjI0IDIwMDggKzAyMDAKCiAgICBrYXRtYWk6IGZpeCBzZWN0aW9uIG92ZXJsYXAgcHJvYmxlbQoKICAgIFNpbmNlIHdlIGRpZG4ndCB3YW50IHRvIHJlbW92ZSBmZWF0dXJlcyBmcm9tIHRoZSBjb25maWd1cmF0aW9uLCB3ZQogICAgZGVjaWRlZCB0byBpbmNyZWFzZSB0aGUgVS1Cb290IGltYWdlIHNpemUgKGFkZCBvbmUgZmxhc2ggc2VjdG9yKS4KCiAgICBBbHNvIGNoYW5nZWQgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgZGVmaW5pdGlvbiB0byBtYWtlIGl0CiAgICBpbmRlcGVuZGVudCBvZiBzdWNoIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDNjNmNkMzlmOTE4NDE0M2ZkOGM1Mzc4NzJiM2Q0YjJlMDNmMTQ2NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBBcHIgMjYgMTE6NDQ6NDQgMjAwOCAtMDUwMAoKICAgIHBvc3Q6IEZpeCBidWlsZGluZyB3aXRoIE89CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmZDc1MzFjMWU5ZDU2YjllNWUwNmQyYzBlMDJiNzk4ZGFiNzJmNzBjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciAyNiAwMTo1NTowMCAyMDA4ICswMjAwCgogICAgUHJlcGFyZSB2MS4zLjMtcmMxCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxOWNmMmVjOTBkOGNlNTJkYTYwYzE2OTM2OTNjNDA0OGNiODEwOTY3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciAyNiAwMToyNTozOSAyMDA4ICswMjAwCgogICAgcG9zdC9NYWtlZmlsZTogbWFrZSBzdXJlIHRvIHVzZSB0aGUgY29ycmVjdCBmbGFncwoKICAgIEFSRkxBR1Mgd2FzIG5vdCBzZXQsIHdoaWNoIGNhdXNlZCAicHBjXzh4eC1hcjogY3JlYXRpbmcgbGliZ2VucG9zdC5hIgogICAgbWVzc2FnZXMgdG8gYmUgcHJpbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDdlZDQwMTE3MzNlN2RjYThmNjRkMjEyOTFlNDI5NDY2MmY3ZGMzZTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDI2IDAwOjM0OjQyIDIwMDggKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjkyMDRlMTUxNzM4MzRmZjhkMTIzZTM2Mjc5Y2U0OWMzYzZjNzRmYwpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyMCAxMDozODoxMiAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBFbmFibGUgU1BJIGFuZCBNQzEzNzgzL1JUQyBzdXBwb3J0IGZvciB0aGUgTGl0ZWtpdCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBTUEkgYW5kIE1DMTM3ODMvUlRDIHN1cHBvcnQgZm9yIHRoZSBMaXRla2l0IGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBmOTdhYmJmYjQ3ZDllNDA3MzU0ZTE1N2NhZTNmNjM2OWU0NjBjZDM3CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyNSAwMTowODozMiAyMDA4IC0wNTAwCgogICAgTVBDODU0NERTOiBkZWNvZGUgcGNpZTMgZW5kLXBvaW50IGNvbmZpZ3VyYXRpb24gY29ycmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI5MjE4OGUxNTUyM2MxNjVjNDI2OTQwM2ZkY2QzM2MyNmQ4OTE3NmUKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMDA6NTU6MDkgMjAwOCAtMDUwMAoKICAgIE1QQzg1NDREUzogUmVtb3ZlcyB0aGUgdW5rbm93biBmbGFzaCBtZXNzYWdlIGluZm9ybWF0aW9uCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSB1bmtub3duIGZsYXNoIG1lc3NhZ2UgaW5mb3JtYXRpb246CiAgICAnIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDEgLSBTaXplID0gMHhkZWFkYmVlZiA9IC0yODYyNjEyNDggTUInCiAgICBUaGlzIHVua25vd24gZmxhc2ggbWVzc2FnZSBpcyBjYXVzZWQgYnkgUHJvbUpldC4KICAgIFNvbWUgb2YgdGhlIGJvYXJkIHVzZXIgaXMgdW5oYXBweSB3aXRoIHRoaXMgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiMjExNTc1NzQwM2JlZWYwYWM2YmMyYzZjM2IyNGYzMTI1NmE3NWQyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAyNCAxNDowNzozOCAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogYnVtcCBsb2FkYWRkciBvdmVyIGZkdGFkZHIgdG8gMHg1MDAwMDAKCiAgICB0aGlzIHNlZW1zIGFzIGEgZ29vZCBjb21wcm9taXNlIGJldHdlZW4gaHVtYW4gbWVtb3J5LCB0eXBpbmcsCiAgICBhbmQgbGFzdCBidXQgbm90IGxlYXN0LCB0byBhY2NvbW1vZGF0ZSBmb3IgY3VycmVudCBhbmQgZnV0dXJlIGtlcm5lbCBibG9hdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmU1YTcxOTAyNjVhMzRkOTY4NTc4ZmYyNjY1NDljNjBmNmY1NzY1NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEFwciAxNSAxMzoxMjoyMyAyMDA4ICswODAwCgogICAgbXBjODN4eDogY2xlYW4gdXAgdGhlIHJlYWRtZSBmb3IgODN4eCBib2FyZHMKCiAgICAxLiBjb3JyZWN0IHRoZSB0eXBvCiAgICAyLiBjb3JyZWN0IHRoZSBtZW1vcnkgbWFwIGZvciA4Mzd4ZXJkYiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmNhZTUyYTY4MTllZTlkYWQ1ZDBkOTZjZDdkYWViMjAxMDhkNDVmZgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEFwciAxNSAxMzoxMToxMSAyMDA4ICswODAwCgogICAgbXBjODN4eDogcmVtb3ZlIHRoZSB1bnVzZWQgQ1BNJ3Mgc3R1ZmYKCiAgICBUaGUgTVBDODN4eCBmYW1pbHkgbmV2ZXIgaGF2ZSBDUE0gYmxvY2ssIHNvIHJlbW92ZSBpdCBmcm9tIDgzeHguCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjNhZDYzMjVhOGFjMDA5N2E1NGI0MThhMzI4ODkyNmIwNDg0YjE4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBBcHIgMTggMTY6Mjk6NDAgMjAwOCArMDIwMAoKICAgIGNmaS1mbGFzaDogQWRkIENGR19GTEFTSF9BVVRPUFJPVEVDVF9MSVNUCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgY29uZmlndXJhYmxlIGZsYXNoIGF1dG8gcHJvdGVjdGlvbiBsaXN0IHRoYXQgY2FuIGJlIHVzZWQKICAgIHRvIG1ha2UgVS1Cb290IHByb3RlY3QgZmxhc2ggcmVnaW9ucyBpbiBmbGFzaF9pbml0KCkuCgogICAgVGhlIGlkZWEgaGFzIGJlZW4gZGlzY3Vzc2VkIG9uIHRoZSB1LWJvb3QgbWFpbGluZyBsaXN0IHN0YXJ0aW5nCiAgICBvbiBOb3YgMTh0aCwgMjAwNy4KCiAgICBFdmVuIHRoaXMgcGF0Y2ggYnJpbmdzIGEgbmV3IGZlYXR1cmUgaXQgaXMgdXNlZCBhcyBhIGJ1Z2ZpeCBmb3IgNHh4CiAgICBwbGF0Zm9ybXMgd2hlcmUgZmxhc2hfaW5pdCgpIGRvZXMgbm90IGNvbXBsZXRlbHkgcHJvdGVjdCB0aGUKICAgIG1vbml0b3IncyBmbGFzaCByYW5nZSBpbiBhbGwgc2l0dWF0aW9ucy4KCiAgICBVLUJvb3QgcHJvdGVjdHMgdGhlIGZsYXNoIHJhbmdlIGZyb20gQ0ZHX01PTklUT1JfQkFTRSB0bwogICAgKENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAgLSAxKSBieSBkZWZhdWx0LiBUaGlzIGRvZXMgbm90CiAgICBpbmNsdWRlIHRoZSByZXNldCB2ZWN0b3IgYXQgMHhmZmZmZmZmYy4KCiAgICBFeGFtcGxlOgogICAgI2RlZmluZSBDRkdfRkxBU0hfQVVUT1BST1RFQ1RfTElTVCB7ezB4ZmZmODAwMDAsIDB4ODAwMDB9fQoKICAgIFRoaXMgY29uZmlnIG9wdGlvbiB3aWxsIGF1dG8gcHJvdGVjdCB0aGUgbGFzdCA1MTJrIG9mIGZsYXNoIHRoYXQKICAgIGNvbnRhaW5zIHRoZSBib290bG9hZGVyIG9uIGJvYXJkIGxpa2UgQVBDNDA1IGFuZCBQTUM0MDUuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDBkOTFhZTNhY2I0ZjI5ZDFhMmEzYTc2Njc0NzQ3OGVkNTRlMjg0OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyNSAxMzo1OTowMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgZG91YmxlIGRlZmluZXMgaW4gbHdtb241LmgKCiAgICBpbnRyb2R1Y2VkIHdpdGggbGF0ZXN0IGx3bW9uNS9QT1NUIG1lcmdlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1OTAzNzhmYjljNjg2NzA5NDkyY2ViMTQyODI1Y2QwNTgyNTU5NTYKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXByIDI1IDEzOjU0OjAyIDIwMDggKzAyMDAKCiAgICBVc2Ugd2F0Y2hkb2ctYXdhcmUgZnVuY3Rpb25zIHdoZW4gY2FsY3VsYXRpbmcgaGFzaGVzIG9mIGltYWdlcyAtIHRha2UgdHdvCgogICAgU29tZSBmaWxlcyBkaWRuJ3QgZ2V0IHVwZGF0ZWQgcHJvcGVybHkgd2l0aCB0aGUgIlVzZSB3YXRjaGRvZy1hd2FyZQogICAgZnVuY3Rpb25zIHdoZW4gY2FsY3VsYXRpbmcgaGFzaGVzIG9mIGltYWdlcyIgY29tbWl0LCB0aGlzIGNvbW1pdAogICAgZml4ZXMgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZTA0OGM0MzhlMjBlYzg5YjQ5ZGE1ZjA4NWY4Zjc1NmViYTZlNTg3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTI6MDE6MzkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIGJvb3Rjb3VudCBsaW1pdCBoYW5kbGluZyBmb3IgQVBDNDA1IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDFkZTZiMjhiZTVkMTA3YWU5MGFkN2E4YTQzNjUzYzQ5OTY2ZThhZmUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXByIDI1IDEyOjEwOjA5IDIwMDggKzAyMDAKCiAgICBVc2Ugd2F0Y2hkb2ctYXdhcmUgZnVuY3Rpb25zIHdoZW4gY2FsY3VsYXRpbmcgaGFzaGVzIG9mIGltYWdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZDAwY2UwOTA0MGQzMTAwZTJjNzk5OGVmNTZkYjYyYzJkMjBkOWVlMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjUgMTI6NDQ6MDggMjAwOCArMDIwMAoKICAgIFVTQjogZml4IG1vcmUgR0NDIDQuMi54IGFsaWFzaW5nIHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGFmZjRmODY0NDhmNjU4NjkzMGYwYTNiZTdmYzRiMGRkY2Y0NTA5ODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDI1IDEyOjQxOjUzIDIwMDggKzAyMDAKCiAgICBsaWJfZ2VuZXJpYy9jcmMzMi5jOiBhZGQgbWlzc2luZyAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDAzY2NkYmNkNTYwMjYxMGNlYTRiZDBkYjdlNDhlMWVmODgxYTUxZWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDI1IDExOjUyOjIxIDIwMDggKzAyMDAKCiAgICBsaWJfZ2VuZXJpYy9jcmMzMi5jOiBmaXggY29tcGlsZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyNGJmZWRiZDBiZTRkY2FhOTQ4NjE0MDc4MjBkNmE3MGZlYTdlMDNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDIyIDEyOjIwOjMyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFBhc3MgUENJZSByb290LWNvbXBsZXgvZW5kcG9pbnQgY29uZmlndXJhdGlvbiB0byBMaW51eCB2aWEgdGhlIGZkdAoKICAgIFRoZSBQQ0llIHJvb3QtY29tcGxleC9lbmRwb2ludCBzZXR1cCBhcyBjb25maWd1cmVkIHZpYSB0aGUgInBjaWVfbW9kZSIKICAgIGVudmlyb25tZW50IHZhcmlhYmxlIHdpbGwgbm93IGdldCBwYXNzZWQgdG8gdGhlIExpbnV4IGtlcm5lbCBieSBzZXR0aW5nCiAgICB0aGUgZGV2aWNlX3R5cGUgcHJvcGVydHkgb2YgdGhlIFBDSWUgZGV2aWNlIHRyZWUgbm9kZS4gRm9yIG5vcm1hbCByb290LQogICAgY29tcGxleCBjb25maWd1cmF0aW9uIGl0IHdpbGwga2VlcCBpdHMgZGVmYXVsdHMgdmFsdWUgb2YgInBjaSIgYW5kIGZvcgogICAgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBpdCB3aWxsIGdldCBjaGFuZ2VkIHRvICJwY2ktZW5kcG9pbnQiLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjA2MTViZjYwMGQyY2FmNWFhMjk1OGY0N2Y1YmEzNjRjNTJkNWU3CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgQXByIDI0IDEwOjMwOjUzIDIwMDggKzAyMDAKCiAgICBsd21vbjU6IHdhdGNoZG9nIFBPU1QgZml4CgogICAgVXNlIHRoZSBHUFQwX01BU0t4IHJlZ2lzdGVycyBhcyB0aGUgdGVtcG9yYXJ5IHN0b3JhZ2UgZm9yIHdhdGNoLWRvZwogICAgdGltZXIgUE9TVCB0ZXN0IGluc3RlYWQgb2YgR1BUMF9DT01QeC4gVGhlIGxhdHRlcgogICAgKEdQVDBfQ09NUDEuLkdQVDBfQ09NUDUpIGFyZSB1c2VkIGZvciB0aGUgbG9nLWJ1ZmZlciBoZWFkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3OGU0ODgyOTg4MjRiYzE1MGI1ZjNlYmY3OTU4Y2Q3MWZhMmFmMWI5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxODoxMDoxNCAyMDA4IC0wNTAwCgogICAgbGliX3BwYzogUmV2ZXJ0ICJNYWtlIE1QQzgzeHggb25lIHN0ZXAgY2xvc2VyIHRvIGZ1bGwgcmVsb2NhdGlvbi4iCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA3MDQzMWU4YTczOTNiNmI3OTNmNzc5NTdmOTViOTk5ZmM5YTI2OWI4IHdoaWNoIGhhcwogICAgcHJvdmVuIHByb2JsZW1hdGljIGdldHRpbmcgcmlnaHQgZnJvbSB0aGUgc3RhcnQgYXQgbGVhc3Qgb24gODN4eCBhbmQKICAgIDR4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5OTcxNWI4ZWJmYzUwMGYzZjQwZTAxYjM2YjY0ZDQ3MzkzODQ0M2QKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAxOCAxNDo1MDowMSAyMDA4ICswMjAwCgogICAgUmVhbGluaW5nIHNvbWUgaGVhZGVyIGRlZmluaXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDRhY2JjNmM3Zjk5M2NhZTQwOWM0MjQ2MTU0MTVhM2U3NjgyMGYxM2QKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgQXByIDI0IDA3OjU3OjE2IDIwMDggKzAyMDAKCiAgICBORTIwMDA6IGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiNGFmZjFmZmFmNzEyMDAzMmM2NTMzNTdjMDA3ZmFhMTRmNzRkMjlkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEFwciAyMyAwMDoxMTo0NyAyMDA4ICswOTAwCgogICAgcWVtdS1taXBzLmg6IEFkZCBDRkkgc3VwcG9ydAoKICAgIENPTkZJR19FTlZfT1ZFUldSSVRFIGlzIGFsc28gYWRkZWQuCgogICAgVGhpcyBwYXRjaCBpcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNGExZjExYjQ1YTgyOTA4ZTViMGRmNjAyZDcwMzA4MjQxM2E2YjdlZApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBBcHIgMjIgMjI6NDc6MjcgMjAwOCArMDkwMAoKICAgIGRvYy9SRUFETUUubWlwczogQWRkIE1JUFMgbm90ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDIxNWIwMWJiYThiYzY2MmQzNWY3MmIwODQ3MDBiMTkyZDM2N2RmYjQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgQXByIDIyIDEyOjI3OjU2IDIwMDggKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgY2FsY3VsYXRpbmcgaGFzaGVzIHdpdGggd2F0Y2hkb2cgdHJpZ2dlcmluZwoKICAgIEltcGxlbWVudCB3YXRjaG9kZy1hd2FyZSB2YXJpYW50cyBvZiBoYXNoIGNhbGN1bGF0aW9uIGZ1bmN0aW9uczoKICAgIC0gY3JjMzJfd2QoKQogICAgLSBtZDVfd2QoKQogICAgLSBzaGExX2NzdW1fd2QoKQogICAgVGhlIGFib3ZlIGZ1bmN0aW9ucyBjYWxjdWxhdGUgdGhlIGhhc2ggb2YgdGhlIGlucHV0IGJ1ZmZlciBpbiBjaHVua3MsCiAgICB0cmlnZ2VyaW5nIHRoZSB3YXRjaGRvZyBhZnRlciBwcm9jZXNzaW5nIGVhY2ggY2h1bmsuIFRoZSBjaHVuayBzaXplCiAgICBpcyBnaXZlbiBhcyBhIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgODg3NWUzYWJhYjk4NmRmOTMwMTY3Y2U1YzFhYzRmOTVkY2FjYzgxYwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJV2VkIEFwciAyMyAxMTowMjoxMiAyMDA4ICswOTAwCgogICAgcWVtdS1taXBzOiBDbGVhbnVwIHdoaXRlc3BhY2UsIGluZGVudGF0aW9uLCBldGMuCgogICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgogICAgVGhpcyBwYXRjaCB3YXMgb3JpZ2luYWxseSBzdWJtaXR0ZWQgYnkgSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQuCiAgICBUaGVuIEkgcmUtY3JlYXRlZCBmcm9tIHNjcmF0Y2gsIGFuZCBjaGFuZ2VkIG1vcmUgbGluZXMgdGhhbiB0aGUgb3JpZ2luYWwuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMzg2NTYzMTk3ZTNhNTBiMGU5N2FkOWFhZTg3ZjU3ZDlhYWI5MDlhYgpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglXZWQgT2N0IDEwIDIzOjAyOjA5IDIwMDcgKzAzMDAKCiAgICBGaXhlZCBwY25ldCBpb19iYXNlCgogICAgQnVzIGFuZCBwaHlzIGFkZHJlc3MgYXJlIG5vdCBhbHdheXMgdGhlIHNhbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCAxMWVhMjZmZDFjYjYzYzkxNDAzZmUwNGE2ZWVhOTc1Y2Q0MTg2MDNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAyNCAyMzo0NDoyNiAyMDA4ICswMjAwCgogICAgZHJpdmVycy9uZXQvcGNuZXQuYzogQ29kaW5nIFN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4OTllZjdiODQ1NzhiN2NhZmFkZmQ3ODQ4OGMyZmQyYWFjOTNmNjM2CkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVdlZCBPY3QgMTAgMjM6MDQ6MjMgMjAwNyArMDMwMAoKICAgIEFkZGVkIEFtNzlDOTcwQSBjaGlwIGlkIHRvIHBjbmV0CgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgMTdjOWRlNmJiMzNmNjc2ZWI3NzZkY2JmYzQ2ZmMxYjE0YzM4NzFhNQpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyMCAxMDozNTowMyAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBGaXggYXJjaGl0ZWN0dXJlIG51bWJlcnMgZm9yIEFEUyBhbmQgTGl0ZWtpdCBib2FyZHMKCiAgICBDb3JyZWN0IHRoZSBMaW51eCBhcmNoaXRlY3R1cmUgbnVtYmVyIGZvciBpLk1YMzEgTGl0ZWtpdCBhbmQgQURTIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgZTdhZTg0ZDZjNzI4ODc5MGU4ODYzOWY1N2NiNjBkYWY4OWMxMTM2OQpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyMCAxMDozNjozNiAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBVc2Ugc3ltYm9saWMgbmFtZXMgZm9yIExpdGVraXQgbWVtYmFzZXMuCgogICAgVXNlIHN5bWJvbGljIG5hbWVzIGluc3RlYWQgb2YgaGFyZCBjb2RlZCBhZGRyZXNzZXMgZm9yIExpdGVraXQgbWVtYmFzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IDJlZjFkOWI2MDMwZDAyZjU3NmIxYmNkOWZlYzk0OGU2MDI1MjIwMTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXByIDE5IDE3OjU5OjIwIDIwMDggKzAyMDAKCiAgICBGaXggc2hvd19ib290X3Byb2dyZXNzIHByb3RvdHlwZQoKICAgIGluIGNvbW1pdCBmYWQ2MzQwNzEgIm1ha2Ugc2hvd19ib290X3Byb2dyZXNzICgpIHdlYWsuIgogICAgc2hvd19ib290X3Byb2dyZXNzIGlzIHN1cHBvc2VkIHRvIGJlIGRlY2xhcmVkIGFzIHdlYWsgYnV0IGRlY2xhcmVkIGFzCiAgICBpbmxpbmUgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGVkYmVkMjQ3YTE0ZDcwYjk0OTU4MDEwZjczNjYyMTIxMjI4NWRlOTEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXByIDE4IDEyOjM5OjIzIDIwMDggKzAyMDAKCiAgICBNZW1vcnkgZm9vdHByaW50IG9wdGltaXphdGlvbnMKCiAgICBBcyBzdWdnZXN0ZWQgYnkgV29sZmdhbmcgRGVuazoKICAgIC0gaW1hZ2UgcHJpbnRpbmcgZnVuY3Rpb25zOgogICAgICAtIHJlbW92ZSB3cmFwcGVycwogICAgICAtIHJlbW92ZSBpbmRlbnRhdGlvbiBwcmVmaXggZnJvbSBmdW5jdGlvbnMnIHNpZ25hdHVyZXMKICAgIC0gbWVyZ2UgZ2V0ZW52X3ZlcmlmeSBhbmQgZ2V0ZW52X2F1dG9zdGFydCBpbnRvIG9uZSBwYXJhbWV0cml6ZWQgZnVuY3Rpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDBhMGI2MDZmYWFlYzRhZmIzZjc1MGIwOWFhNGRmMWU0MGEzOWRjYjgKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMTM6MzM6MTEgMjAwOCArMDIwMAoKICAgIE1YMzFBRFMgZW52aXJvbm1lbnQgdmFyaWFibGUgdXBkYXRlLCBzcGkgYW5kIHJ0YyBzdXBwb3J0CgogICAgVXBkYXRlIE1YMzFBRFMgZGVmYXVsdCBlbnZpcm9ubWVudCB0byBiZXR0ZXIgbWF0Y2ggdGhlIGZsYXNoIGxheW91dCBhbmQKICAgIHRoZSBtZW1vcnkgbWFwLCBzdXBwb3J0IFNQSSBhbmQgUlRDLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAwMjJmMTIxNjM1OTViOWE1NTM4MGM2ZDc3YzMxMTliOTNkNmE5YTRiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEFwciAyMSAwOToyODozNiAyMDA4IC0wNTAwCgogICAgODV4eDogUm91bmQgdXAgZnJlcXVlbmN5IGNhbGN1bGF0aW9ucyB0byBnZXQgcmVhc29uYWJsZSBvdXRwdXQKCiAgICBlZy4gYmVjYXVzZSBvZiByb3VuZGluZyBlcnJvciB3ZSBjYW4gZ2V0IDc5OU1oeiBpbnN0ZWFkIG9mIDgwME1oei4KCiAgICBJbnRyb2R1Y2VkIERJVl9ST1VORF9VUCBhbmQgcm91bmR1cCB0YWtlbiBmcm9tIGxpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZWphbiBNaW5pYyA8bWluaWNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNyaWthbnRoIFNyaW5pdmFzYW4gPHNyaWthbnRoLnNyaW5pdmFzYW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3NmI4Zjk3ODk4MjIxNmFiNGEyMmRjZDllZmRkZmNkOWIwZTA0ZTYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXByIDIzIDE2OjU4OjA0IDIwMDggLTA1MDAKCiAgICBmc2xfcGNpOiBPbmx5IG1vZGlmeSByZWdpc3RlcnMgaWYgd2UgaGF2ZSB0aGVtCgogICAgcG1lX21zZ19kZXQgZXhpc3RzIG9ubHkgb24gUENJZSBjb250cm9sbGVycyBvbmx5IHNldCBpdCBpZiB3ZSBhcmUgYSAiYnJpZGdlIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgzZmUzMjMzNDMzN2RlZjE2MGIzMDJhYTlkMTUyZDgwOGJmY2M2OGUKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgQXByIDIzIDEwOjU3OjMzIDIwMDggKzAyMDAKCiAgICBVU0I6IHJlbW92ZSBhIGNwdSBidWcgd29ya2Fyb3VuZCBmb3IgYW4gdW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZjk1NzU3NmNiNTNlNmNmYWI0MTI3MDljZmM4ZGIxYWZkMzlkMjFjMwpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMjMgMTA6NTM6MjMgMjAwOCArMDIwMAoKICAgIFVTQjogZml4IHRob3NlIHBlc2t5IGFsaWFzaW5nIHdhcm5pbmdzIGlzc3VlZCBieSBnY2MtNC4yCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDg5Y2RhYjc4OGYzNzE2YjMzNWZlZmI2MGI4MzZlYmNmOTc1YWNlYWIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBNYXIgMzEgMTE6MDI6MDEgMjAwOCAtMDQwMAoKICAgIGNyYzMyOiB1c2UgdWludDMyX3QgcmF0aGVyIHRoYW4gdW5zaWduZWQgbG9uZwoKICAgIFRoZSBlbnZjcmMuYyBkb2VzIHNpemVvZih1bnNpZ25lZCBsb25nKSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBjcmMsIGJ1dAogICAgdGhpcyBpcyBkb25lIHdpdGggdGhlIGJ1aWxkIHRvb2xjaGFpbiBpbnN0ZWFkIG9mIHRoZSB0YXJnZXQgdG9vbAogICAgY2hhaW4sIHNvIGlmIHRoZSBidWlsZCBpcyBhIDY0Yml0IHN5c3RlbSBidXQgdGhlIHRhcmdldCBpcyAzMmJpdHMsCiAgICB0aGUgc2l6ZSB3aWxsIG9idmlvdXNseSBiZSB3cm9uZy4gVGhpcyBjb252ZXJ0cyBhbGwgdW5zaWduZWQgbG9uZwogICAgc3R1ZmYgcmVsYXRlZCB0byBjcmMzMiB0byB1aW50MzJfdCB0eXBlcy4gQ29tcGlsZSB0ZXN0ZWQgb25seTogb3V0cHV0CiAgICBvZiAuL3Rvb2xzL2VudmNyYyB3aGVuIHJ1biBvbiBhIDMyYml0IGJ1aWxkIHN5c3RlbSBtYXRjaGVzIHRoYXQgb2YgYQogICAgNjRiaXQgYnVpbGQgc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDgwYzQwYjc2NWIzNjQyZGRiOWYzMzkyYjc4OTg3MTVhYWI0NGEyOWMKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglXZWQgTWFyIDI2IDA5OjUzOjI5IDIwMDggKzAxMDAKCiAgICBBUk06IERhdmluY2k6IEZpeCBETTY0NHggdGltZXIgb3ZlcmZsb3cgaGFuZGxpbmcgYW5kIGNsZWFudXAKCiAgICBGaXggQVJNIGJhc2VkIERhVmluY2kgRE02NDR4IHRpbWVyIG92ZXJmbG93IGhhbmRsaW5nIGFuZCBjbGVhbnVwIHRpbWVyIGNvZGUuCgogICAgQ2hhbmdlczoKCiAgICAtIFJlbW92ZSAqX21hc2tlZCgpIGZ1bmN0aW9ucyBhcyBub3RlZCBieSBXb2xmZ2FuZwoKICAgIC0gQWRhcHQgcmVnaXN0ZXIgbmFtaW5nIHRvIHJlY2VudCBUSSBzcGVjIChzcHJ1ZTI2LCBNYXJjaCAyMDA3KQoKICAgIC0gRml4IHJlc2V0X3RpbWVyKCkgaGFuZGxpbmcKCiAgICAtIEFzIHJlcG9ydGVkIGJ5IFBpZXRlciBbMV0gdGhlIG92ZXJmbG93IGZpeCBpbnRyb2R1Y2VkIGEgZGVsYXkgb2YgZmFjdG9yIDE2IChlLmcgMiBzZWNvbmRzIGJlY2FtZSAzMikuIFdoaWxlIHRoZSBvdmVyZmxvdyBmaXggaXMgYmFzaWNhbGx5IG9rYXksIGl0IG1pc3NlZCB0byBkaXZpZGUgdWRlbGF5IGJ5IDE2LCB0b28uIEZpeCB0aGlzLgoKICAgIFsxXSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC5ib290LWxvYWRlcnMudS1ib290LzM4MTc5CgogICAgLSBSZW1vdmUgc29mdHdhcmUgZGl2aXNpb24gb2YgdGltZXIgY291bnQgdmFsdWUgKERJVih4KSBtYWNybykgYW5kIGRvIGl0IGluIGhhcmR3YXJlIChUSU1fQ0xLX0RJVikuCgogICAgTWFueSB0aGFua3MgdG8gVHJveSBLaXNreSA8dHJveS5raXNreUBib3VuZGFyeWRldmljZXMuY29tPiBhbmQgUGlldGVyIFZvb3J0aHVpanNlbiA8cGlldGVyLnZvb3J0aHVpanNlbkBQcm9kcml2ZS5ubD4gZm9yIHRoZSBoaW50cyAmIHRlc3RpbmchCgogICAgUGF0Y2ggaXMgY29tcGlsZSB0ZXN0ZWQgd2l0aCBkYXZpbmNpX2R2ZXZtICYgc29uYXRhICYgc2NobW9vZ2llIGNvbmZpZ3VyYXRpb24gYW5kIHRlc3RlZCBieSBQaWV0ZXIgb24gRGFWaW5jaSBFVk0gaGFyZHdhcmUuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cGlldGVyLnZvb3J0aHVpanNlbkBQcm9kcml2ZS5ubD4KCmNvbW1pdCBhNmU2ZmM2MTBlMzlkZWM0MWI3OTY4MDQxM2Q0ZWQzODE0NWJkM2M4CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIEFwciA5IDE2OjA5OjQxIDIwMDggKzAyMDAKCiAgICBBZGRlZCB3YXRjaGRvZyB0cmlnZ2VyaW5nIGNhbGxzIGluIHRoZSAibXRlc3QiIHRlc3QgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBkMzJhODc0YjliNGMxZTk0OWVlMzhiZTc3OTBmNmJmNmQ2MTQzNDUxCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglTdW4gQXByIDYgMTk6MTk6MTQgMjAwOCArMDIwMAoKICAgIGx3bW9uNSB3YXRjaGRvZzogbGltaXQgdHJpZ2dlciByYXRlCgogICAgTGltaXQgdGhlIHJhdGUgb2YgaC93IHdhdGNoLWRvZyB0cmlnZ2VyaW5nIG9uIHRoZSBMV01PTjUgYm9hcmQgYnkKICAgIHRoZSBDT05GSUdfV0RfTUFYX1JBVEUgdmFsdWUuCgogICAgTm90ZSB0aGF0IGFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIHdoaWNoIHVzZWQgbWljcm9zZWNvbmRzCiAgICBpbnN0ZWFkIG9mIHRpY2tzIGRpcyBub3Qgd29yay4gVGhlIHByb2JsZW0gd2FzIHRoYXQgd2UgdXNlZAogICAgdXNlYzJ0aWNrcygpIHRvIGNvbnZlcnQgbWljcm9zZWNvbmRzIGludG8gdGlja3MuIHVzZWMydGlja3MoKSB1c2VzCiAgICBnZXRfdGJjbGsoKSwgd2hpY2ggaW4gdHVybiBjYWxscyBnZXRfc3lzX2luZm8oKS4gSXQgdHVybnMgb3V0IHRoYXQKICAgIHRoaXMgZnVuY3Rpb24gZG9lcyBhIGxvdCBvZiBwcm9sb25nZWQgb3BlcmF0aW9ucyAobGlrZSBkaXZpc2lvbnMpCiAgICB3aGljaCB0YWtlIHRvbyBtdWNoIHRpbWUgc28gd2UgZG8gbm90IHRyaWdnZXIgdGhlIHdhdGNoZG9nIGluIHRpbWUsCiAgICBhbmQgaXQgcmVzZXRzIHRoZSBzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDJkMmI5OTRhMzBiYjEwMDc3NGRjNzQ3YWU5ODY1YjdmOTUyODVhODgKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTA6NTE6MzcgMjAwOCArMDIwMAoKICAgIFBPU1Q6IG1vdmUgQ09ORklHX1BPU1QgdG8gTWFrZWZpbGVzCgogICAgSW50cm9kdWNlIHRoZSBuZXcgbG9naWNhbCBvcHRpb24gQ09ORklHX0hBU19QT1NUIHdoaWNoIGlzIHNldCB3aGVuIHRoZQogICAgcGxhdGZvcm0gaGFzIENPTkZJR19QT1NUIHNldC4gVXNlIENPTkZJR19IQVNfUE9TVCBpbiB0aGUgcG9zdC8gTWFrZWZpbGVzCiAgICB0byBkZXRlcm1pbmUgc2hvdWxkIHRoZSBQT1NUIGxpYnMgYmUgY29tcGlsZWQgZm9yIHRoZSBzZWxlY3RlZCB0YXJnZXQKICAgIHBsYXRmb3JtLCBvciBub3QuCgogICAgVG8gYXZvaWQgYnJlYWtpbmcgdS1ib290IGxpbmtpbmcgcHJvY2VzcywgdGhlIGVtcHR5IHBvc3QvbGlicG9zdC5hIGZpbGUgaXMKICAgIGNyZWF0ZWQgZm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3QgaGF2ZSBQT1NUcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDBhNTFlOTI0OGUyZDI3ZTBhMDJlZjFlNzQwYzU3NmNlOTBhMzllZTEKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTA6NDk6MzQgMjAwOCArMDIwMAoKICAgIFBPU1Q6IHByZXBhcmF0aW9ucyBmb3IgbW92aW5nIENPTkZJR19QT1NUIHRvIE1ha2VmaWxlcwoKICAgIFJlbW92ZSBDT05GSUdfUE9TVCBpZmRlZnMgZnJvbSB0aGUgcG9zdC8gc291cmNlIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWQ0MGQ0NDMwZDllYmM4NDM0YzZmMDc5ODU5NDgzNmUxZWZhN2ExZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyMiAxNDoxNDoyMCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgYW5kIEdsYWNpZXIgZGVmYXVsdCBlbnZpcm9ubWVudCBmb3IgZmR0IHVzYWdlCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgQ2FueW9ubGFuZHMgYW5kIEdsYWNpZXIgZGVmYXVsdCBlbnZpcm9ubWVudCB0byBiZXR0ZXIKICAgIGZpdCB0byB0aGUgYXJjaC9wb3dlcnBjIGRldmljZS10cmVlIGtlcm5lbHMuIFRoZSB2YXJpYWJsZXMgZGVhbGluZyB3aXRoCiAgICBhcmNoL3BwYyBib290aW5nIGFyZSByZW1vdmVkLCBzaW5jZSB0aGVzZSBib2FyZHMgYXJlIHN1cHBvcnRlZCBvbmx5IGluCiAgICBhcmNoL3Bvd2VycGMuIEdsYWNpZXIgdXNlcyB0aGUgc2FtZSBjb25maWcgZmlsZSBhcyBDYW55b25sYW5kcy4KCiAgICBBbHNvLCB0aGUgR2xhY2llciBub3cgdXNlcyBub24tRlBVIHJvb3RwYXRoLCBzaW5jZSA0NjBHVCBoYXMgbm8gRlBVLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNzg5Y2I0YTRjMGMxZGVmZjgyMDUzNTM5Y2ZlMjlhOWM2ZTIzZjhiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDIyIDE0OjA2OjQyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFNtYWxsIGNvZGluZyBzdHlsZSBjbGVhbnVwIGZvciB0aGUgbGF0ZXN0IGVzZCBwYXRjaGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc5OTQxZDYzYmMwM2FlZDhjNDhkNzYwMmYxODIxN2NjMjAwZWU5MzEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxODowMTowNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQ1BVIHN0cmFwcGluZyBmb3IgUE1DNDQwIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgdGVtcG9yYXJ5ICd0ZXN0JyBzdHJhcHBpbmcgb3B0aW9uCiAgICBvZiB0aGUgc2JlIGNvbW1hbmQuIFRoZSAnNjY3JyBzdHJhcHBpbmcgb3B0aW9uIG5vdyB1c2VzCiAgICBhIFBMQi9QQ0kgZGl2aWRlciBvZiAzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGYwMGNmMzE5M2E2NjM1MzU1YjEyMWU5MGRlYmIyZjU0ZTc3N2U3ZGEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxNDo0MjoyMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIEFQQzQwNSBzdHJhdGFmbGFzaCBkcml2ZXIKCiAgICBUaGUgQVBDNDA1IGJvYXJkIHN1cHBvcnQgaGFzIGJlZW4gbWlncmF0ZWQgdG8gdXNlIHRoZSBjb21tb24KICAgIENGSSBmbGFzaCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMWM2ODY2NzZhODY0NzNiYmQ5MjE1MWYwNTQ0ZTEwOTQxM2Y2ZWQwNgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE0OjQyOjE3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBUEM0MDUgY29uZmlndXJhdGlvbgoKICAgIC0gZW5hYmxlIGVzZCdzIGF1dG9fdXBkYXRlIG1lY2hhbmlzbQogICAgLSBzdXBwb3J0IGFsdGVybmF0aXZlIGZsYXNoIGxheW91dCBvbiByZXYuIDEuOCBib2FyZHMKICAgIC0gdXBkYXRlIGRlZmF1bHQgZW52aXJvbm1lbnQKICAgIC0gdXNlIGNvbW1vbiBDRkkgZmxhc2ggZHJpdmVyCiAgICAtIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMGI5ODcyNTE1YTUyMWJmNzg2NmRjMjRiODVkZGNlNzA4ZTYwZDcwMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE0OjQyOjExIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBUEM0MDUgYm9hcmQgc3VwcG9ydAoKICAgIC0gZW5hYmxlIGVzZCdzIGF1dG9fdXBkYXRlIG1lY2hhbmlzbQogICAgLSBmaXggTENEIHN1cHBvcnQgb24gbGF0ZXN0IGhhcmR3YXJlIHJldmlzaW9uICh1c2VzIG90aGVyIExDRCBjb250cm9sbGVyKQogICAgLSBzdXBwb3J0IGFsdGVybmF0aXZlIGZsYXNoIGxheW91dCBvbiByZXYuIDEuOCBib2FyZHMKICAgIC0gY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA4Mzk3NWQwMmUyMjVlMjMxOTYwNzg0OTcyZTc4MjBhOGIzMDM3NTZiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDI6MDYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogdXBkYXRlIGVzZCdzIGNvbW1vbiBhdXRvX3VwZGF0ZSBjb2RlIGZvciA0MDUgYm9hcmRzCgogICAgLSBDb2Rpbmcgc3R5bGUgY2xlYW51cCAobG9uZyBsaW5lcykKICAgIC0gaW1wcm92ZSBoYW5kbGluZyBvZiBwcm90ZWN0ZWQgZmxhc2ggcmVnaW9ucwogICAgLSByZW1vdmUgZGVhZCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYjkyMzNmZTVkNTljYjI1ZDk3NTA3MTYxNmJkMTAzNWQ2ZjRjMjI4NQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE0OjQxOjU5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBlc2QncyBjb21tb24gTENEIGNvZGUgZm9yIDQwNSBib2FyZHMKCiAgICAtIENvZGluZyBzdHlsZSBjbGVhbnVwIChsb25nIGxpbmVzKQogICAgLSBBZGQgczFkMTM1MDUgc3VwcG9ydAogICAgLSBNYWtlIHNvbWUgZnVuY3Rpb25zIHJldHVybiBhIHJlc3VsdCBjb2RlIGluc3RlYWQgb2Ygdm9pZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGRlYTY4MTg5NDI0YzNmMTI0MjQyN2E4MTQ2YTM4NjFiZjA5MzE3M2MKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxMTozNjo1NSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgRlBHQSBpbWFnZSBmb3IgQVBDNDA1IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDJhMDViMTUyOTI0YWNmY2VjM2IwMzc2OTMzMjllNTE3ZTZkMzU3OGYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxMTozNjowOCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgYm9vdGxvZ28gZm9yIEFQQzQwNSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA4ZGVhZmRjNmFkMzY4MzY4Y2YwM2I1OGNhYjRiZDM5ZjQ1ZDY0YjVjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDE2OjQxOjMxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBkY2FjaGVfZW5hYmxlKCkgZm9yIDQ0MAoKICAgIGRjYWNoZV9lbmFibGUoKSB3YXMgbWlzc2luZyBmb3IgNDQwIGFuZCB0aGUgcGF0Y2gKICAgIDAxN2U5Yjc5MjVmNzQ4NzhkMGU5NDc1Mzg4Y2NhOWJkYTVlZjk0ODIgWyJhbGxvdyBwb3J0cyB0byBvdmVycmlkZSBib290ZWxmCiAgICAiXSBiZWhhdmlvciB1c2VzIHRoaXMgZnVuY3Rpb24uCgogICAgTm90ZTogQ3VycmVudGx5IHRoZSBjYWNoZSBoYW5kbGluZyBmdW5jdGlvbnMgbGlrZQogICAgZC9pY2FjaGVfZGlzYWJsZS9lbmFibGUoKSBhcmUgTk9QJ3Mgb24gNDQwLiBUaGlzIG1heSBiZSBjaGFuZ2VkIGluIHRoZQogICAgZnV0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDllMGQxNzdhMDc0OTYxNGIzMTZlYzg0N2ZiNjIzZjA5YzgyYzA3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTE6MTk6MDQgMjAwOCArMDIwMAoKICAgIHZpZGVvOiBBZGQgbWlzc2luZyBmcmVlIGZvciBsb2dvIG1lbW9yeQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0d28gbWlzc2luZyBmcmVlKClzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDg0YzAxZDNhMDVhZTNhY2E1ZjdjMGMxM2EzMWNhNzJiYTExOTlhNDIKQXV0aG9yOiBUcm95IEtpc2t5IDx0cm95Lmtpc2t5QGJvdW5kYXJ5ZGV2aWNlcy5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTY6NDE6NDMgMjAwNyAtMDcwMAoKICAgIFBBVENIIC0gRml4IG9vYiBkYXRhIGNvcGllZCBpbnRvIHN1cHBsaWVkIGJ1ZmZlcgoKICAgIFRoaXMgcGF0Y2ggY29ycmVjdGx5IHNldHMgdGhlIG9vYmF2YWlsIHZhcmlhYmxlCiAgICBhbmQgZml4ZXMgYSBidWcgd2hlcmUgdGhlIG9vYiBkYXRhIHdhcyBub3QgdmFsaWQgd2hlbgogICAgdGhlcmUgd2hlcmUgbXVsdGlwbGUgZ3JvdXBzIGluIG9vYmZyZWUuCgogICAgRmlyc3Qgc2VnbWVudCBmaXhlcyBhIHR5cG8KICAgIFNlY29uZCBzZWdtZW50IGZpeGVzIGEgYnVnIHdoZXJlIG9vYiBkYXRhIG1heSBiZSBjb3BpZWQgaW5jb3JyZWN0bHkuCiAgICBUaGlyZCBzZWdtZW50IGFkZHMgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGV4aXRpbmcgZHVlIHRvIHdyaXRlIHByb3RlY3QuCiAgICBGb3J0aCBzZWdtZW50IGZpeGVzIGEgYnVnIHdoZXJlIG9vYmF2YWlsIG1heSBiZSBzZXQgaW5jb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogVHJveSBLaXNreSA8dHJveS5raXNreUBib3VuZGFyeWRldmljZXMuY29tPgoKY29tbWl0IGUxZDA5NjgwZjY0YjQ1MmFkZGU4OWVkOWZlMjhhNzdjNTZiZWRjOWEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEFwciAxOCAxNzoyNDozMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggc3lzX2dldF9pbmZvKCkgZm9yIDQwNUdQKHIpCgogICAgVGhpcyBwYXRjaCBhc3NpZ25zIHRoZSBjb3JyZWN0IEVCQyBjbG9jayBmb3IgNDA1R1AocikgQ1BVcwogICAgdG8gUFBDNHh4X1NZU19JTkZPIHN0cnVjdHVyZS4gV2l0aG91dCB0aGlzIHBhdGNoIFUtQm9vdAogICAgdXNlcyBhbiB1bmluaXRpYWxpemVkIEVCQyBjbG9jayBpbiBpdHMgc3RhcnR1cCBtZXNzYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGRjNzc0NmQ4NmQyYTNkZmUwMWFiOWE3MGNiNDI3ZjkyYWRjMzAzYzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXByIDIwIDE1OjM5OjM4IDIwMDggLTA3MDAKCiAgICBNYWtlZmlsZTogcmVtb3ZlIG5hbmRfc3BsL1N5c3RlbS5tYXAgd2hlbiBjbGVhbmluZyB1cC4KCmNvbW1pdCBkOWE0MmMwYWNlNGQ0ZjljYjA2MWQ2MmE3MjY1ZDE3ODBmOTA0NDdiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAyMCAxNTozNTo1MiAyMDA4IC0wNzAwCgogICAgTUFLRUFMTDogc29ydCBlbnRyaWVzIC8gbGlzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwODc4YWYxNjliMTgxODY4YTEwNWI1YzMzZjNhNjQyM2UyYzlmZDYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEFwciAxOCAxMToyOTowMSAyMDA4IC0wNTAwCgogICAgODV4eDogRml4IHNpemUgb2YgY3B1LXJlbGVhc2UtYWRkciBwcm9wZXJ0eQoKICAgIFRoZSBjcHUtcmVsZWFzZS1hZGRyIGlzIGRlZmluZWQgYXMgYWx3YXlzIGJlaW5nIGEgNjQtYml0IHF1YW5pdHkgcmVnYXJkbGVzcwogICAgaWYgd2UgYXJlIHJ1bm5pbmcgb24gYSAzMi1iaXQgb3IgNjQtYml0IG1hY2hpbmUuCgpjb21taXQgODgzNTNhOTg1MTA5NTYyYTYzOWIyZjhhMGM5MGQ3NzAxMWJmZTM3NApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgNCAxMToxNTo1OCAyMDA4IC0wNTAwCgogICAgRml4IGNhbGN1bGF0aW9uIG9mIEkyQyBjbG9jayBmb3Igc29tZSA4NXh4IGNoaXBzCgogICAgU29tZSA4NXh4IGNoaXBzIHVzZSBDQ0IgYXMgdGhlIGJhc2UgY2xvY2sgZm9yIHRoZSBJMkMuICBTb21lIHVzZSBDQ0IvMiwgYW5kCiAgICBzb21lIHVzZSBDQ0IvMy4gIFRoZXJlIGlzIG5vIHBhdHRlcm4gdGhhdCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2gKICAgIGNoaXBzIHVzZSB3aGljaCBmcmVxdWVuY3ksIHNvIHRoZSBvbmx5IHdheSB0byBkZXRlcm1pbmUgaXMgdG8gbG9vayB1cCB0aGUKICAgIGFjdHVhbCBTT0MgZGVzaWduYXRpb24gYW5kIHVzZSB0aGUgcmlnaHQgdmFsdWUgZm9yIHRoYXQgU09DLgoKICAgIFVwZGF0ZSBpbW1hcF84NXh4LmggdG8gaW5jbHVkZSB0aGUgR1VUUyBQT1JERVZTUjIgcmVnaXN0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZTAxNDc3YWVhZjQwOWRkYjk3ZTI2MzNhYWI5Y2Y4YzljNjA2MTJlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAxOCAxMTo0NDoyNyAyMDA4IC0wNzAwCgogICAgRml4IGJ1aWxkIGJyZWFrYWdlIGNhc3VlZCBieSBjb21taXQgYzA1NTliZTM3MWIyCgoJQ2hhbmdlIGVudl9nZXRfY2hhciBmcm9tIGEgZ2xvYmFsIGZ1bmN0aW9uIHB0ciB0byBhIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjY4YTgwNGQ3ZTJmYTA3YjY0MjExZmQyZjlhOTYxNWRiNDUzOWYyMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMTggMTA6NTM6NDEgMjAwOCAtMDcwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTJiYWQyMGFkNzRiNzBhZGYzODM5ZGY5YTBhNDdjY2UwMDBhYzNkNwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEFwciA4IDE0OjAwOjU3IDIwMDggLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdS1ib290IGluIHN2biBhbmQgbG9jYWx2ZXJzaW9uLSogZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZDIzZmY2ODI3ZGVjZjEyMTQ2MWZiYzU2MjI2MTJmZDdlZmZlMjA3ZQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAzIDE3OjA0OjIyIDIwMDggKzAyMDAKCiAgICBNWDMxQURTIG5ldHdvcmsgYW5kIGZsYXNoIHVwZGF0ZXMKCiAgICBUaGlzIHBhdGNoIGFsbG93cyBVLUJvb3QgdG8gdXNlIGJ1ZmZlcmVkIHdyaXRlcyB0byB0aGUgU3BhbnNpb24gTk9SCiAgICBmbGFzaCBpbnN0YWxsZWQgb24gdGhpcyBib2FyZCwgYW5kIGVsaW1pbmF0ZXMgbG9uZyBkZWxheXMgaW4gbmV0d29yawogICAgdHJhbnNmZXJzIGFmdGVyIHRoZSBib2FyZCBzdGFydHVwLgoKICAgIEFsc28gbW9kaWZ5IGZsYXNoIGxheW91dCB0byBlbWJlZCBtYWluIGFuZCByZWR1bmRhbnQgZW52aXJvbm1lbnQKICAgIGJsb2NrcyBpbiB0aGUgVS1Cb290IGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBiNWRjOWIzMDRkMjg5ODMxZjI5MTg0M2ZmODhhNDVjYmRmMWE2MjkwCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglNb24gQXByIDE0IDEwOjUzOjEyIDIwMDggKzAyMDAKCiAgICBTdXBwb3J0IGZvciB0aGUgTVgzMUFEUyBldmFsdWF0aW9uIGJvYXJkIGZyb20gRnJlZXNjYWxlCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBNWDMxQURTIGV2YWx1YXRpb24gYm9hcmQgZnJvbSBGcmVlc2NhbGUsCiAgICBpbml0aWFsaXphdGlvbiBjb2RlIGlzIGNvcGllZCBmcm9tIFJlZEJvb3Qgc291cmNlcywgYWxzbyBwcm92aWRlZCBieQogICAgRnJlZXNjYWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA0OTllNzgzMWUxYmFhYWM2YmZiOTU5MjEzZjE5NTBjMjE2ZmJjNWJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDggMTA6MzM6MjkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIENhbnlvbmxhbmRzIHRvIHN1cHBvcnQgYm9vdGluZyBmcm9tIDJrIHBhZ2UgTkFORCBkZXZpY2VzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVlMTgyZGNlMDRkNjhjYzk0NDA3YTFiMWZhMDkzMDdmMmJiOTY3MTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgOCAxMDozMzoyOCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGp1c3QgQ2FueW9ubGFuZHMgZml4ZWQgRERSMiBzZXR1cCAoTkFORCBib290aW5nKSB0byA1MTJNQiBTT0RJTU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmU3YzBkYjZiMmE5MDA0Zjk2YzJhMmQ0ZmZmMjg0OWUxOWMyZDgyNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciA4IDEwOjMzOjI3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBHbGFjaWVyIE5BTkQgYm9vdGluZyB0YXJnZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDZmMzczODM4ZTM4NGE0YzIzZDEzNTgxYjFkZmE1YWNiNjZiNTgxMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciA4IDEwOjMxOjAwIDIwMDggKzAyMDAKCiAgICBuYW5kX3NwbDogVXBkYXRlIG5hbmRfc3BsIHRvIHN1cHBvcnQgMmsgcGFnZSBzaXplIE5BTkQgZGV2aWNlcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBib290aW5nIGZyb20gMmsgcGFnZSBzaXplZCBOQU5EIGRldmljZQogICAgKGUuZy4gTWljcm9uIDI5RjJHMDhBQUMpLgoKICAgIFRlc3RlZCBvbiBBTUNDIENhbnlvbmxhbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZTNkY2E1NzdiN2MxYmY1OGJkMmI0ODQ0OWIxOGI3ZTdkY2Q4ZTA0CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgQXByIDE3IDE4OjE4OjAwIDIwMDggKzAyMDAKCiAgICBGaXggY3Jhc2ggb24gc2VxdW9pYSBpbiBwcGNfNHh4X2V0aF9pbml0CgogICAgQ3VycmVudGx5IFUtQm9vdCBjcmFzaGVzIGluIHBwY180eHhfZXRoX2luaXQgb24gc2VxdW9pYQogICAgd2l0aCBjYWNoZSBlbmFibGVkIChUTEIgUGFyaXR5IGV4ZXB0aW9uKS4gVGhpcyBwYXRjaAogICAgZml4ZXMgdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGFjY2Y3MzU1NzY3ZGM3ZjZiODVkODhiYjFjNzVjOWQ5NWU4NGJhNWIKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMTcgMTg6MTU6MjcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGNyYXNoIG9uIHNlcXVvaWEgd2l0aCBjYWNoZSBlbmFibGVkCgogICAgQ3VycmVudGx5IFUtQm9vdCBjcmFzaGVzIG9uIHNlcXVvaWEgYm9hcmQgaW4gQ1BVIFBPU1QgaWYKICAgIGNhY2hlIGlzIGVuYWJsZWQgKENPTkZJR180eHhfRENBQ0hFIGRlZmluZWQpLiBUaGUgY2FjaGUKICAgIHdvbid0IGJlIGRpc2FibGVkIGJ5IGNoYW5nZV90bGIgYmVmb3JlIENQVSBQT1NUIGJlY2F1c2UKICAgIHRoZXJlIGlzIGFuIGluc3VmZmljaWVudCBhZHJlc3MgcmFuZ2UgY2hlY2sgc2luY2UKICAgIENGR19NRU1fVE9QX0hJREUgd2FzIGludHJvZHVjZWQuIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4CiAgICB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDQzYzUwOTI1NGZhYjM3NWM0OTkzNjQ5OGRhOTQ0NjU4MTE3ZWQwN2MKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUaHUgQXByIDE3IDIzOjM1OjEzIDIwMDggKzA5MDAKCiAgICBVc2UganIgYXMgcmVnaXN0ZXIganVtcCBpbnN0cnVjdGlvbgoKICAgIEN1cnJlbnQgYXNzZW1ibGVyIGNvZGVzIGFyZSBpbmNvbnNpc3RlbnQgaW4gdGhlIHdheSBvZiByZWdpc3RlciBqdW1wCiAgICBpbnN0cnVjdGlvbiB1c2FnZTsgc29tZSB1c2UganIsIHNvbWUgdXNlIGouIE9mIGNvdXJzZSBHTlUgYXMgYWxsb3dzIGJvdGgKICAgIHVzYWdlcywgYnV0IGFzIGNhbiBiZSBleHBlY3RlZCBmcm9tIGBKdW1wIFJlZ2lzdGVyJyB0aGUgbW5lbW9uaWMgYGpyJyBpcwogICAgbW9yZSBpbnR1aXRpdmUgdGhhbiBgaicuIEZvciBleGFtcGxlLCBMaW51eCBkb2Vzbid0IGhhdmUgYGogPHJlZz4nIHVzYWdlCiAgICBhdCBhbGwuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA3Y2U2MzcwOTgyOGQzN2IwODg2NmU1MzczMzlhMTY5YmQwZGIyYmQzCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgQXByIDE1IDE0OjE1OjMwIDIwMDggKzAyMDAKCiAgICBSVEMgZHJpdmVyIGZvciBNQzEzNzgzCgogICAgTUMxMzc4MyBpcyBhIG11bHRpZnVuY3Rpb24gSVMgd2l0aCBhbiBTUEkgaW50ZXJmYWNlIHRvIHRoZSBob3N0LiBUaGlzCiAgICBkcml2ZXIgaGFuZGxlcyB0aGUgUlRDIGNvbnRyb2xsZXIgaW4gdGhpcyBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAzODI1NGY0NWIwYjQxMjMzMjcyNmM5MGQzMTg0YWQ0NzQ3OWZjZmZiCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgQXByIDE1IDE0OjE0OjI1IDIwMDggKzAyMDAKCiAgICBOZXcgaS5NWDMxIFNQSSBkcml2ZXIKCiAgICBUaGlzIGlzIGFuIFNQSSBkcml2ZXIgZm9yIGkuTVggYW5kIE1YQyBiYXNlZCBTb0NzIGZyb20gRnJlZXNjYWxlLiBTbyBmYXIKICAgIG9ubHkgaW1wbGVtZW50ZWQgYW5kIHRlc3RlZCBvbiBpLk1YMzEsIGNhbiB3aXRoIGEgbW9kaWZpZWQgcmVnaXN0ZXIgbGF5b3V0CiAgICBhbmQgZGVmaW5pdGlvbnMgYmUgdXNlZCBmb3IgaS5NWDI3LCBJIHRoaW5rLCBNWEMgQ1BVcyBoYXZlIHNpbWlsYXIgU1BJCiAgICBjb250cm9sbGVycyB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDcwNjQxMjJjMmVlZjkyZjAyYTAzZWYzN2ExYTFjMDdlNzBjZDRlMzgKQXV0aG9yOiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+CkRhdGU6CVR1ZSBBcHIgMTUgMTk6MDk6MTAgMjAwOCArMDIwMAoKICAgIEZpeCBuYW1lIG9mIGkuTVgzMSBib2FyZHMgaW4gY29uZmlnIGZpbGUgaGVhZGVyCgogICAgQ29ycmVjdCB0aGUgbmFtZSBvZiB0aGUgaS5NWDMxIExpdGVraXQgYW5kIHBoeUNPUkUgYm9hcmRzIGluIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgYTQ5ODY0NTkzZTA4M2E1ZDA3NzlmYjljYTk4ZTVhMGYyMDUzMTgzZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIEFwciAxMyAxOTo0MjoxOSAyMDA4IC0wNDAwCgogICAgYWxsb3cgcG9ydHMgdG8gb3ZlcnJpZGUgZ28gYmVoYXZpb3IKCiAgICBTcGxpdCB0aGUgYXJjaC1zcGVjaWZpYyBsb2dpYyBvdXQgb2YgdGhlIGNvbW1vbiBnbyBjb2RlIGFuZCBpbnRvIGEgZGVkaWNhdGVkCiAgICB3ZWFrIGZ1bmN0aW9uIGNhbGxlZCBkb19nb19leGVjKCkgdGhhdCBsaXZlcyBpbiBjcHUgZGlyZWN0b3JpZXMuICBUaGlzIHdpbGwKICAgIG5lZWQgcmV2aWV3IGZyb20gaTM4Ni9uaW9zIHBlb3BsZSB0byBtYWtlIHN1cmUgSSBkaWRuJ3QgYnJlYWsgdGhlbS4KCmNvbW1pdCAwMTdlOWI3OTI1Zjc0ODc4ZDBlOTQ3NTM4OGNjYTliZGE1ZWY5NDgyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gQXByIDEzIDE5OjQyOjE4IDIwMDggLTA0MDAKCiAgICBhbGxvdyBwb3J0cyB0byBvdmVycmlkZSBib290ZWxmIGJlaGF2aW9yCgogICAgQ2hhbmdlIHRoZSBib290ZWxmIHNldHVwIGZ1bmN0aW9uIGludG8gYSBkZWRpY2F0ZWQgd2VhayBmdW5jdGlvbiBjYWxsZWQKICAgIGRvX2Jvb3RlbGZfZXhlYy4gIFRoaXMgd2F5IHBvcnRzIGNhbiBjb250cm9sIHRoZSBiZWhhdmlvciBob3dldmVyIHRoZXkKICAgIGxpa2UgYmVmb3JlL2FmdGVyIGNhbGxpbmcgdGhlIEVMRiBlbnRyeSBwb2ludC4KCmNvbW1pdCBhNGI0NmVkNmIzNTAyMzM1YzNmM2E1ZDY3MmFiZTBiY2I0NGYyMGI3CkF1dGhvcjogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CkRhdGU6CVNhdCBBcHIgMTIgMjA6NTY6MDMgMjAwOCArMDIwMAoKICAgIFJlb3JkZXIgQVJNIGJvYXJkcyBpbiBNYWtlZmlsZQoKICAgIFJlYXJyYW5nZSBBUk0gYm9hcmRzIGluIE1ha2VmaWxlIHNvIHRoYXQgQVJNOTI2RUotUyBib2FyZHMKICAgIGFyZSBubyBsb25nZXIgdW5kZXIgQVJNOTJ4VCBoZWFkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CiAgICBBY2stQnkgSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjM2E2MGNiM2JkNjdlMTIwZmM5OWI2YmE4OGQ5Mjk1YzNjMDdmNjg4CkF1dGhvcjogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CkRhdGU6CVNhdCBBcHIgMTIgMjA6Mjk6NDQgMjAwOCArMDIwMAoKICAgIENsZWFuIHVwIGRhdGFmbGFzaCBwYXJ0aXRpb25pbmcKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGJvYXJkIGRlcGVuZGVudCBwYXJ0cyBmcm9tCiAgICAiZHJpdmVycy9tdGQvZGF0YWZsYXNoLmMiLgogICAgRWFjaCBib2FyZCByZWx5aW5nIG9uIHRoaXMsIHdpbGwgaGF2ZSB0aGUgYXBwcm9wcmlhdGUKICAgIGNvZGUgaW4gYSBuZXcgZmlsZSwgInBhcnRpdGlvbi5jIiBpbiB0aGUgYm9hcmQgZGlyZWN0b3J5LgogICAgYm9hcmQgTWFrZWZpbGVzIHVwZGF0ZWQgdG8gdXNlIHRoZSBmaWxlLgoKICAgIFRoZSBkYXRhZmxhc2ggcGFydGl0aW9ucyBhcmUgYWxpZ25lZCBvbiBzZWN0b3IvcGFnZSBib3VuZGFyaWVzLgoKICAgIFRoZSBDT05GSUdfTkVXX0RGX1BBUlRJVElPTiB3YXMgdXNlZCB0byBjcmVhdGUgbmFtZWQgcGFydGl0aW9ucwogICAgVGhpcyBpcyBub3cgdGhlIGRlZmF1bHQgb3BlcmF0aW9uLCBhbmQgdGhlIENPTkZJRyB2YXJpYWJsZSBpcyByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgoKY29tbWl0IDUxZWNkZTk0NmZlYzUxMWExNjM0NmU0OTgyMDRjYTEwYWQ3MTA4MGQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgQXByIDEyIDE0OjA4OjQ1IDIwMDggKzAyMDAKCiAgICBnaXRpZ25vcmU6IHVkcGF0ZSBzdGdpdCBnZW5lcmF0ZWQgYW5kIC5wYXRjaCBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2NmUzOTgxOGU5NWY1MWVlMWMxZGQyMDk0NDA3YTg5Mjk1NDNmYTZkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAxOCAwMDoxNTozNiAyMDA4IC0wNzAwCgogICAgR2V0IHJpZCBvZiByZWR1bmRhbnQgY29weSBvZiByZW5hbWVkIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzNhYWZkOGNmODE0ZTMzYTc3ZGU4MWMyZjIyYjhjNzcyMjE2YTNjYwpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglGcmkgQXByIDExIDIxOjIwOjE0IDIwMDggKzAzMDAKCiAgICBGaXggZGVwZW5kZW5jeSBnZW5lcmF0aW9uIGZvciBvbGRlciBnY2MgdmVyc2lvbnMKCiAgICAgV2l0aCBnY2MgMy4zLjMgYXQgbGVhc3QsIGNvbXBpbGF0aW9uIGZhaWxzIHdpdGgKCiAgICBHZW5lcmF0aW5nIGluY2x1ZGUvYXV0b2NvbmYubWsKICAgIGdjYzogY29tcGlsYXRpb24gb2YgaGVhZGVyIGZpbGUgcmVxdWVzdGVkCiAgICBtYWtlOiAqKiogW2luY2x1ZGUvYXV0b2NvbmYubWtdIEVycm9yIDEKCiAgICBzaW5jZSBjb21taXQgMTZmZTc3NzUyZWVlMDk5YjlmYjYxZWQ3MzQ2MGU1MWNjOTRiMzdiYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBjYjFjNDg5NjkwNWFiMjJmY2Q5ODJlNmE4YTUzOWYwMDMxOTQyZTcxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEFwciAxMSAxMTowNzo0OSAyMDA4ICswMjAwCgogICAgUmVzdG9yZSB0aGUgYWJpbGl0eSB0byBjb250aW51ZSBib290aW5nIGFmdGVyIGxlZ2FjeSBpbWFnZSBvdmVyd3JpdGUKCiAgICBCZWZvcmUgbmV3IHVJbWFnZSBjb2RlIHdhcyBtZXJnZWQsIGJvb3RtIGNvZGUgYWxsb3dlZCBmb3IgdGhlIGtlcm5lbCBpbWFnZSB0bwogICAgZ2V0IG92ZXJ3cml0dGVuIGR1cmluZyBkZWNvbXByZXNpb24uIG5ldyB1SW1hZ2UgaW50cm9kdWNlZCBhIGNoZWNrIGZvciBpbWFnZQogICAgb3ZlcndyaXRlcyBhbmQgcmVmdXNlZCB0byBib290IHRoZSBpbWFnZSB0aGF0IGdvdCBvdmVyd3JpdHRlbi4gVGhpcyBwYXRjaAogICAgcmVzdG9yZXMgdGhlIG9sZCBiZWhhdmlvci4gSXQgYWxzbyBhZGRzIGEgd2FybmluZyB3aGVuIHRoZSBpbWFnZSBvdmVyd3JpdGVuIGlzCiAgICBhIG11bHRpLWltYWdlIGZpbGUsIGJlY2F1c2UgaW4gc3VjaCBjYXNlIGFjY2Vzc2luZyBjb21wb25lbnRlcyBvdGhlciB0aGFuIHRoZQogICAgZmlyc3Qgb25lIHdpbGwgZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGRlMmIzMjE2ZTZiNGYzYjJmZTkzNzU5YzA1YjE3NTA0ZjlkZmUwMzYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXByIDExIDExOjA3OjQzIDIwMDggKzAyMDAKCiAgICBwcGM6IEZpeCBmdGRfYmxvYiB2YXJpYWJsZSBpbml0IHdoZW4gcHJvY2Vzc2luZyByYXcgYmxvYgoKICAgIFNldCBmZHRfYmxvYiB2YXJpYWJsZSBiZWZvcmUgaXRzIHZhbHVlIGlzIHByaW50ZWQgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgM2QzNmJlMDMwMDQzY2Q4NDFhMjU1MWQwMGEzOTUxMzVlMzYzYTY0YgpBdXRob3I6IEphc29uIFdlc3NlbCA8amFzb24ud2Vzc2VsQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBBcHIgMTAgMTQ6MzA6MTYgMjAwOCAtMDUwMAoKICAgIFJlbW92ZSBhbGwgdGhlIHNlYXJjaCBwYXRocyBmcm9tIHRoZSAubGRzIGZpbGVzLgoKICAgIFRoZSBjcm9zcyBjb21waWxlciBpcyByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIHRoZSBjb3JyZWN0IGxpYnJhcmllcwogICAgYW5kIHRoZSBsb2dpYyB0byBmaW5kIHRoZSBsaW5raW5nIGxpYnJhcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXZXNzZWwgPGphc29uLndlc3NlbEB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDdkNzIxZTM0YWU2YmU3ZDdkYjYzZThkMDYwYTI0NjI3OGJiN2FlNTgKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gQXByIDE0IDE1OjQ0OjE2IDIwMDggKzAyMDAKCiAgICBCb290LXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCiAgICAtIGRvY3VtZW50ICdib290bV9sb3cnIGFuZCAnYm9vdG1fc2l6ZScgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgICAtIHVwZGF0ZSBpbmFjY3VyYXRlIENGR19CT09UTUFQU1ogZW50cnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGE2ZjBiZDlmMmIxOTcxZTJhNjFhYzBmZDFmYzJjOTZjYjdhNGI2N2EKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxNzozNDowOCAyMDA4ICswMjAwCgogICAgRml4IHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBhIHR5cG8gaW4gIlRpZGllZCBvdGhlciBjcHUvYXJtOTIwdC9zdGFydC5TIGNvZGUiCgogICAgUmVzdG9yZSBsb2dpYyByZXZlcnRlZCBieSBjb21taXQKCiAgICBjb21taXQgODA3NjdhNmNlYWQ5OTkwZDllNzdlNjJiZTk0Nzg0M2MyYzcyZjQ2OQogICAgQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgogICAgRGF0ZTogICBXZWQgU2VwIDUgMTY6MDQ6NDEgMjAwNyArMDEwMAoKCUNoYW5nZWQgQVBJIG5hbWUgdG8gY29sb3VyZWRfbGVkLmgKCVJlbW92ZWQgY29kZSB1c2luZyBkZXByZWNhdGVkIGlmZGVmIENPTkZJR19CT09UQklORlVOQwoJVGlkaWVkIG90aGVyIGNwdS9hcm05MjB0L3N0YXJ0LlMgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBlMjVjYjhkM2Y0ZmNjMjY1YTljZGY4ZTlkNTc3YjU5YmRiNjRiYmFmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgQXByIDggMTA6MjQ6MjQgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSBjb25mbGljdGluZyBOQU5EIElECgogICAgVGhlcmUgYXJlIHR3byBOQU5EIGVudHJpZXMgd2l0aCBJRCAweERDIGFuZCB0aGlzIG9idmlvdXNseSBjYXVzZXMgcHJvYmxlbXMuCiAgICBJbiB0aGUga2VybmVsLCB0aGV5IHB1bnRlZCB0aGUgZmlyc3QgZW50cnksIHNvIHdlIHNob3VsZCBkbyB0aGUgc2FtZS4KCiAgICBTZWUgdGhpcyB1cHN0cmVhbSBlLW1haWwgZm9yIG1vcmUgaW5mbzoKICAgIGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9saW51eC1tdGQvMjAwNy1KdWx5LzAxODc5NS5odG1sCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBIZW5uZXJpY2ggPG1pY2hhZWwuaGVubmVyaWNoQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMTg4ZTk0YzM3MDYyMTcwOGQxMzU0N2Q1OGRiYzZlZDNjNTYwMmFhOApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJVHVlIEFwciA4IDE2OjIwOjM1IDIwMDggKzA5MDAKCiAgICBjcHUvbWlwcy9jcHUuYzogRml4IGZsdXNoX2NhY2hlIGJ1ZwoKICAgIENhY2hlIG9wZXJhdGlvbnMgaGF2ZSB0byB0YWtlIGxpbmUgYWRkcmVzcyAoYWRkciksIG5vdCBzdGFydF9hZGRyLgogICAgSSBub3RpY2VkIHRoaXMgYnVnIHdoZW4gZGVidWdnaW5nIHBpbmcgZmFpbHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgOGYyYTY4YTA3YzA1OGZjYTFkNDEzZTU0ZjcxYzJlN2U3OGE3NGVkNApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgQXByIDMgMTQ6Mjk6MDEgMjAwOCArMDIwMAoKICAgIFRRTTUyMDA6IGZpeCBkZWZhdWx0IElERSByZXNldCBsZXZlbAoKICAgIEJlZm9yZSB0aGUgZmlyc3QgY2FsbCBvZiBpZGVfcmVzZXQoKSwgdGhlIGxldmVsIG9mIHRoZSBJREUgcmVzZXQKICAgIHNpZ25hbCBvbiB0aGUgVFFNNTIwMCBpcyBsb3cgKHJlc2V0IGFzc2VydGVkKS4gVGhpcyBwYXRjaCBzZXRzIHRoZQogICAgZGVmYXVsdCB2YWx1ZSB0byBoaWdoIChyZXNldCBub3QgYXNzZXJ0ZWQpLgoKICAgIEN1cnJlbnRseSB0aGlzIHBhdGNoIGZpeGVzIG5vIHJlYWwgcHJvYmxlbSwgYnV0IGl0IGlzIGNsZWFuZXIgdG8KICAgIGFzc2VydCB0aGUgcmVzZXQgc2lnbmFsIG9ubHkgb24gZGVtYW5kLCBhbmQgbm90IHBlcm1hbmVudGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGM2MWUwMzNkNmU4YWJiN2I0MDYwZWUzNjA2MDk2MWUxMzk5ZjYwNzkKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAzIDE0OjE4OjQ4IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2UsIG1nc3V2OiByZWFsaWduIENPTkZJR19FWFRSQV9FTlZfU0VUVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IGYzMDg1NzJlMTllYjdmZTYzYWEzZDQxZjIxNGNkZTRjMjNjOTgwMGYKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAzIDE0OjE4OjQ3IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2UsIG1nc3V2OiByZW5hbWUgJ2FkZGNvbicgdG8gJ2FkZGNvbnMnCgogICAgVGhlIGxhdHRlciBuYW1lIHdpdGggMTMgdXNlcnMgaXMgYWxyZWFkeSBlc3RhYmxpc2hlZCwgc28gd2Ugd2lsbCB1c2UKICAgIHRoYXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZTE3NWVhY2M4N2MzYTllNGRhZDA3OTlmZWUwZTk1NzMyNTIwYWZjNwpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgQXByIDMgMTM6Mzc6NTYgMjAwOCArMDIwMAoKICAgIElERTogZml4IGJ1ZyBpbiByZXNldCBzZXF1ZW5jZQoKICAgIEFjY29yZGluZyB0byB0aGUgYXRhIChhdGE1KSBzcGVjaWZpY2F0aW9uIHRoZSBSRVNFVC0gc2lnbmFsCiAgICBzaGFsbCBiZSBhc3NlcnRlZCBmb3IgYXQgbGVhc3QgMjUgdXMuIFdpdGhvdXQgdGhpcyBwYXRjaCwKICAgIHRoZSBSRVNFVC0gc2lnbmFsIGlzIGFzc2VydGVkIG9uIHNvbWUgYm9hcmRzIGZvciBvbmx5IDwgMSB1cwogICAgKGUuIGcuIG9uIHRoZSBUUU01MjAwKS4gVGhpcyBwYXRjaCBhZGRzIGEgZ2VuZXJhbCBkZWxheSBvZgogICAgMjUgdXMgdG8gdGhlIFJFU0VULSBzaWduYWwuCgogICAgV2l0aG91dCB0aGlzIHBhdGNoIGEgUGxhdGludW0gNCBHaUIgQ0YgY2FyZCBpcyBub3QgcmVjb2duaXNlZAogICAgcHJvcGVybHkgb24gYm9hcmRzIHdpdGggYSBUUU01MjAwIChTVEs1Mnh4LCBUQjUyMDApLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDgxM2JlYTk2YTk2MDkxNmM3MmI0YTNhN2RmODQwMTUxNTI5YzI2Y2UKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJVGh1IEFwciAzIDE0OjQzOjExIDIwMDggKzAyMDAKCiAgICBsd21vbjU6IGRpc2FibGUgQ09ORklHX1pFUk9fQk9PVERFTEFZCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIExhdWUgPHNhc2NoYS5sYXVlQGxpZWJoZXJyLmNvbT4KCmNvbW1pdCA1M2VlYzZmMWQyNTkzMmU3NmQ2M2NjYjE0MDgyNzkyYjBiOTZiZjQxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEFwciAyIDA4OjAzOjU4IDIwMDggKzAyMDAKCiAgICBkczE3NHg6IEZpeCB3YXJuaW5nIG9uIHJldHVybiBpbiBydGNfZ2V0IGFuZCBydGNfc2V0IGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTI1M2IzOGJmNTBjODUyMjdjMzNjYTBmZWJjODcwZWU0OWQxNTg4ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAwODowMzo1NyAyMDA4ICswMjAwCgogICAgY21kX2xvZy5jOiBGaXggYXNzaWdubWVudCBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIEluIGZ1bmN0aW9uICdsb2didWZmX2luaXRfcHRycyc6CiAgICBjbWRfbG9nLmM6Nzk6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2YzBlOWE4ZjFjYzA5MGZiZmJjNmY4NmI2YjRmZDE3YTE2MjhmM2RmCkF1dGhvcjogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJV2VkIEFwciAyIDExOjA0OjQzIDIwMDggKzA1MzAKCiAgICBSZW1vdmUgZHVwbGljYXRlICN1bmRlZiBTSE9XX0lORk8gaW4gZHJpdmVycy91c2IvdXNiX29oY2kuYwoKICAgIFNpZ25lZC1vZmYtYnk6IGd1cnVyYWphIGhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCA0NzhkNWVjOWFlM2NiY2M2MDQwMjQxZDJkNzNkYmJjNjFmZTliNDlkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIEFwciAxIDE0OjA3OjEwIDIwMDggKzAyMDAKCiAgICBzM2M0NTEwYl9ldGg6IGZpeCAncGFja2VkJyBhdHRyaWJ1dGUgaWdub3JlZCBmb3IgZmllbGRzIG9mIE1BQ0ZyYW1lCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjMDhmYjNlYTM2ZDE5YjE2NDBiNzkwNjI2NDU4MWU5MTA1NTM0Mzk5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMTA6MjQ6MTQgMjAwOCArMDIwMAoKICAgIEFkZGl0aW9uYWwgUENJIElEcyBmb3IgSURFIGFuZCBuZXR3b3JrIGNvbnRyb2xsZXJzCgogICAgVGhlc2UgUENJIElEcyBhcmUgcmVxdWlyZWQgYnkgdGhlIExpbmtzdGF0aW9uIHBsYXRmb3Jtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KCmNvbW1pdCBjMDU1OWJlMzcxYjJhNjRiMWE4MTcwODhjMzMwODY4OGUyMTgyZjkzCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8am9ha2ltLnRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CU1vbiBBcHIgMTQgMjM6MDE6NTAgMjAwOCArMDIwMAoKICAgIENoYW5nZSBlbnZfZ2V0X2NoYXIgZnJvbSBhIGdsb2JhbCBmdW5jdGlvbiBwdHIgdG8gYSBmdW5jdGlvbi4KCiAgICBUaGlzIGF2b2lkcyBhbiBlYXJseSBnbG9iYWwgZGF0YSByZWZlcmVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+Cgpjb21taXQgM2UwZjMzMWMwNWQ3MmYxNDA3MTVjMWU5ZmNhOTkxOTI3ZTQ0ZDQyMgpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxMjozNTowOCAyMDA4ICswMDAwCgogICAgQ2xlYW4gdXAgc21zYzkxMXggZHJpdmVyCgogICAgUmVwbGFjZSBkaXJlY3QgcmVnaXN0ZXIgYWRkcmVzcyBkZXJlZmVuY2luZyB3aXRoIGFjY2Vzc29yIGZ1bmN0aW9ucy4KICAgIFJlc3RyaWN0IGV4cGxpY2l0bHkgMzItYml0IGJ1cy13aWR0aCwgZXh0ZW5kIGFmZmVjdGVkIGNvbmZpZ3VyYXRpb25zCiAgICByZXNwZWN0aXZlbHkuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkZTFiNjg2Yjc2M2FhOGI4N2E4NmY2NzQ4Y2U5MTY5ZTdmYzBlNGNkCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglUdWUgQXByIDE1IDAwOjA4OjIwIDIwMDggLTA0MDAKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBkcml2ZXIgZm9yIHRoZSBmb2xsb3dpbmcgc21zYyBuZXR3b3JrIGNvbnRyb2xsZXJzOgogICAgTEFOOTExNQogICAgTEFOOTExNgogICAgTEFOOTExNwogICAgTEFOOTIxNQogICAgTEFOOTIxNgogICAgTEFOOTIxNwoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraTxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAzZGZkNGFhYjkyOWNjY2RkYjYzZDllYTUwOTk2Nzg2MWUxMzMzYjUyCkF1dGhvcjogU2FzY2hhIExhdWUgPFNhc2NoYS5MYXVlQGdteC5iaXo+CkRhdGU6CVR1ZSBBcHIgMSAxNToxMzowMyAyMDA4ICswMjAwCgogICAgRml4IHdhdGNoZG9nIFBPU1QgZm9yIGx3bW9uNQoKICAgIElmIHRoZSBoYXJkd2FyZSB3YXRjaGRvZyBkZXRlY3RzIGEgdm9sdGFnZSBlcnJvciwgdGhlIHdhdGNoZG9nIHNldHMKICAgIEdQSU82MiB0byBsb3cuIFRoZSB3YXRjaGRvZyBQT1NUIGhhcyB0byBkZXRlY3QgdGhpcyBsb3cgbGV2ZWwuCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIExhdWUgPGxlZ2xhczBAbGVncGMxODAubGVnLmxpZWJoZXJyLmk+Cgpjb21taXQgMjRiNDQ4NDQ4YTkxN2U1MjgwNmY4MjY2MGE1YzlkNDc2MDg4OTRmYgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEFwciAxIDE1OjIyOjExIDIwMDggKzA4MDAKCiAgICBhdGE6IHVwZGF0ZSB0aGUgbGliYXRhLmggZnJvbSBhdGEuaCBvZiBsaW51eCBrZXJuZWwKCiAgICBDdXJyZW50IGxpYmF0YS5oIG9mIHUtYm9vdCBpcyBvdXQgb2Ygc3luYyBmcm9tIGxpbnV4IGtlcm5lbCwKICAgIHRoaXMgcGF0Y2ggbWFrZSBpdCBiZSBjb25zaXN0ZW50IHdpdGggbGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgoKY29tbWl0IGY4ZjlkYzk4ODgzZjY2ZjU5ZWIwNjAxZGE2NTgwOGU2YjEzOWM4N2MKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTWFyIDMxIDExOjU5OjI3IDIwMDggLTA1MDAKCiAgICBBbGxvdyB1c2Ugb2YgQVJDSD1wb3dlcnBjIHdoZW4gYnVpbGRpbmcKCiAgICBUaGUgbGludXgga2VybmVsIGlzIG5vdyBtb3N0bHkgQVJDSD1wb3dlcnBjLCBzbyB0byBtYWtlIGxpZmUgZWFzaWVyCiAgICBhbGxvdyB1c2UgdG8gdXNlIEFSQ0g9cG93ZXJwYyBhbmQgY29udmVydCBpdCB0byBBUkNIPXBwYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhhZjY1N2QyYzZkMWNhNGYyZjc2OTczNTMxMzk0ZDQ1NzhiYTJlZjAKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIE1hciAzMSAxMDo0MDo1NCAyMDA4ICswOTAwCgogICAgQWRkIGFwb2xsb24gYm9hcmQgTUFJTlRBSU5FUlMgZW50cnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDc3ZTQ3NWNjMGVkMTgzMjE2MDAxN2QzNjRiZTMyYTBiZTlmZjAyYTkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIE1hciAzMSAxMDo0MDozNiAyMDA4ICswOTAwCgogICAgRml4IE9uZU5BTkQgcmVhZAoKICAgIEl0IHNob3VsZCBhY2Nlc3Mgd2l0aCAxNi1iaXQgaW5zdGVhZCBvZiA4LWJpdAoKICAgIE5vdyBpdCB1c2VzIHRoZSBnZW5lcmljIG1lbWNweSB3aXRoIDgtYml0IGFjY2Vzcy4gSXQgbWVhbnMgaXQgcmVhZHMgd3JvbmcgZGF0YSBmcm9tIE9uZU5BTkQuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBhOWRhMmI0MTA3OWQyMzBkYjNhNTY0MTYyNTMxMTk4M2Y4NWNlMWZiCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBNYXIgMzEgMTA6NDA6MTkgMjAwOCArMDkwMAoKICAgIEZpeCBPbmVOQU5EIGVyYXNlIGNvbW1hbmQKCiAgICBJdCBtaXMtY2FsY3VsYXRlcyB0aGUgYmxvY2sgYWRkcmVzcy4KICAgIEFsc28gZml4IERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGluIGVudl9vbmVuYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgNjE1MjVmMmZmYTE1NjY2NWE2NjkwOGZkYTQ3ZGJmMjlkNjVlYTU3OQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglNb24gTWFyIDMxIDAxOjMyOjE1IDIwMDggKzAyMDAKCiAgICBTdXBwb3J0IGZvciBMaW5rU3RhdGlvbiAvIEt1cm9Cb3ggSEQgYW5kIEhHIFBQQyBtb2RlbHMKCiAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSBwb3J0IGJ5IE1paGFpIEdlb3JnaWFuIChzZWUgbGlua3N0YXRpb24uYyBmb3IKICAgIENvcHlyaWdodCBpbmZvcm1hdGlvbikgYW5kIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgTGlua1N0YXRpb24gLyBLdXJvQm94IEhECiAgICBhbmQgSEcgUFBDIG1vZGVscyBmcm9tIEJ1ZmZhbG8gVGVjaG5vbG9neSwgd2hlcmVieSBIRCBpcyBkZWFjdGl2YXRlZCBhdAogICAgdGhlIG1vbWVudCwgcGVuZGluZyBuZXR3b3JrIGRyaXZlciBmaXhpbmcuCgogICAgTm90aWNlIHRvIHVzZXJzOiB0aGlzIGlzIHByZXR0eSBtdWNoIGEgYmFyZWJvbmUgcG9ydC4gU3VwcG9ydCBmb3IgbmV0d29yawogICAgb24gSEcgbW9kZWxzIGlzIGFscmVhZHkgaW4gdGhlIFUtQm9vdCBtYWlubGluZSwgYnV0IHlvdSBtaWdodCBhbHNvIHdhbnQKICAgIHBhdGNoZXMgdG8gc3dpdGNoIGZhbiAvIHBoeSBtb2RlcyBkZXBlbmRpbmcgb24gdGhlIG5lZ290aWF0ZWQgZXRoZXJuZXQKICAgIHBhcmFtZXRlcnMuIFRoaXMgcGF0Y2ggYWxzbyBkb2Vzbid0IHN1cHBvcnQgY29uc29sZSBzd2l0Y2hpbmcsIGJvb3RpbmcgRU0KICAgIG1vZGUsIEJ1ZmZhbG8gc3BlY2lmaWMgZXh0MiBtYWdpYyBudW1iZXIuIFNvLCBpZiB5b3Ugd2FudCB0byB1c2UgYW55IG9mCiAgICB0aG9zZSwgeW91IG5lZWQgYWRkaXRpb25hbCBwYXRjaGVzLiBPdGhlcndpc2UgdGhpcyBwYXRjaGUgcHJvdmlkZXMgYSBmdWxseQogICAgZnVuY3Rpb25hbCB1LWJvb3Qgd2l0aCBhIG5ldHdvcmsgY29uc29sZSBvbiB5b3VyIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMGYzYmE3ZTk3ODNmMzUyMzE4ZjE5N2EzMTQ4ZjZkNWNjM2Q3NWJlYQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBNYXIgMzAgMDE6MjI6MTMgMjAwOCAtMDUwMAoKICAgIEFkZCBDT05GSUdfTUlJX0lOSVQgc3VwcG9ydCB0byByZWxhdGVkIGJvYXJkcwoKICAgIFJlcGxhY2UgQ09ORklHXzh4eCBhbmQgQ09ORklHX01DRjUzMnggdG8gQ09ORklHX01JSV9JTklUIGluCiAgICBjbWRfaW5pdC5jLiBBZGQgQ09ORklHX01JSV9JTklUIHRvIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZXMKICAgIHRoYXQgdXNlIG1paV9pbml0KCkgaW4gY21kX2luaXQuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZjMzZmNhMjJlNzZmMjBlNGU0NzkzODEwY2E3YTA2YTQ4MDVhNmNmNApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBNYXIgMzAgMDE6MTk6MDYgMjAwOCAtMDUwMAoKICAgIFVwZGF0ZSBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFIHRvIHJlbGF0ZWQgYm9hcmRzCgogICAgUmVtb3ZlIHRlc3QgZm9yIENPTkZJR19NUEM1MjAwIGluIGRyaXZlcnMvcGNpL3BjaV9hdXRvLmMgYW5kIGRlZmluZQogICAgQ09ORklHX1BDSUFVVE9fU0tJUF9IT1NUX0JSSURHRSBpbiByZWxhdGVkIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOTljY2I0ODgxODFkMDEyMjQ4YzZiZTMwYjIwOTNlOTUwMzE5ZmM1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE1hciAyNyAxMTo0NjozOCAyMDA4IC0wNTAwCgogICAgSW50cm9kdWNlIHBoeXNfc2l6ZV90IGFuZCBtb3ZlIHBoeXNfYWRkcl90IGludG8gYXNtL3R5cGVzLmgKCiAgICBBbHNvIGFkZCBDT05GSUdfUEhZU182NEJJVCBvbiBwb3dlcnBjIHRvIGRlYWwgd2l0aCAzMi1iaXQgcHBjJ3MKICAgIHRoYXQgaGF2ZSBsYXJnZXIgcGh5c2ljYWwgYWRkcmVzc2VzIGxpa2UgNDR4LCA4NXh4LCBhbmQgODZ4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDIwYTE0YTQyYTI1ZjcyZTM3OWYzODQ2MGI4YTg0ODQ2Njc1MzY3OTUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMiAxNjoxOTowNyAyMDA4IC0wNTAwCgogICAgUmVuYW1lIGluY2x1ZGUvbWQ1LmggdG8gaW5jbHVkZS91LWJvb3QvbWQ1LmgKCiAgICBTb21lIHN5c3RlbXMgaGF2ZSBtZDUuaCBpbnN0YWxsZWQgaW4gL3Vzci9pbmNsdWRlLy4gVGhpcyBpc24ndCB0aGUKICAgIGRlc2lyZWQgZmlsZSAod2Ugd2FudCB0aGUgb25lIGluIGluY2x1ZGUvbWQ1LmgpLiBUaGlzIHdpbGwgYXZvaWQgdGhlCiAgICBjb25mbGljdC4gVGhpcyBmaXhlcyB0aGUgaG9zdCB0b29scyBidWlsZGluZyBwcm9ibGVtIGJ5IGNyZWF0aW5nIGEgbmV3CiAgICBkaXJlY3RvcnkgZm9yIFUtQm9vdCBzcGVjaWZpYyBoZWFkZXIgZmlsZXMuCgogICAgW1BhdGNoIGJ5IEFuZHkgRmxlbWluZywgbW9kaWZpZWQgdG8gdXNlIHNlcGFyYXRlIGRpcmVjdG9yeSBieSBXb2xmZ2FuZwogICAgRGVua10KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjI5N2I3YTFlYzg3NDMzZjY2MzIwZDg5ZDk5M2UxYmM3MzhjNjZiOApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAxODo1MToxNyAyMDA4ICswODAwCgogICAgZHJpdmVyczogY29kZSBjbGVhbiB1cAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGZmN2NiYTRhMmU1MWM5MDgyN2Y2ZDIxYTBiMjhiNGQ2NzEwOTU5NwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAxODo1MDo0MSAyMDA4ICswODAwCgogICAgZHJpdmVyczogY2xlYW4gdXAgdGhlIGF0YV9waWl4LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU4ZjdiYTQwNGYxNDA5NjA2OTYyODE1ZWNjOTU1YTA2OTg0YjA4YjMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjcgMTg6NDk6NTYgMjAwOCArMDgwMAoKICAgIGRvYzogZW5nbGlzaCBwb2xpc2hpbmcgZm9yIFJFQURNRS5zYXRhCgogICAgYWNjb3JkaW5nIHRvIGd2YidzIHN1Z2dlc3Rpb24sIHBvbGlzaGluZyBmb3IgdGhlIGRvYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZXJyeSBWYW4gQmFyZW4gPGdlcmFsZC52YW5iYXJlbkBnZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNlM2Y3NjZhNTI3NGQyMDQ3ODA0NjBlMTg3OTcyM2I1NjUyOTZkMzQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTWFyIDI2IDE4OjUzOjI4IDIwMDggLTA1MDAKCiAgICBGaXggd2FybmluZ3MgaW50cm9kdWNlZCBieSBJMkMgYnVzIHNwZWVkIHNldHRpbmcgcGF0Y2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNjNzM1ZTc0MzcxNTBlODYxNWYyNjkzMGM3ODE5ZGI4NTYzNDI3NmQKQXV0aG9yOiBlcmFuIGxpYmVydHkgPGVyYW4ubGliZXJ0eUBnbWFpbC5jb20+CkRhdGU6CVRodSBNYXIgMjcgMDA6NTA6NDkgMjAwOCArMDEwMAoKICAgIEFsdGVyYSBTdHJhdGl4IElJIHN1cHBvcnQKCiAgICBBZGRzIFN1cHBvcnQgZm9yIEFsdGVyYSdzIFN0cmF0aXggSUkuCgogICAgV2l0aGluIHlvdXIgYm9hcmQgc3BlY2lmaWMgaW5pdCBmaWxlIHlvdSB3aWxsIGhhdmUgdG8gY2FsbAoKICAgIDEuIGZwZ2FfaW5pdCAoLyogcmVsb2NhdGVkIGNvZGUgb2Zmc2V0LiB1c3VhbGx5ID0+ICovIGdkLT5yZWxvY19vZmYpOwogICAgMi4gZnBnYV9hZGQgKGZwZ2FfYWx0ZXJhLCAoQWx0ZXJhX2Rlc2MqKSZhbHRlcmFfZGVzYyk7CgogICAgQWx0ZXJhX2Rlc2MqIGNvbnRpbmVzIChmb3IgZXhhbXBsZSk6Cgl7CgkgQWx0ZXJhX1N0cmF0aXhJSSwJLyogcGFydCB0eXBlICovCgkgcGFzc2l2ZV9zZXJpYWwsCS8qIGludGVyZmFjZSB0eXBlICovCgkgMSwJCQkvKiBieXRlcyBvZiBkYXRhIHBhcnQgY2FuIGFjY2VwdCAqLwoJICh2b2lkICopKCZmdW5jcyksCS8qIGludGVyZmFjZSBmdW5jdGlvbiB0YWJsZSAqLwoJIDBMLAkJCS8qIGJhc2UgaW50ZXJmYWNlIGFkZHJlc3MgKi8KCSAwCQkJLyogaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgY29va2llICovCgkgfQoKICAgIGZ1bmNzIGlzIHRoZSBpbnRlcmZhY2UuIEl0IGlzIG9mIHR5cGUgYWx0ZXJhX2JvYXJkX3NwZWNpZmljX2Z1bmMuCiAgICBJdCBsb29rcyBsaWtlIHRoaXM6CiAgICBhbHRlcmFfYm9hcmRfc3BlY2lmaWNfZnVuYyBmdW5jID0gewoJcHJlX2ZuLAoJY29uZmlnX2ZuLAoJc3RhdHVzX2ZuLAoJZG9uZV9mbiwKCWNsa19mbiwKCWRhdGFfZm4sCglhYm9ydF9mbiwKCXBvc3RfZm4sCiAgICB9OwoKICAgIHlvdSB3aWxsIGhhdmUgdG8gaW1wbGVtZW50IHRoZXNlIGZ1bmN0aW9ucywgd2hpY2ggaXMgdXN1YWxseSBiaXQKICAgIGJhbmdpbmcgc29tZSBncGlvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVyYW4gTGliZXJ0eSA8bGliZXJ0eUBleHRyaWNvbS5jb20+Cgpjb21taXQgNWVjZTllYzlmNmNkNTI5NTBhYjg0OGUyZmU0MjJkYWNmMWQzYTMzNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMTMgMTQ6MzI6NTQgMjAwOCAtMDcwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVhZDg2MjE2NmFhMjRkNjJhNjlhYTljNzA4ZjZiMmY1YzBkMjhmYjcKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NDE6MTcgMjAwOCArMDEwMAoKICAgIFBoeXRlYyBQaHljb3JlLWkuTVgzMSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBQaHl0ZWMgUGh5Y29yZS1pLk1YMzEgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgY2FlYmM5NWJlM2I0MmU1MTQ3YjVmYWM3NjcyYWM0YjI2OTNlZjdlMQpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE1hciAyNiAyMDo0MTowOSAyMDA4ICswMTAwCgogICAgbXgzMSBsaXRla2l0IHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG14MzEgbGl0ZWtpdCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjZGFjZTA2NjEyMDg3NTRhNTMwMTllYTBkYzdiODAzYTA0MGUwOTM5CkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgTWFyIDI2IDIwOjQwOjQ5IDIwMDggKzAxMDAKCiAgICBhZGQgYW4gaTJjIGRyaXZlciBmb3IgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBpMmMgZHJpdmVyIGZvciBGcmVlc2NhbGUgaS5NWCBwcm9jZXNzb3JzCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDliNTZmNGYwMzA2ZjM5NDBiMGFhZmQ4MjNlZDZlY2ZjMmQ3NWQ2YzYKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NDA6NDIgMjAwOCArMDEwMAoKICAgIGNvcmUgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIG14MzEKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvcmUgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIG14MzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgN2VjNjg4NjJhMjdjOGY2ZjZkNTY2MjI4ZGU4ZjY3MjRkOTY0YTkzOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMTMgMTQ6MTk6MjMgMjAwOCAtMDcwMAoKICAgIEZpeCBjb21waWxlIGVycm9yCgogICAgLi4uYXMgc3VnZ2VzdGVkIGJ5IFBldGVyIFBlYXJzZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTI1MmVkOTUyMDRiZGY1NWJlYzVhOTBlYTY5ODYwYmYyZjc4YzY0MwpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE1hciAyNiAyMDo0MDozNiAyMDA4ICswMTAwCgogICAgU2VwYXJhdGUgb21hcDI0eHggc3BlY2lmaWMgY29kZSBmcm9tIGFybTExMzYKCiAgICBNb3ZlIG9tYXAyNHh4IGNvZGUgdG8gY3B1L2FybTExMzYvb21hcDI0eHgsIHJlbmFtZSBpbmNsdWRlL2FzbS1hcm0vYXJjaC1hcm0xMTM2CiAgICB0byBjcHUvYXJtMTEzNi9vbWFwMjR4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMWYxZDg4ZGQ0MDgxNTMzMmRmMzI5ODJlNzM5ZjJkZGQyZGE2ZmUxYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEphbiAyOSAxODoyMTowNSAyMDA4IC0wNTAwCgogICAgZGlzYWJsZSBjYWNoZXMgYmVmb3JlIGJvb3RpbmcgYW4gYXBwIGZvciBCbGFja2ZpbiBhcHBzCgogICAgSXQgaXNuJ3QgZ2VuZXJhbGx5IHNhdmUgdG8gZXhlY3V0ZSBhcHBsaWNhdGlvbnMgb3V0c2lkZSBvZiBVLUJvb3Qgd2l0aCBjYWNoZXMKICAgIGVuYWJsZWQgZHVlIHRvIHRoZSB3YXkgdGhlIEJsYWNrZmluIHByb2Nlc3NvciBoYW5kbGVzIGNhY2hlcyAocmVxdWlyZXMKICAgIHNvZnR3YXJlIGFzc2lzdGFuY2UpLiAgVGhpcyBwYXRjaCBkaXNhYmxlcyBjYWNoZXMgYmVmb3JlIGJvb3RpbmcgYW4gRUxGIG9yCiAgICBqdXN0IGJvb3RpbmcgcmF3IGNvZGUuICBUaGUgcHJldmlvdXMgZGlzY3Vzc2lvbiBvbiB0aGUgcGF0Y2ggd2FzIHRoYXQgd2UKICAgIHdhbnRlZCB0byB1c2Ugd2Vha3MgaW5zdGVhZCwgYnV0IHRoYXQgcHJvdmVkIHRvIG5vdCBiZSBmZWFzaWJsZSB3aGVuIG11bHRpcGxlCiAgICBzeW1ib2xzIGFyZSBpbnZvbHZlZCwgd2hpY2ggcHV0cyB1cyBiYWNrIGF0IHRoZSBpZmRlZiBzb2x1dGlvbi4gIEkndmUKICAgIG1pbmltaXplZCB0aGUgdWdsaW5lc3MgYnkgbW92aW5nIHRoZSBzZXR1cCBzdGVwIG91dHNpZGUgb2YgdGhlIG1haW4gZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGU2ZGZlZDcwNWVmYTQ0ZWJmMDBkMjFiYjE1ODhjNmNjYzhmM2FkMzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXByIDEzIDEwOjAzOjU0IDIwMDggLTA3MDAKCiAgICBwcGM6IEdldCByaWQgb2YgdW51c2VkIG1hY2hpbmUgdHlwZSBkZWZpbml0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWFlZWQ4ZDcxYWNiMzI5MGNmMjQ0NmYzMTZkNmJhNDM3ZTc4ODFjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMTMgMDk6NTk6MjYgMjAwOCAtMDcwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3NzU0ZjMzYzZmYjdhMmMwNTAzODhkMjBiZjM4NDcwMzg1NThiZGNmCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBGZWIgMjEgMTM6NTg6MTEgMjAwOCAtMDUwMAoKICAgIExNNzMgYnVnIGZpeCBmb3IgbmVnYXRpdmUgdGVtcGVyYXR1cmVzIGFuZCBjbGVhbnVwCgogICAgV2hlbiB0aGUgTE03MyB0ZW1wZXJhdHVyZSBzZW5zb3IgbWVhc3VyZXMgYSB0ZW1wZXJhdHVyZSBiZWxvdyAwIEMsIHRoZQogICAgY3VycmVudCBkcml2ZXIgZG9lcyBub3QgcGVyZm9ybSBzaWduIGV4dGVuc2lvbiwgc28gdGhlIHJlc3VsdCByZXR1cm5lZCBpcwogICAgNTEyIEMgdG9vIGhpZ2guICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLCBhbmQgZG9lcyBnZW5lcmFsIGNsZWFudXAKICAgIG9mIHRoZSBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDk2ZWY4MzFmNzEzMjg5YWZiYTE5ZGEwYzhmOTA1ZTk5ZGEyYjIzZTAKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxMzozNjowMiAyMDA4ICswMjAwCgogICAgY2ZpX2ZsYXNoOiBTdXBwb3J0IGJ1ZmZlcmVkIHdyaXRlcyBvbiBub24tc3RhbmRhcmQgU3BhbnNpb24gTk9SIGZsYXNoCgogICAgU29tZSBOT1IgZmxhc2ggY2hpcCBmcm9tIFNwYW5zaW9uLCBmb3IgZXhhbXBsZSwgdGhlIHMyOXdzLW4gTWlycm9yQml0CiAgICBzZXJpZXMgcmVxdWlyZSBkaWZmZXJlbnQgYWRkcmVzc2VzIGZvciBidWZmZXJlZCB3cml0ZSBjb21tYW5kcy4gRGVmaW5lIGEKICAgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHN1cHBvcnQgYnVmZmVyZWQgd3JpdGVzIG9uIHRob3NlIGNoaXBzLiBBIG1vcmUKICAgIGVsZWdhbnQgc29sdXRpb24gd291bGQgYmUgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhvc2UgY2hpcHMgYnkgcGFyc2luZwogICAgdGhlaXIgQ0ZJIHJlY29yZHMsIGJ1dCB0aGF0IHdvdWxkIHJlcXVpcmUgaW50cm9kdWN0aW9uIG9mIGEgZml4dXAgdGFibGUKICAgIGludG8gdGhlIGNmaV9mbGFzaCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDNmOWM1NDJkM2Q2OWIxYTEwYTVlMTkzZTc3OTEzM2EwNDU0ZDFmNDQKQXV0aG9yOiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMTAgMDk6MzU6MDYgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IFVwZGF0ZSBESU1NIGRhdGEgYnVzIHdpZHRoIHRlc3QgdG8gc3VwcG9ydCA0MC1iaXQgd2lkdGgKCiAgICAzMi1iaXQgd2lkZSBFQ0MgbWVtb3J5IG1vZHVsZXMgcmVwb3J0IDQwLWJpdCB3aWR0aC4KICAgIENoYW5nZWQgdGhlIERJTU0gZGF0YSBidXMgd2lkdGggdGVzdCB0byAnbGVzcyB0aGFuIDY0JyBpbnN0ZWFkIG9mICdlcXVhbCAzMicuCgogICAgU2lnbmVkLW9mZi1ieTogTGVlIE5pcHBlciA8bGVlLm5pcHBlckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZmI1YTY4OWQ4MjJjYTYxZTgxNGJkNTIzZmM5MzBhZjMzNTI0MmZhCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDMxIDE3OjA1OjEyIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIGJ1ZyBvZiBzZXJkZXMgaW5pdGlhbGl6YXRpb24KCiAgICBDdXJyZW50bHkgdGhlIHNlcmRlcyB3aWxsIG5vdCBiZSBpbml0aWFsaXphdGVkIGR1ZSB0byB0aGUKICAgIHBhcnRpZCdzIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwMDA3ODQ4MThmMDQzZGI3Y2E2MGUyODQ2YTcyZDA5Nzc2NmI4OTQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMyAxNjoyODoyOSAyMDA4ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBTQVRBIGNsb2NrIHNldHRpbmcgb2YgODM3eCB0YXJnZXRzCgogICAgQ3VycmVudGx5IHRoZSBTQVRBIGNvbnRyb2xsZXIgY2xvY2sgaXMgY29uZmlndXJlZCBhcyBDU0IgY2xvY2ssCiAgICB1c3VhbGx5IHRoZSBDU0IgY2xvY2sgaXMgNDAwLzMzMy8yNjZNSHouCgogICAgSG93ZXZlciwgVGhlIFNBVEEgSVAgYmxvY2sgaXMgb25seSBndWFyYW50ZWVkIHRvIG9wZXJhdGUgdXAgdG8KICAgIDIwMCBNSHogYXMgc3RhdGVkIGluIHRoZSBIVyBzcGVjLgoKICAgIFRoZSBidWcgaXMgcmVwb3J0ZWQgYnkgSm9lIEQnQWJicmFjY2lvIDxsamQwMTVAZnJlZXNjYWxlLmNvbT4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBTQVRBIGNsb2NrIGFzIGhhbGYgb2YgQ1NCIGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhYzRmMzIwYmYwYjU5M2FhMGE3NDFmMmQ2NDlhOGVjZTg4Mzg2NzIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDIgMTM6NDE6MjEgMjAwOCArMDIwMAoKICAgIG1wYzgzN3hlcmRiOiBGaXggd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZkdF9maXh1cF9kcl91c2InCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTdiM2VjYjU3NWE5MmZhMzRjMTc2NTIyOWRiYzA2ZjJiNjYyZjEzOQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBcHIgOSAwNDoyMDo1NyAyMDA4IC0wNTAwCgogICAgODV4eDogRml4IGRldGVjdGlvbiBvZiBNUCBjcHUgc3BpbiB1cAoKICAgIFdlIHdlcmUgbG9va2luZyBhdCB0aGUgd3JvbmcgbWVtb3J5IG9mZnNldCB0byBkZXRlcm1pbmUgb2YgYSBzZWNvbmRhcnkKICAgIGNwdSBoYWQgYmVlbiBzcHVuIHVwIG9yIG5vdC4gIEFsc28gYWRkZWQgYSB3YXJuaW5nIG1lc3NhZ2UgaWYgdGhlCiAgICBhbGwgdGhlIHNlY29uZGFyeSBjcHVzIHdlIGV4cGVjdCBkb24ndCBzcGluIHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjNlMDRiZGMzZjM2MGM2NjgwMWE5MDQ4OTU2ZTYxZTQxYTE2ZWRiYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBcHIgOCAxMDo0NTo1MCAyMDA4IC0wNTAwCgogICAgODV4eDogVXNlIFNWUl9TT0NfVkVSIGluc3RlYWQgb2YgU1ZSX1ZFUgoKICAgIFRoZSByZWNlbnQgY2hhbmdlIGludHJvZHVjZWQgYnkgJ1VwZGF0ZSBTVlIgbnVtYmVycyB0byBleHBhbmQgc3VwcG9ydCcKICAgIG5vdyByZXF1aXJlcyB0aGF0IHdlIHVzZSBTVlJfU09DX1ZFUiBpbnN0ZWFkIG9mIFNWUl9WRVIgaWYgd2Ugd2FudAogICAgdG8gY29tcGFyZSBhZ2FpbnN0IGEgcGFydGljdWxhciBwcm9jZXNzb3IgaWQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1YjIwNTJlNWY1ZmNjZTVkYmQ0ZDI3NTBhMjljMGU0NWJjZTgwNmU3CkF1dGhvcjogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KRGF0ZToJRnJpIEFwciAxMSAxMDowMDozNSAyMDA4IC0wNDAwCgogICAgcHBjNHh4OiBGaXggcG93ZXIgbWd0IGRlZmluaXRpb25zIGZvciBQUEM0NDAKCiAgICBDb3JyZWN0ZWQgRENSIGFkZHJlc3NlcyBvZiBQUEM0NDBFUCBwb3dlciBtYW5hZ2VtZW50IHJlZ2lzdGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgoKY29tbWl0IDk1MGEzOTI0NjRlNjE2YjQ1OTBiYzQ1MDFiZTQ2ZTJkN2QxNjJkZWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDExIDE1OjExOjI2IDIwMDggKzAyMDAKCiAgICBSZXZlcnQgbWVyZ2Ugb2YgZ2l0Oi8vd3d3LmRlbnguZGUvZ2l0L3UtYm9vdC1hcm0sIGNvbW1pdCA2MjQ3OWIxODoKCiAgICBSZXZlcnRpbmcgYmVjYW1lIG5lY2Vzc2FyeSBhZnRlciBpdCB0dXJuZWQgb3V0IHRoYXQgdGhlIHBhdGNoZXMgaW4KICAgIHRoZSB1LWJvb3QtYXJtIHJlcG8gd2VyZSBtb2RpZmllZCwgYW5kIGluIHNvbWUgY2FzZXMgY29ycnVwdGVkLgoKICAgIFRoaXMgcmV2ZXJ0cyB0aGUgZm9sbG93aW5nIGNvbW1pdHM6CgoJMDY2YmViZDYzNTNlMzNhZjNhZGVmYzM0MDQ1NjA4NzE2OTllOTk2MQoJN2E4MzdiNzMxMDE2NmFlOGZjOGI4ZDY2ZDdlZjAxYjYwYTgwZjlkNgoJYzg4YWUyMDU4MGIyYjAxNDg3YjRjZGNjOGIyYTExM2Y1NTFhZWUzNgoJYTE0N2U1NmYwMzg3MWJiYTRmMDUwNThkNWUwNGNlN2RlYjAxMGIwNAoJZDY2NzRlMGUyYTZhMWYwMzM5NDVmNzg4Mzg1NjYyMTBkM2YyOGM5NQoJOGM4NDYzY2NlNDRkODQ5ZTM3NzQ0NzQ5YjMyZDM4ZTFkZmIxMmU1MAoJYzk4YjQ3YWQyNGIyZDkxZjQxYzA5YTNkNjJkN2Y3MGFkODRmNGI3ZAoJOGJmNjlkODE3ODI2MTkxODc5MzNhNjA1ZjFhOTVlZTFkMDY5NDc4ZAoJOGMxNmNiMGQzYjk3MWY0NmZiZTc3YzA3MjY2NGMwZjJkY2Q0NDcxZAoJYTU3NGE3Mzg1MmE1Mjc3NzkyMzRlNzNlMTdlNzU5N2ZkODEyODg4MgoJMTM3N2I1NTgzYTQ4MDIxZDk4M2UxZmQ1NjVmN2Q0MGM4OWU4NGQ2MwoJMTcwNGRjMjA5MTdiNGY3MWUzNzNlMmM4ODg0OTdlZTY2NmQ0MDM4MAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjRlNTQxZjRjMWI0MTNkZDg0YzdlNDA5ZjVjMmJmMzI4ZGIyYWMxMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAxMSAwNzowMjoyOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2lsYXVlYSBkZWZjb25maWcgdG8gdXNlIGRldmljZS10cmVlIGJvb3RpbmcgYXMgZGVmYXVsdAoKICAgIFRoaXMgcGF0Y2ggcmV3b3JrcyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCBvbiBLaWxhdWVhL0hhbGVha2FsYS4gTm93CiAgICAibmV0X25mcyIgZm9yIGV4bWFwbGUgdXNlcyB0aGUgZGV2aWNlLXRyZWUgc3R5bGUgYm9vdGluZyBmb3JtZXJseSBrbm93CiAgICBhcyAibmV0X25mc19mZHQiLiBBbHNvIHRoZSBhZGRyZXNzZXMgaW4gUkFNIHdlcmUgY2hhbmdlZCBiZWNhdXNlIG9mIHRoZQogICAgbmV3IGltYWdlIGJvb3Rpbmcgc3VwcG9ydCwgd2hpY2ggY2hlY2sgZm9yIGltYWdlIG92ZXJ3cml0aW5nLiBTbyB0aGUKICAgIGFkZHJlc3NlcyBuZWVkZWQgdG9nZWV0IGFkanVzdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NTZmNWRhY2RhMzgxMGIwOTRiOTRiY2NlZmZkM2NlNmM3ZmY5YTI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDkgMTE6NTg6MDIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IENhbnlvbmxhbmRzIGRlZmF1bHQgZW52aXJvbm1lbnQgdG8gd29yayB3aXRoIG5ldyBpbWFnZSBzdXBwb3J0CgogICAgU2luY2UgdGhlIG5ldyBpbWFnZSBzdXBwb3J0IGNoZWNrcyBmb3IgaW1hZ2Ugb3ZlcndyaXRpbmcsIHRoZSBkZWZhdWx0CiAgICBlbnZpcm9ubWVudCBuZWVkcyB0byBnZXQgYWRqdXN0ZWQgdG8gdXNlIGNvcnJlY3QgYWRkcmVzc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZmM2YzdiNjQ3ZGJhN2FiODY3NDk2MTZmMGU5ZTU3NDBkZWVkNDIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDkgMTE6NTQ6MTEgMjAwOCArMDIwMAoKICAgIHBwYzogUmV2ZXJ0IHBhdGNoIDcwNDMxZThhIHRoYXQgdXNlZCBfc3RhcnQgaW5zdGVhZCBvZiBDRkdfTU9OSVRPUl9CQVNFCgogICAgVGhlIHBhdGNoIDcwNDMxZThhNzM5M2I2Yjc5M2Y3Nzk1N2Y5NWI5OTlmYzlhMjY5YjggKE1ha2UgTVBDODN4eCBvbmUgc3RlcAogICAgY2xvc2VyIHRvIGZ1bGwgcmVsb2NhdGlvbi4pIGRvZXNuJ3QgdXNlIENGR19NT05JVE9SX0JBU0UgYW55bW9yZS4gQnV0CiAgICBvbiA0eHggc3lzdGVtcyBfc3RhcnQgY3VycmVudGx5IGNhbm5vdCBiZSB1c2VkIGZvciB0aGlzIGNhbGN1bGF0aW9uLgogICAgU28gcmV2ZXJ0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZlcnNpb24gZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjkxMzc0ZjY1ZWFlOGI0MmNhYzMyOWUwNmJhMWM1NDcyODI3OGVmYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMjo0OTo1MiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogU29ydCBtaWNyb2JsYXplIGJvYXJkcyBpbiBNQUtFQUxMIHNjcmlwdAoKY29tbWl0IDYyMDMyZGViNzIxNGM2ZDliNDM5NjI5N2UyYWFhNTU5YmMyZjg0OTUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTE6NTg6NDUgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGNsZWFuIG1pY3JvYmxhemVfY29uZmlnLm1rCgogICAgRkxBR1MgYXJlIGdlbmVyYXRlZCBieSBVLUJPT1QgZ2VuZXJhdG9yLgogICAgQm9hcmQgc3BlY2lmaWMgRkxBR1MgYXJlIGluIGJvYXJkIGRpcmVjdG9yeQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBjZjVjNjc5Y2EwNGE2YjU0YmY1M2E1NWI4YjljMjkzMzViMzg3Mjg3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjQ3OjE5IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiB4dXB2MnAgZml4IGNvbmZpZyBmaWxlIGZvciBzdXBwb3J0aW5nIEZEVAoKY29tbWl0IDE4OGRjMTZiMTg5MTQzNTczYjFlZDkwZTU4NGJmODY2ZDc1Y2RkMTIKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTE6NTM6MDIgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IG1sNDAxIGZpeCBjb25maWcgZmlsZSBmb3Igc3VwcG9ydGluZyBGRFQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgNGM2YTZmMDJlMjM5MjM2MjYxMzMzNzU5OTk3ZWVhZjg2YjMwYjU0YwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMToyMjo0OCAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogbWw0MDEgLSBhZGQgaWZkZWYgZm9yIEdQSU8KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgYWY3YWUxYTQxMWM2N2VlOWQxN2E2NmQxN2NlNTBiMzc0ZjNkZDRlNwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMjoxMzowMyAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogY2xlYW4gdWFydDE2NTUwIGFuZCB1YXJ0bGl0ZSBoYW5kbGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCAwYjIwZjI1MDg3NzQ0MTQ2MGZiNzlkNzIxOTI5NTRhYmU4NDk4ODM0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjA4OjMxIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBBZGQgRW1hY2xpdGUgZHJpdmVyIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDg2OGNkZTUzMTBmODgyMzRiNzc0ODc4ZTRmMDZlNzlkZjEwYTg4YjMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDg6MDEgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IEFkZCBFbWFjIGRyaXZlciB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA2Zjk2MWI0ZjQ2MWY2Y2JiODNhNDY3ZDQ2OGEwMmU2MDc4YzJiMzI3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjQyOjI5IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBhZGQgRW1hYyBldGhlcm5ldCBkcml2ZXIKCmNvbW1pdCA4OWM1Mzg5MWIxOGNiYWZkMjlhYjg5MzFiNDBlMjdhZDIzMWI2MDg1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjQxOjU2IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBhZGQgRW1hY2xpdGUgZXRoZXJuZXQgZHJpdmVyCgpjb21taXQgZTU4NDVlMjEyMjRkYmUyZmU0N2IxMWYxY2RmOTVkZTdmODRiZTdjYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTowNDowMSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogTUw0MDEgYW5kIFhVUFYyUCByZW1vdmUgZW1hYyBhbmQgZW1hY2xpdGUgcmVmZXJlbmNlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDZiZjNlOTgyYWVmZGIxZGFmOWY1NDYyZDQ4MmM4ZjlkMWNjOTBhNTcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTA6NTk6MzIgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IHJlbW92ZSBvbGQgc2V0dGluZyBmb3IgZW1hYyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgY2QyYjc1ZWZiOWNjMDM3Yzc0ZWNlZTliMzU4NmY5YmY5ZTFkNGU1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMDo1ODoxNSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogQ2xlYW4gTWFrZWZpbGUgZnJvbSBhbmNpZW50IGVtYWMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGFiNjhmOTIxZDljNzQxODMwZjcyMWMzZDg3OWMxM2EwYzU1OTcxODMKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTA6MjA6NDMgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04yOiBhZGRlZCBzdXBwb3J0IGZvciBHYWlzbGVyIHNpbXVsYXRvciBHUlNJTS9UU0lNIGZvciBTUEFSQy9MRU9OMiB0YXJnZXRzLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgNmVkOGE0M2ExOWJiMDI3NTUwMWJjMjg2MDA3ZGFhZmE5MjM1NTJjZgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMzozODo0OCAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjM6IGFkZGVkIHN1cHBvcnQgZm9yIEdSLUNQQ0ktQVgyMDAwIEZQR0EgQVggYm9hcmQuIFRoZSBGUEdBIGlzIGV4Y2hhbmdlYWJsZSBidXQgYSBzdGFuZGFyZCBMRU9OMyBkZXNpZ24gaXMgYXNzdW1lZC4gU2VlIHd3dy5nYWlzbGVyLmNvbSBmb3IgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDY5NDAzODNkOWVjMWJmZTJmMTNlMzM5ZTZmNzIzZThkMzRhZjJiMTIKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjM6MzQ6NDcgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBhZGRlZCBzdXBwb3J0IGZvciBBbHRlcmEgTklPUyBEZXZlbG9wbWVudCBraXQgKFNUUkFUSVggSUkgRWRpdGlvbikgd2l0aCBHUkxJQiB0ZW1wbGF0ZSBkZXNpZ24uIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA4MjNlZGQ4YTY2ZWQ1MGFmNWFhYmEwYzc5NTY3ZjY3MDYxZTRkNzlhCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjA2OjUyIDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR2Fpc2xlciBHUlNJTS9UU0lNMiBTUEFSQy9MRU9OMyBzaW11bGF0b3JuLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgNzFkN2U0YzA0ODllNWVkOGZjNjkzODIyMzZhYWEyYTFlNTEwYzEzNQpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMzoyNjo0OCAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjM6IGFkZGVkIHN1cHBvcnQgZm9yIEdSLVhDM1MtMTUwMCBib2FyZCB3aXRoIEdSTElCIHRlbXBsYXRlIGRlc2lnbi4gU2VlIHd3dy5nYWlzbGVyLmNvbSBmb3IgYm9hcmQgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGIzMzA5OTBjMmYzNmVlNGE4YmIzMTgzNjBlMWM4YmE5NjUyNjlhYjYKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTA6MDA6MzMgMjAwOCArMDEwMAoKICAgIFNQQVJDOiBBZGRlZCBzdXBwb3J0IGZvciBTUEFSQyBMRU9OMiBTT0MgUHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCAyYTJmYTc5N2U2M2IxZTNjZDRkNTcwMzE4Y2E1ZmJmODcyM2VmNTNhCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjAwOjM4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogQWRkZWQgQU1CQSBCdXMgUGx1ZyZQbGF5IGluZm9ybWF0aW9uIHByaW50IGNvbW1hbmQgKGFtYmFwcCkuIEl0IGNhbiBwcmludCBhdmFpbGFibGUgY29yZXMgKHR5cGU6IEFIQiBNYXN0ZXIsIEFIQiBTbGF2ZSwgQVBCIFNsYXZlKSwgdGhlaXIgYWRkcmVzcyByYW5nZXMsIElSUSBudW1iZXIgYW5kIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDFlOWExNjRlMjI5NzY5MzMwMDJjNWU0YjBiNzliMDlmY2VkZTljZDQKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTE6MjkgMjAwOCArMDEwMAoKICAgIFNQQVJDOiBBZGRlZCBzdXBwb3J0IGZvciBTUEFSQyBMRU9OMyBTT0MgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCBiZjNkOGIzMTE2OTU0NmZjZGRiNDczNzM5MWUxODkzZmIxMmQwMzNhCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA4OjI5OjI2IDIwMDggKzAxMDAKCiAgICBTUEFSQzogYWRkZWQgU1BBUkMgc3VwcG9ydCBmb3IgbmV3IHVpbWFnZSBpbiBjb21tb24gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgMDBhYjMyYzg1NDA1YTRmZTY1ZmQ0MTI4MjQzMDg2MjEwZmM5MGEyMQpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjozNjowMyAyMDA4ICswMTAwCgogICAgU1BBUkM6IGFkZGVkIFNQQVJDIGJvYXJkIGluZm9ybWF0aW9uIHRvIHRoZSBjb21tYW5kIGJkaW5mby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgYzJmMDJkYTIxYTNmMzdmMDg3ODU1NGVlYmM3ODVlMDRmZGM0ZTEyOApBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAwOTo0NzowMCAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIGdlbmVyaWMgc3VwcG9ydCBmb3IgU1BBUkMgYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCBlNTRlYzBmMDE2ODAzZTRkOTUyNGZmNzFmNzk3MWJkYTBjNTFiMjg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTQ6NTA6MzQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IDR4eCBlbmV0IGRyaXZlciB0byBzdXBwb3J0IDQ2MEdUIEVNQUMyKzMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBSR01JSSBzZXR1cCBvZiB0aGUgNDYwR1QuIFRoZSA0NjBHVAogICAgaGFzIDIgUkdNSUkgaW5zdGFuY2VzIGFuZCB3ZSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgMm5kIFJHTUlJIGluc3RhbmNlCiAgICBmb3IgdGhlIEVNQUMyKzMgY2hhbm5lbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMyYTU0NWNlMzNiMjZkODAzMzdmODBiNTMzODI4ODM5MjQ5ZmIxYzkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDIgMDg6MDM6NTYgMjAwOCArMDIwMAoKICAgIE1QQzh4eDogRml4IGxpYmZkdCBzdXBwb3J0IGludHJvZHVjZWQgaW4gY29tbWl0IDc3ZmY3Yjc0CgogICAgZmR0LmM6IEluIGZ1bmN0aW9uICdmdF9jcHVfc2V0dXAnOgogICAgZmR0LmM6MzM6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdkb19maXh1cF9ieV9wcm9wX3UzMicKICAgIGZkdC5jOjM5OiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZG9fZml4dXBfYnlfY29tcGF0X3UzMicKICAgIGZkdC5jOjQzOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZmR0X2ZpeHVwX2V0aGVybmV0JwogICAgZmR0LmM6NDU6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmZHRfZml4dXBfbWVtb3J5JwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGFiZDg0NGQ4ZWIxMDg3MzZlMWNmOGZiZjNkYmY2MWYyZDVmYzExYgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAzMSAyMDo0NTo1NiAyMDA4IC0wNTAwCgogICAgRml4IGZkdCBzZXQgY29tbWFuZCB0byBjb25mb3JtIHRvIGR0cyBzcGVjCgogICAgVGhlIGZkdCBzZXQgY29tbWFuZCB3YXMgdHJlYXRpbmcgcHJvcGVydGllcyBzcGVjaWZpZWQgYXMgPDAwPiBhbmQgPDAwMTE+CiAgICBhcyBieXRlIHN0cmVhbXMsIHJhdGhlciB0aGFuIGFzIGFuIGFycmF5IG9mIGNlbGxzLglBcyB3ZSBhbHJlYWR5IGhhdmUKICAgIHN5bnRheCBmb3IgZXhwcmVzc2luZyB0aGUgZGVzaXJlIGZvciBhIHN0cmVhbSBvZiBieXRlcyAoWyB4eCB4eCAuLi5dKSwKICAgIHdlIHNob3VsZCB1c2UgdGhlIDw+IHN5bnRheCB0byBkZXNjcmliZSBhcnJheXMgb2YgY2VsbHMsIHdoaWNoIGFyZSBhbHdheXMKICAgIDMyLWJpdHMgcGVyIGVsZW1lbnQuICBJZiB3ZSBpbWFnaW5lIHRoaXMgbGlrZWx5IChJTUhPKSBzY2VuYXJpbzoKCiAgICA+IGZkdCBzZXQgL2V0aGVybmV0LXBoeUAxIHJlZyA8MT4KCiAgICBXaXRoIHRoZSBvbGQgY29kZSwgdGhpcyB3b3VsZCBjcmVhdGUgYSBiYWQgZmR0LCBzaW5jZSB0aGUgcmVnIGNlbGwgd291bGQgYmUKICAgIG1hZGUgdG8gYmUgb25lIGJ5dGUgaW4gbGVuZ3RoLiAgQnV0IHRoZSBjZWxsIG11c3QgYmUgNCBieXRlcywgc28gdGhpcyB3b3VsZAogICAgYnJlYWsgbXlzdGVyaW91c2x5LgoKICAgIEFsc28sIHRoZSBkdHMgc3BlYyBjYWxscyBmb3IgY29uc3RhbnRzIGluc2lkZSB0aGUgYW5nbGUgYnJhY2tldHMgKDw+KQogICAgdG8gY29uZm9ybSB0byBDIGNvbnN0YW50IHN0YW5kYXJkcyBhcyB0aGV5IHBlcnRhaW4gdG8gYmFzZS4KICAgIFRha2UgdGhpcyBzY2VuYXJpbzoKCiAgICA+IGZkdCBzZXQgL2V0aGVybmV0QGYwMCByZWcgPDB4ZTI1MDAwMFwgMHgxMDAwPgoKICAgIFRoZSBvbGQgZmR0IGNvbW1hbmQgd291bGQgY29tcGxhaW4gdGhhdCBpdCBjb3VsZG4ndCBwYXJzZSB0aGF0LiAgT3IsIGlmIHlvdQogICAgd2FudGVkIHRvIHNwZWNpZnkgdGhhdCBhIGNlcnRhaW4gY2xvY2sgcmFuIGF0IDMzIE1IeiwgeW91J2QgYmUgcmVxdWlyZWQgdG8KICAgIGRvIHRoaXM6CgogICAgPiBmZHQgc2V0IC9teWRldiBjbG9jayA8MWY3OGE0MD4KCiAgICBXaGVyZWFzIHRoZSBuZXcgY29kZSB3aWxsIGFjY2VwdCBkZWNpbWFsIG51bWJlcnMuCgogICAgV2hpbGUgSSB3YXMgaW4gdGhlcmUsIEkgZXh0ZW5kZWQgdGhlIGZkdCBjb21tYW5kIHBhcnNlciB0byBoYW5kbGUgcHJvcGVydHkKICAgIHN0cmluZ3Mgd2hpY2ggYXJlIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSBhcmd1bWVudHM6CgogICAgPiBmZHQgc2V0IC9ldGhlcm5ldEBmMDAgaW50ZXJydXB0cyA8IDMzIDIgMzQgMiAzNiAyID4KICAgID4gZmR0IHAgL2V0aGVybmV0QGYwMAogICAgZXRoZXJuZXRAZjAwIHsKCWludGVycnVwdHMgPSA8MHgyMSAweDIgMHgyMiAweDIgMHgyNCAweDI+OwogICAgfTsKCiAgICBMYXN0bHksIHRoZSBmZHQgcHJpbnQgY29kZSB3YXMgcmVhcnJhbmdlZCBzbGlnaHRseSB0byBwcmludCBhcnJheXMgb2YgY2VsbHMKICAgIGlmIHRoZSBsZW5ndGggb2YgdGhlIHByb3BlcnR5IGlzIGEgbXVsdGlwbGUgb2YgNCBieXRlcywgYW5kIHRvIG5vdCBwcmludAogICAgbGVhZGluZyB6ZXJvcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWMyOTI2YWJkZDdkYjg5Mjk2YThjYzdmMjI0ZGQ5ZDVkNGUzN2E1NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAyIDA4OjM5OjMzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENhbnlvbmxhbmRzOiBJbml0IFNBVEEvUENJZSBwb3J0IGNvcnJlY3RseQoKICAgIENhbnlvbmxhbmRzICg0NjBFWCkgc2hhcmVzIHRoZSBmaXJzdCBQQ0llIGludGVyZmFjZSB3aXRoIHRoZSBTb0MgU0FUQQogICAgaW50ZXJmYWNlLiBUaGlzIHVzYWdlIGNhbiBiZSBjb25maWd1cmVkIHdpdGggdGhlIGp1bXBlciBKNi4gVGhpcyBwYXRjaAogICAgY29ycmVjdGx5IGNvbmZpZ3VyZXMgdGhlIFNBVEEvUENJZSBQSFkgZm9yIFNBVEEgdXNhZ2Ugd2hlbiB0aGlzIGp1bXBlcgogICAgaXMgaW5zdGFsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZmUyOTQ2ZjE5ODQ4MTI1NGE2ZWU5NjAwZDc0NTZiODMxNmE0MDgzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxNzozNzo0OSAyMDA4IC0wNTAwCgogICAgcmVtb3ZlIHJlbWFpbmluZyBDT05GSUdfT0ZfSEFTX3tVQk9PVF9FTlYsQkRfVH0gY29kZQoKICAgIGZpbmlzaCBvZmYgd2hhdCBjb21taXQgNDNkZGQ5YzgyMGZlYzQ0ODE2MTg4ZjUzMzQ2YjQ2NGUyMGIzMTQyZCwKICAgICJSZW1vdmUgZGVwcmVjYXRlZCBDT05GSUdfT0ZfSEFTX1VCT09UX0VOViBhbmQgQ09ORklHX09GX0hBU19CRF9UIgogICAgc3RhcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI1ODczZjE3MzJiOTJhMjU2OTBlMTUxM2I5MGRmYjBkNjQ0ZjY2OTcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgQXByIDEgMDc6MzA6NTEgMjAwOCArMDIwMAoKICAgIGRhdGFmbGFzaDogTW92ZSBDT05GSUdfSEFTX0RBVEFGTEFTSCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmQ5MzRlYTUxZjI3NjUyMmI1MzJmODcwYTgyMGU4NDRmZjQ4MGI1YgpBdXRob3I6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTU6Mjk6NDUgMjAwOCArMDEwMAoKICAgIEFkZCBWaXRlc3NlIDg2MDEgc3VwcG9ydCB0byBUU0VDIGRyaXZlcgoKICAgIEFkZCBwaHlfaW5mbyBmb3IgVml0ZXNzZSBWU0M4NjAxLgogICAgQWRkIGNvbmZpZyBvcHRpb24sIENGR19WU0M4NjAxX1NLRVdGSVgsIHRvIGVuYWJsZSBSR01JSSBza2V3IHRpbWluZyBjb21wZW5zYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KICAgIFJldmlld2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAzZWFjNjQwMmE1MDhiMGY2OGEyMWNjOWNiYzJjYzQ5MzQ3ZGUwYzMxCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglNb24gTWFyIDMxIDE0OjI1OjAwIDIwMDggKzAwMDAKCiAgICBTUEFSQzogYWRkZWQgU01DOTExMTEgZHJpdmVyIGluIGFuZCBvdXQgbWFjcm9zIGZvciBMRU9OIHByb2Nlc3NvcnMuCgogICAgVGhpcyBwYXRjaCBtYWtlcyBTUEFSQy9MRU9OIHByb2Nlc3NvcnMgYWJsZSB0byByZWFkIGFuZCB3cml0ZQogICAgdG8gdGhlIFNNQzkxMTExIGNoaXAgdXNpbmcgdGhlIGNoaXAgZXh0ZXJuYWwgSS9PIGJ1cyBvZiB0aGUgbWVtb3J5CiAgICBjb250cm9sbGVyLiBUaGlzIHBhdGNocyBkZWZpbmVzIHRoZSBzdGFuZGFyZCBpbiBhbmQgb3V0IG1hY3JvcwogICAgZXhwZWN0ZWQgYnkgdGhlIFNNQzkxMTEgZHJpdmVyLgoKICAgIFRvIGFjY2VzcyB0aGF0IEkvTyBidXMgb25lIG11c3Qgc2V0IHVwIHRoZSBtZW1vcnkgY29udHJvbGxlcgogICAgKE1DVFJMIG9yIEZUTUNUUkwpIGNvcnJlY3RseS4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSB1c2VyIHNldHMKICAgIHVwIHRoaXMgY29ycmVjdGx5IHdoZW4gdGhlIG90aGVyIE1DVFJMIHBhcmFtZXRlcnMgYXJlIHNldCB1cC4gSXQKICAgIGNhbiBiZSBzZXQgdXAgZnJvbSB0aGUgYm9hcmQgY29uZmlndXJhdGlvbiBoZWFkZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNjYTdjNTU4ZWJhMzYzMzI1NTZiYzQ3MGQ0NWUyZjVkNDJiZDBjYTYKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDE4OjUyOjM0IDIwMDggKzAxMDAKCiAgICBBZGQgbWFpbnRhaW5lcnNoaXAgaW5mb3JtYXRpb24gZm9yIEFUOTFDQVA5QURLIGFuZCBBVDkxU0FNOTI2MEVLIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNGUwM2RkZTg0ZGQyYzkxZTMyN2NkYzIzYWUxMTlkNDMyNTU5YTdhMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMjE6MzE6MDQgMjAwOCArMDIwMAoKICAgIEFUOTFTQU05MjYwRUs6IE1vdmUgQ09ORklHX0NNRF9OQU5EIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwMTc2ZDQzZTc1OWE2ZTAwY2FjYzg1ZWZmMjZmZDYwZjc0YjRmNmI3CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAxODo1MjozMyAyMDA4ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEFUOTFTQU05MjYwRUsKCiAgICBTdXBwb3J0IGZvciBib290aW5nIGZyb20gaW50ZXJuYWwgRGF0YUZsYXNoLCBleHRlcm5hbCBEYXRhRmxhc2ggY2FyZAogICAgb3IgTkFORCBmbGFzaCBpcyBhdmFpbGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCAxNzYyZjEzYjRhYWI4OGI2ODViMTcyMmYxN2RhZGEyNDc5NDU2MjRiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAyMToyMDo0OSAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTk6IE1vdmUgQ09ORklHX0hBU19EQVRBRkxBU0ggdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDc2MTcxMjE4OGIzNTM0OTRkZWZiMmI2NDQ0OTFmZjczZDBkYWFhNmYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gTWFyIDMxIDIxOjEyOjE3IDIwMDggKzAyMDAKCiAgICBBVDkxQ0FQOUFESzogTW92ZSBDT05GSUdfQ01EX05BTkQgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk4M2MxZGIwNGMxZGQwZjkyZTAyZjA2ZDI5ZjBjNjVhM2Q5YTI2ODcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIwOjUyOjMyIDIwMDggKzAxMDAKCiAgICBQb3J0IEFUOTFDQVA5IHRvIHRoZSBuZXcgaGVhZGVycwoKICAgIEFkYXB0IHRoZSBleGlzdGluZyBBVDkxQ0FQOSBjb2RlIHRvIHRoZSBuZXcgaGVhZGVycyBhbmQgQVBJcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDE3N2U4YTVhYzgxYmJjNTMxYTFkNTRhYmRiNDdmMjg2MDI2NmMzYWEKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDE5OjUyOjMxIDIwMDggKzAxMDAKCiAgICBGaW5pc2ggaGVhZGVyIGZpbGVzIHJld29ya2luZwoKICAgIFJlcGxhY2UgQVQ5MUNBUDkuaCBmaWxlIHdpdGggc2V2ZXJhbCBzcGxpdHRlZCBoZWFkZXIgZmlsZXMgY29taW5nCiAgICBmcm9tIHRoZSBMaW51eCBrZXJuZWwuCgogICAgVGhpcyBpcyBwYXJ0IDIgb2YgdGhlIHJlcGxhY2VtZW50OiBtb3JlIGhlYWRlciBpbXBvcnRzIGFuZCBlZGl0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDZkMWRiYmJmOWZkZjcyNzM4NDAwMmU1NTNlNjE1YzE1ZDhiOTY3ZjQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDE5OjUyOjMwIDIwMDggKzAxMDAKCiAgICBJbXBvcnQgc2V2ZXJhbCBoZWFkZXIgZmlsZXMgZnJvbSBMaW51eAoKICAgIFJlcGxhY2UgQVQ5MUNBUDkuaCBmaWxlIHdpdGggc2V2ZXJhbCBzcGxpdHRlZCBoZWFkZXIgZmlsZXMgY29taW5nCiAgICBmcm9tIHRoZSBMaW51eCBrZXJuZWwuCgogICAgVGhpcyBpcyBwYXJ0IDEgb2YgdGhlIHJlcGxhY2VtZW50OiBwcmlzdGluZSBoZWFkZXIgZmlsZXMgaW1wb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgYThhNzhmMmQ5OWRjMWJkMzBkYzM1OTVkYTExODUzOWI1MDZjNjExOApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NTI6MjggMjAwOCArMDEwMAoKICAgIE1vdmUgYXQ5MWNhcDkgc3BlY2lmaWMgZmlsZXMgdG8gYXQ5MXNhbTkgZGlyZWN0b3J5CgogICAgQVQ5MUNBUDkgYW5kIEFUOTFTQU05IFNvQ3MgYXJlIHZlcnkgY2xvc2UgaGFyZHdhcmUgd2lzZSwgc28gYQogICAgY29tbW9uIGluZnJhc3RydWN0dXJlIGNhbiBiZSB1c2VkLiBMZXQgdGhpcyBpbmZyYXN0cnVjdHVyZSBiZQogICAgbmFtZWQgYWZ0ZXIgdGhlIEFUOTFTQU05IGZhbWlseSwgYW5kIG1vdmUgdGhlIGV4aXN0aW5nIEFUOTFDQVA5CiAgICBmaWxlcyB0byB0aGUgbmV3IHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNjExMDZhNTY1ODcwZmY1MDNmOTJiMjUxYjk0YmQ3YWZlZjg4OWEwNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMjE6NTI6MjcgMjAwOCArMDEwMAoKICAgIFVzZSB0aW1lcl9pbml0KCkgaW5zdGVhZCBvZiBib2FyZCBzdXBwbGllZCBpbnRlcnJ1cHRfaW5pdCgpCgogICAgVGhlIHRpbWVyIG9uIEFUOTFDQVA5L0FUOTFTQU05IGlzIHN1cHBsaWVkIGJ5IHRoZSBTb0MsIGFuZCBub3QgYnkKICAgIHRoZSBib2FyZCwgc28gdXNlIHRpbWVyX2luaXQoKSBpbnN0ZWFkIG9mIGludGVycnVwdF9pbml0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA1NjA0ZTIxNzhjNTIxOGZiZmRiYTJlNDI5M2NhNzY1MmU4MjlhYzI1CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMTo1MjozNiAyMDA4ICswMTAwCgogICAgQ2xlYW51cCBEYXRhRmxhc2ggcGFydGl0aW9uIGhhbmRsaW5nCgogICAgRGF0YUZsYXNoIHBhcnRpdGlvbiBpbmZvcm1hdGlvbiBoYXMgYmVjb21lIGEgbWVzcy4gVGhpcyBwYXRjaAogICAgZGVmaW5lcyBhIHNpbmdsZSBwYXJ0aXRpb24gc2NoZW1lIGZvciBBdG1lbCBEYXRhRmxhc2hlcy4gVGhpcyBwYXJ0aXRpb24KICAgIHNjaGVtZSB3aWxsIGJlIHVzZWQgYnkgYWxsIEFUOTFDQVA5IGFuZCBBVDkxU0FNOSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA5YjQ2NDMyZmM2NWNlMGYwODI2YjMyZTRmMTVjMTViMzNjY2I4ZDQyCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAwODo0Nzo0NSAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBhbGlnbm1lbnQgaXNzdWUgYWZ0ZXIgQ09ORklHX0lERU5UX1NUUklORyBpbiBzdGFydC5TCgogICAgV2hlbiB0aGUgdmVyc2lvbl9zdHJpbmcgZnVuY3Rpb24gaW4gc3RhcnQuUyBpcyBub3QgNC1ieXRlIGFsaWduLAogICAgaXQgd2lsbCBjYXVzZSB0aGUgY29tcGlsZXIgZ2VuZXJhdGVzICJ1bmFsaWduZWQgb3Bjb2RlcyBkZXRlY3RlZAogICAgaW4gZXhlY3V0YWJsZSBzZWdtZW50Ii4gVGhpcyBpc3N1ZSBhZmZlY3RzIGFsbCBDb2xkRmlyZSBDUFVzLgogICAgQnkgYWRkaW5nIC5hbGlnbiA0IGFmdGVyIENPTkZJR19JREVOVF9TVFJJTkcsIGl0IHdpbGwgcGFkIDAncyBpZgogICAgaXQgaXMgbm90IGFsaWduZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYWU2MWVlZmUxNWI0ZDQ1NDA2MGE3MTQwZTQ5YWU1ODMyMmJlODAzCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAyNSAxNTo0MToxNSAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBkc3BpIGFuZCBzZXJpYWwgZmxhc2ggc3VwcG9ydCBmb3IgTUNGNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4ZWFkN2E3YTkyMmZjZWFmNDk0ZTM1MmFiZmFiODIxNmE0MWI0MTcKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDE4IDE3OjM3OjAxIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogUmVtb3ZlIFI1MjAwIGJvYXJkCgogICAgVGhpcyBib2FyZCBuZXZlciB3ZW50IGludG8gcHJvZHVjdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFphY2hhcnkgUC4gTGFuZGF1IDx6YWNoYXJ5LmxhbmRhdUBsYWJ4dGVjaG5vbG9naWVzLmNvbT4KICAgIEFja2VkLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU0NWM4ZTBhN2NkM2NhOWQzODQ2NjY4ZjY5YjBkMjAxMjUwYWJlYTgKQXV0aG9yOiBNYXR0aGV3IEZldHRrZSA8W21hdHRoZXcuZmV0dGtlQGdtYWlsLmNvbV0+CkRhdGU6CVRodSBKYW4gMjQgMTQ6MDI6MzIgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGRlZCBNNTI3NUVWQiBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgRmV0dGtlIDxtZmV0dGtlQHZpZGVvbi1jZW50cmFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjcxZDlkOTFhMmNkOWMzMGIyYjYzNjlmMTVjMWE0NmMxMTUzN2MyYgpBdXRob3I6IE1hdHRoZXcgRmV0dGtlIDxbbWF0dGhldy5mZXR0a2VAZ21haWwuY29tXT4KRGF0ZToJTW9uIEZlYiA0IDE1OjM4OjIwIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkZWQgTUNGNTI3NSBjcHUgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEZldHRrZSA8bWZldHRrZUB2aWRlb24tY2VudHJhbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0ZTViOWVkYWIwNzdhYmE2ZTliODQ5YWZhNGI3ZmJkOGZkN2IwMmIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDE3IDEyOjE0OjExIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRGVmaW5lIGJvb3RkZWxheSBpbiBjb25maWd1cmF0aW9uIGZpbGUgZm9yIE01MjI3N0VWQgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHQgV2FkZWwgPE1hdHQuV2FkZGVsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3Nzg3OGYxNmNlZGVlMTcxNjFmZjIzMzY5OTA5NzBmZmZjNmNlYTM1CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAxNyAxMjowOTowNyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBzZWNvbmQgbWVtb3J5IENoaXBzZWxlY3QgZm9yIE01NDc1RVZCCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0M2Q2MDY0MjM5NWE1NTA5NTZjYjIxZDI4N2M4Y2ZhNTYzOTEzZDI4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAxMyAxNDoyNjozMiAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBjb3JyZWN0IEZMQVNIQkFSIGFuZCBSQU1CQVIxIGZvciBNQ0Y1MjgyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYjE0ZWJlODEzYTBjYjVkNDc5MDUyMjhkYTQ0NmE1YWQ2OTI0NzNiCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVN1biBNYXIgMzAgMjA6MzM6MDQgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogQWRkIENGR19NRU1fVE9QX0hJREUgdG8gRGVuYWxpIFNQRC1iYXNlZCBTRFJBTSBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDAyZTM4OTIwMjExMTJmMjEwNjdkOWVkMWQwNGFlNDE4MjcyNWJhNTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMzEgMTI6MjA6NDggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogU21hbGwgd2hpdGVzcGFjZSBmaXggb2YgZXNkIHBhdGNoZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDM0Mzk0YWJiNTI0Nzg1MDQ3YzgxNWYwMGRkZThjZGJkYzE1OTNjNQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglTdW4gTWFyIDMwIDE4OjUyOjQ0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgUE1DNDQwIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhNmNjNmMzNzE4OGQ4NWMyNWQxNjdhNDUxNWRhODZmNDhkOWE1ODNlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTg6NTI6MDYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIHB0bSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgUE1DNDQwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBwdG0xbGEsIHB0bTFtcywgcHRtMmxhIGFuZCBwdG0ybXMKICAgIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCiAgICBDbGVhbnVwIHBjaV90YXJnZXRfaW5pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3YzkxZjUxYTJmZTI5NjkwOTE0N2YxNjQ2YTE0MTI3MjlkZDEwYjFkCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTg6MDE6MTUgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTWlub3IgdXBkYXRlcyBmb3IgRFU0NDAgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDViZmZlYjg2OGQ2YjRkNDYyZjU1OGRhYzQzMDExMDI3YjY2NDRiNwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEZlYiAxOSAwMDo1NDoyMCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGNsZWFudXAgYW5kIG92ZXJoYXVsIGNvbW1vbiBib2FyZCBpbml0IGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiODZiMzQxNmY4NzQzNThhY2FmMDc1MTllNzYyMGNkYjIxNDVmNzViCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjUwOjU4IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogY2xlYW51cCBsaWJfYmxhY2tmaW4vY2FjaGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA5MTcxZmM4MTcyMmMyMGZkYjVhODI5YTU4YjE3YzllYWFkZDVmYjQ0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gTWFyIDMwIDE1OjQ2OjEzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogdW5pZnkgY3B1IGFuZCBib290IG1vZGVzCgogICAgQWxsIG9mIHRoZSBkdXBsaWNhdGVkIGNvZGUgZm9yIEJsYWNrZmluIHByb2Nlc3NvcnMgYW5kIGJvb3QgbW9kZXMgaGF2ZSBiZWVuCiAgICB1bmlmaWVkLiAgQWZ0ZXIgYWxsLCB0aGUgY29yZSBpcyB0aGUgc2FtZSBmb3IgYWxsIHByb2Nlc3NvcnMsIGp1c3QgdGhlCiAgICBwZXJpcGhlcmFsIHNldCBkaWZmZXJzICh3aGljaCBnZXRzIGhhbmRsZWQgaW4gdGhlIGRyaXZlcnMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4ODBjYzQzODFlYTgzNjAyNDhjZGRjZGY4N2E2NDU2Njc0NWE1NzI0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MjozNSAyMDA4ICswMTAwCgogICAgRml4IENGR19OT19GTEFTSCBjb21waWxhdGlvbi4KCiAgICBNYW55IEF0bWVsIGJvYXJkcyBoYXZlIG5vICJyZWFsIiAoTk9SKSBmbGFzaCBvbiBib2FyZCwgYW5kIHJlbHkgb25seQogICAgb24gRGF0YUZsYXNoIGFuZCBOQU5EIG1lbW9yaWVzLiBUaGlzIHBhdGNoIGVuYWJsZXMgQ0ZHX05PX0ZMQVNIIHRvCiAgICBiZSBwcmVzZW50IGluIGEgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlLCB3aGlsZSBzdGlsbCBlbmFibGluZyBmbGFzaAogICAgY29tbWFuZHMgbGlrZSAnZmxpbmZvJywgJ3Byb3RlY3QnLCBldGMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA5Y2U3ZTUzYWJkMDM5ZGVjZWExYWY2N2FlYzgxYmJkNWRmN2EyNTkzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjU4OjEzIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogQkY1Mzctc3RhbXA6IGNsZWFudXAgc3BpIGZsYXNoIGRyaXZlcgoKICAgIFRoaXMgcHVudHMgdGhlIG9sZCBzcGkgZmxhc2ggZHJpdmVyIGZvciBhIG5ldy9nZW5lcmFsaXplZCBvbmUgdW50aWwgdGhlCiAgICBjb21tb24gb25lIGNhbiBiZSBpbnRlZ3JhdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiYjhlM2NmMjViYzBiMDQ5MzZjMGMxYTA3NTk4NWRkODcwMGEyNDRiCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxMTozNDozNCAyMDA4IC0wNDAwCgogICAgRml4IG1hY3JvIHR5cG8gaW4gY29tbW9uL2NtZF9taWkuYwoKICAgIFRoaXMgdHlwbyB3YXMgaW50cm9kdWNlZCBpbiBjb21taXQgMjMzYThiY2Q5NDk5N2YzZjM0NTgzM2EzYjgyZTgzNjIyMmYyYTIwNi4gIEkKICAgIGFjdHVhbGx5IGFwcGxpZWQgdGhlIHdyb25nIHBhdGNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZjFiOTg1ZjJkNzI0Y2NhYTRkM2RlZjA3OTE3ZjBjYWFmMThmYTc3ZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTY6Mzk6NTMgMjAwOCArMDIwMAoKICAgIHVzZSBjb3JyZWN0IGF0OTFybTkyMDAgcmVnaXN0ZXIgbmFtZSBpbiBtNTAxc2sgYm9hcmQKCiAgICBUaGlzIGZpeGVzIGEgbmFtaW5nIGJ1ZyBmb3IgYXQ5MXJtOTIwMCBsb3dsZXZlbCBpbml0IGNvZGU6CiAgICBOT1IgYm9vdCBmbGFzaCBpcyBvbiBjaGlwc2VsZWN0IDAsIG5vdCBjaGlwc2VsZWN0IDIuICBUaGlzCiAgICBtYWtlcyBjb2RlIHVzZSB0aGUgcmVnaXN0ZXIgbmFtZSBmcm9tIGNoaXAgZGF0YXNoZWV0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQ4MGVkMWRlYTEwM2ExYzhmNDU5MWFmYzc3ZDJkZTNjNzg2OGQ5ODMKQXV0aG9yOiBEYXZpZCBCcm93bmVsbCA8ZGF2aWQtYkBwYWNiZWxsLm5ldD4KRGF0ZToJRnJpIEphbiAxOCAxMjo1NTowMCAyMDA4IC0wODAwCgogICAgdXNlIGNvcnJlY3QgYXQ5MXJtOTIwMCByZWdpc3RlciBuYW1lCgogICAgVGhpcyBmaXhlcyBhIG5hbWluZyBidWcgZm9yIGF0OTFybTkyMDAgbG93bGV2ZWwgaW5pdCBjb2RlOgogICAgTk9SIGJvb3QgZmxhc2ggaXMgb24gY2hpcHNlbGVjdCAwLCBub3QgY2hpcHNlbGVjdCAyLiAgVGhpcwogICAgbWFrZXMgY29kZSB1c2UgdGhlIHJlZ2lzdGVyIG5hbWUgZnJvbSBjaGlwIGRhdGFzaGVldHMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYTM1NDNkNmRjNTJiMGJhOWM2NDAxNjY4N2NmMzJkNjAwYjMxYTQ3NgpBdXRob3I6IERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgpEYXRlOglGcmkgSmFuIDE4IDEyOjQ1OjQ1IDIwMDggLTA4MDAKCiAgICBhZGQgbWlzc2luZyBBUk0gYm9hcmRzIHRvIE1BS0VBTEwKCiAgICBBZGQgc29tZSBtaXNzaW5nIEFSTSBib2FyZHMgdG8gTUFLRUFMTC4gIFRoZXNlIGJ1aWxkIGNvcnJlY3RseSwKICAgIHVubGlrZSBzZXZlcmFsIG9mIHRoZSBib2FyZHMgYWxyZWFkeSBsaXN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgQnJvd25lbGwgPGRicm93bmVsbEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMDY2YmViZDYzNTNlMzNhZjNhZGVmYzM0MDQ1NjA4NzE2OTllOTk2MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzQ6MDkgMjAwOCArMDEwMAoKICAgIEJyYWNrZXQgUkVBRF9USU1FUiBtYWNybyBpbiBjcHUvYXJtMTEzNi9vbWFwMjR4eC9pbnRlcnJ1cHRzLmMKICAgIHRvIHByZXZlbnQgY29tcGlsYXRpb24gZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCA3YTgzN2I3MzEwMTY2YWU4ZmM4YjhkNjZkN2VmMDFiNjBhODBmOWQ2CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxbbGdAZGVueC5kZV0+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MzAgMjAwOCArMDEwMAoKICAgIFN1cHBvcnQgZm9yIHRoZSBNWDMxQURTIGV2YWx1YXRpb24gYm9hcmQgZnJvbSBGcmVlc2NhbGUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIE1YMzFBRFMgZXZhbHVhdGlvbiBib2FyZCBmcm9tIEZyZWVzY2FsZSwKICAgIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgY29waWVkIGZyb20gUmVkQm9vdCBzb3VyY2VzLCBhbHNvIHByb3ZpZGVkIGJ5IEZyZWVzY2FsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzg4YWUyMDU4MGIyYjAxNDg3YjRjZGNjOGIyYTExM2Y1NTFhZWUzNgpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjoyNyAyMDA4ICswMTAwCgogICAgUGh5dGVjIFBoeWNvcmUtaS5NWDMxIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFBoeXRlYyBQaHljb3JlLWkuTVgzMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBhMTQ3ZTU2ZjAzODcxYmJhNGYwNTA1OGQ1ZTA0Y2U3ZGViMDEwYjA0CkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjMyOjI0IDIwMDggKzAxMDAKCiAgICBteDMxIGxpdGVraXQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbXgzMSBsaXRla2l0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGQ2Njc0ZTBlMmE2YTFmMDMzOTQ1Zjc4ODM4NTY2MjEwZDNmMjhjOTUKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MjEgMjAwOCArMDEwMAoKICAgIGFkZCBTTVNDIExBTjl4MXggTmV0d29yayBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBkcml2ZXIgZm9yIHRoZSBmb2xsb3dpbmcgc21zYyBuZXR3b3JrIGNvbnRyb2xsZXJzOgogICAgTEFOOTExNQogICAgTEFOOTExNgogICAgTEFOOTExNwogICAgTEFOOTIxNQogICAgTEFOOTIxNgogICAgTEFOOTIxNwoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA4Yzg0NjNjY2U0NGQ4NDllMzc3NDQ3NDliMzJkMzhlMWRmYjEyZTUwCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjMyOjE2IDIwMDggKzAxMDAKCiAgICBhZGQgYW4gaTJjIGRyaXZlciBmb3IgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBpMmMgZHJpdmVyIGZvciBGcmVlc2NhbGUgaS5NWCBwcm9jZXNzb3JzCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGM5OGI0N2FkMjRiMmQ5MWY0MWMwOWEzZDYyZDdmNzBhZDg0ZjRiN2QKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzA6NDMgMjAwOCArMDEwMAoKICAgIGNvcmUgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIG14MzEKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvcmUgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIG14MzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgOGJmNjlkODE3ODI2MTkxODc5MzNhNjA1ZjFhOTVlZTFkMDY5NDc4ZApBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMToyODo0NiAyMDA4ICswMTAwCgogICAgU2VwYXJhdGUgb21hcDI0eHggc3BlY2lmaWMgY29kZSBmcm9tIGFybTExMzYKCiAgICBNb3ZlIG9tYXAyNHh4IGNvZGUgdG8gY3B1L2FybTExMzYvb21hcDI0eHgsIHJlbmFtZSBpbmNsdWRlL2FzbS1hcm0vYXJjaC1hcm0xMTM2IHRvIGNwdS9hcm0xMTM2L29tYXAyNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA4YzE2Y2IwZDNiOTcxZjQ2ZmJlNzdjMDcyNjY0YzBmMmRjZDQ0NzFkCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxMToyMzowNSAyMDA4ICswMTAwCgogICAgQWRkIHBtZHJhIGludG8gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+Cgpjb21taXQgYTU3NGE3Mzg1MmE1Mjc3NzkyMzRlNzNlMTdlNzU5N2ZkODEyODg4MgpBdXRob3I6IFBpZXRlciBWb29ydGh1aWpzZW4gPFtwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sXT4KRGF0ZToJU3VuIE1hciAzMCAxMToyMTo1OCAyMDA4ICswMTAwCgogICAgQWRkcyBzdXBwb3J0IGZvciB0aGUgUHJvZHJpdmUgUE1EUkEgYm9hcmQsIGJhc2VkIG9uIGEgRE02NDQxCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTM3N2I1NTgzYTQ4MDIxZDk4M2UxZmQ1NjVmN2Q0MGM4OWU4NGQ2MwpBdXRob3I6IFBpZXRlciBWb29ydGh1aWpzZW4gPFtwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sXT4KRGF0ZToJU3VuIE1hciAzMCAxMToxMTozNCAyMDA4ICswMTAwCgogICAgUmVtb3ZlcyBhbGwgYm9hcmQgc3BlY2lmaWMgY29kZSBmcm9tIHRoZSBhcmNoLiBwYXJ0IGZvciBETTY0NHggKERhVmluY2kpIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFBpZXRlciBWb29ydGh1aWpzZW4gPHB2QHByb2RyaXZlLm5sPgoKY29tbWl0IDE3MDRkYzIwOTE3YjRmNzFlMzczZTJjODg4NDk3ZWU2NjZkNDAzODAKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxMTowOTowMSAyMDA4ICswMTAwCgogICAgLSBSZW1vdmUgKl9tYXNrZWQoKSBmdW5jdGlvbnMgYXMgbm90ZWQgYnkgV29sZmdhbmcKICAgIC0gQWRhcHQgcmVnaXN0ZXIgbmFtaW5nIHRvIHJlY2VudCBUSSBzcGVjIChzcHJ1ZTI2LCBNYXJjaCAyMDA3KQogICAgLSBGaXggcmVzZXRfdGltZXIoKSBoYW5kbGluZwogICAgLSBBcyByZXBvcnRlZCBieSBQaWV0ZXIgWzFdIHRoZSBvdmVyZmxvdyBmaXggaW50cm9kdWNlZCBhCiAgICBkZWxheSBvZiBmYWN0b3IgMTYgKGUuZyAyIHNlY29uZHMgYmVjYW1lIDMyKS4gV2hpbGUgdGhlCiAgICBvdmVyZmxvdyBmaXggaXMgYmFzaWNhbGx5IG9rYXksIGl0IG1pc3NlZCB0byBkaXZpZGUgdWRlbGF5IGJ5CiAgICAxNiwgdG9vLiBGaXggdGhpcy4KICAgIFsxXSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC5ib290LWxvYWRlcnMudS1ib290LzM4MTc5CiAgICAtIFJlbW92ZSBzb2Z0d2FyZSBkaXZpc2lvbiBvZiB0aW1lciBjb3VudCB2YWx1ZSAoRElWKHgpCiAgICBtYWNybykgYW5kIGRvIGl0IGluIGhhcmR3YXJlIChUSU1fQ0xLX0RJVikuCiAgICBNYW55IHRoYW5rcyB0byBUcm95IEtpc2t5IDx0cm95Lmtpc2t5QGJvdW5kYXJ5ZGV2aWNlcy5jb20+CiAgICBhbmQgUGlldGVyIFZvb3J0aHVpanNlbiA8cGlldGVyLnZvb3J0aHVpanNlbkBQcm9kcml2ZS5ubD4gZm9yCiAgICB0aGUgaGludHMgJiB0ZXN0aW5nIQoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKICAgIEFja2VkLWJ5OiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPgoKY29tbWl0IGFjMzMxNWMyNmUxNDNjMzE2ODA3NTBjOWMxM2YwMjdlZmJjYzg4N2UKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CVRodSBNYXIgNiAxNjo0NTo0NCAyMDA4ICswMTAwCgogICAgbmV3IFBIWSBAIGUxMDAwIC0gMm5kIHRyeQoKICAgIEFkZCA4MjU0MUVSIGRldmljZSB3aXRoIGxhdGVzdCBpbnRlZ3JhdGVkIElHUDIgUEhZLgogICAgSW50cm9kdWNlZCBDT05GSUdfRTEwMDBfRkFMTEJBQ0tfTUFDIGZvciBOSUMgYnJpbmctdXAgd2l0aCBlbXB0eSBlZXByb20uCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjMmI3ZGE1NTIyOTNiNTBjOWM5ZTQ2ZWQ3MTI2N2IwMmMyZGU5ZWE4CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDIwOjIyOjUzIDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogQWRkZWQgR1JFVEggRXRoZXJuZXQgMTAvMTAwLzEwMDAgZHJpdmVyLgoKICAgIEdSRVRIIGlzIGFuIEV0aGVybmV0IDEwLzEwMCBvciAxMC8xMDAvMTAwMCBNQUMgd2l0aCBvdXQgd2l0aG91dAogICAgYSBkZWJ1ZyBsaW5rIChFRENMKS4gVGhlIEdSRVRIIGNvcmUgaXMgZG9jdW1lbnRlZCBpbiBHUklQLnBkZgogICAgYXZhaWxhYmxlIGF0IHd3dy5nYWlzbGVyLmNvbS4KCiAgICBJZiB0aGUgR1JFVEggaGFzIEdpZ2FCaXQgc3VwcG9ydCAoR0JJVCwgU2NhdHRlciBnYXRoZXIsIGNoZWNrc3VtCiAgICBvZmZsb2FkaW5nIGV0Yy4pIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IGEgYml0IGluIHRoZSBjb250cm9sIHJlZ2lzdGVyLgogICAgVGhlIEdCSVQgTUFDIGlzIHN1cHBvcnRlZCBieSBvcGVyYXRpbmcgaW4gR1JURUggMTAvMTAwIGxlZ2FjeSBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMjMzYThiY2Q5NDk5N2YzZjM0NTgzM2EzYjgyZTgzNjIyMmYyYTIwNgpBdXRob3I6IFRzaS1DaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDE3IDE3OjA4OjIyIDIwMDggLTA1MDAKCiAgICBBZGQgQ09ORklHX01JSV9JTklUIGluIGNtZF9taWkuYwoKICAgIFByb3ZpZGUgY29tbW9uIGNvbmZpZ3VyYXRpb24gaW4gZG9fbWlpKCkgdG8gZXhlY3V0ZSBtaWlfaW5pdCgpCiAgICBmb3IgYWxsIGNwdSBhcmNoaXRlY3R1cmVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZjYwNTQ3OWRlMmRlYjExZTgzNGYzMWRmZGIwYWYxMDdjODZhY2VkNgpBdXRob3I6IFRzaS1DaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDE3IDE3OjA4OjE2IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IEZFQyB0cmFuc21pdCBpc3N1ZSBmb3IgTUNGNTI3NQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGQ5YTJmNDE2ZDZhYzYwNThjZDc4NDUwMzNhZTRkYzMyZWYxYzA3NDYKQXV0aG9yOiBBcmFzIFZhaWNoYXMgPGFyYXN2QG1hZ3RlY2guY29tLmF1PgpEYXRlOglXZWQgTWFyIDI2IDA5OjQzOjU3IDIwMDggKzExMDAKCiAgICBESENQIHJlcXVlc3QgZml4IGZvciBXaW5kb3dzIFNlcnZlciAyMDAzCgogICAgQWRkZWQgb3B0aW9uIENPTkZJR19CT09UUF9ESENQX1JFUVVFU1RfREVMQVkuIFRoaXMgcHJvdmlkZXMgYW4gb3B0aW9uYWwKICAgIGRlbGF5IGJlZm9yZSBzZW5kaW5nICJESENQIFJlcXVlc3QiIGluIG5ldC9ib290cC5jLiBSZXF1aXJlZCB0byBvdmVyY29tZQogICAgaW50ZXJvcGVyYWJpbGl0eSBwcm9ibGVtcyB3aXRoIFdpbmRvd3MgU2VydmVyIDIwMHggREhDUCBzZXJ2ZXIgd2hlbiBVLUJvb3QKICAgIGNsaWVudCByZXNwb25kcyB0b28gZmFzdCBmb3Igc2VydmVyIHRvIGhhbmRsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBcmFzIFZhaWNoYXMgPGFyYXN2QG1hZ3RlY2guY29tLmF1PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5N2JmODVkNzg0ZmJlZDQ4NWU2NTJlYjkwNzU4OWFkMGQ1Y2I3MjYyCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDIwOjQwOjE5IDIwMDggKzAxMDAKCiAgICBNVEQvQ0ZJOiBmbGFzaF9yZWFkNjQgaXMgZGVmaW5lZCBhIHdlYWsgZnVuY3Rpb24gKGZvciBTUEFSQykKCiAgICBTUEFSQyBoYXMgaW1wbGVtZW50ZWQgX19yYXdfcmVhZHEsIGl0IHJlYWRzIDY0LWJpdCBmcm9tIGFueSAzMi1iaXQgYWRkcmVzcy4KICAgIFNQQVJDIENQVXMgaW1wbGVtZW50IGZsYXNoX3JlYWQ2NCB3aGljaCBjYWxscyBfX3Jhd19yZWFkcS4KCiAgICBGb3IgY3VycmVudCBTUEFSQyBhcmNoaXRlY3R1cmVzIChMRU9OMiBhbmQgTEVPTjMpIGVhY2ggcmVhZCBmcm9tIHRoZQogICAgRkxBU0ggbXVzdCBsZWFkIHRvIGEgY2FjaGUgbWlzcy4gVGhpcyBpcyBiZWNhdXNlIEZMQVNIIGNhbiBub3QgYmUgc2V0CiAgICBub24tY2FjaGVhYmxlIHNpbmNlIHByb2dyYW0gY29kZSByZXNpZGVzIHRoZXJlLCBhbmQgYWx0ZXJuYXRpdmVseSBkaXNhYmxpbmcKICAgIGNhY2hlIGlzIHBvb3IgZnJvbSBwZXJmb3JtYW5jZSB2aWV3LCBvciBkb2luZyBhIGNhY2hlIGZsdXNoIGJldHdlZW4gZWFjaAogICAgcmVhZCBpcyBldmVuIHBvb3Jlci4KCiAgICBGb3JjaW5nIGEgY2FjaGUgbWlzcyBvbiBhIFNQQVJDIGlzIGRvbmUgYnkgYSBzcGVjaWFsIGluc3RydWN0aW9uICJsZGEiIC0KICAgIGxvYWQgYWx0ZXJuYXRpdmUgc3BhY2UsIHRoZSBhbHRlcm5hdGl2ZSBzcGFjZSBudW1iZXIgKEFTSSkgaXMgcHJvY2Vzc29yCiAgICBpbXBsZW1lbnRhdGlvbiBzcGNpZmljIGFuZCBjYW4gYmUgZm91bmQgYnkgaW5jbHVkaW5nIDxhc20vcHJvY2Vzc29yLmg+LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA3MDQzMWU4YTczOTNiNmI3OTNmNzc5NTdmOTViOTk5ZmM5YTI2OWI4CkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CUZyaSBNYXIgMjggMTU6NDE6MjUgMjAwOCArMDEwMAoKICAgIE1ha2UgTVBDODN4eCBvbmUgc3RlcCBjbG9zZXIgdG8gZnVsbCByZWxvY2F0aW9uLgoKICAgIFJlbW92ZSBhIGZldyBhYnNvbHV0ZSByZWZlcmVuY2VzIHRvIENGR19NT05JVE9SX0JBU0UgZm9yIHBwYy9tcGM4M3h4CiAgICBhbmQgdXNlIEdPVCByZWxhdGl2ZSByZWZlcmVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDViMjc5M2EzZjNkZTM0ZDQzOTIzMmIwNWFjYzhhZjY3YTAyOGZkMzUKQXV0aG9yOiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAxNDozNDo0MyAyMDA4IC0wNDAwCgogICAgbXBjODMyM2VyZGI6IGZpeCBFRVBST00gcGFnZSBzaXplIGFuZCBnZXQgTUFDIGZyb20gRUVQUk9NCgogICAgVGhpcyBwYXRjaCBmaXhlcyBlZXByb20gcGFnZSBzaXplIHNvIHRoYXQgeW91IGNhbiBub3cgd3JpdGUgbW9yZSB0aGFuCiAgICA2NCBieXRlcyBhdCBhIHRpbWUuCgogICAgSXQgYWxzbyBtYWtlcyB0aGUgYm9hcmQgdGFrZSBNQUMgYWRkcmVzc2VzLCBpZiBmb3VuZCwgZnJvbSBFRVBST00uCgogICAgVXNlciBzaG91bGQgcGxhY2UgdXAgdG8gNCBhZGRyZXNzZXMgYXQgb2Zmc2V0IDB4N2YwMCwgZm9yCiAgICBldGh7LDEsMiwzfWFkZHIuICBBbnkgdW51c2VkIGFkZHJlc3NlcyBzaG91bGQgYmUgemVyby4gIFRoaXMgZ3JvdXAgb2YKICAgIGZvdXIgc2l4LWJ5dGUgdmFsdWVzIHNob3VsZCBoYXZlIGl0J3MgQ1JDIGF0IHRoZSBlbmQuICBjcmMzMiBhbmQKICAgIGVlcHJvbSBjb21tYW5kcyBjYW4gYmUgdXNlZCB0byBhY2NvbXBsaXNoIHRoaXMuCgogICAgSWYgQ1JDIGZhaWxzLCBNQUMgYWRkcmVzc2VzIGNvbWUgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBJZiBDUkMKICAgIHN1Y2NlZWRzLCB0aGUgZW52aXJvbm1lbnQgaXMgb3ZlcndyaXR0ZW4gYXQgc3RhcnR1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGYzMjVjZmYzMWY2ZTc0NWU2NTQwMDE0YjEzMWI5YTk3ZjYxOTQ0YwpBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDE1OjE1OjM4IDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogZGVmaW5lIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRQoKICAgIENvbW1pdCA1NTc3NGI1MTJmZGY2M2MwNTE2ZDQ0MWNjNWRhN2M1NGJiZmZiN2YyIGJyb2tlIHRoZSBvbmJvYXJkIFVTQgogICAgY29udHJvbGxlciBvbiB0aGUgUENJIGJ1cyBpbiBMaW51eCBvbiB0aGUgTVBDODMyM0VSREIuCgogICAgVGhpcyBmaXhlcyBpdCBieSBkZWZpbmluZyBDT05GSUdfUENJX1NLSVBfSE9TVF9CUklER0UgaW4gdGhlIGJvYXJkJ3MKICAgIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNWM0YWRlNGRiMWUxNmQzZTVkNGE3ODg3ZjM0ZTEwZTUxNmVkM2E5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoxOTowNyAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogY2xlYW51cCBTeXN0ZW0gUGFydCBhbmQgUmV2aXNpb24gSUQgUmVnaXN0ZXIgKFNQUklEUikgY29kZQoKICAgIGluIHRoZSBzcGlyaXQgb2YgY29tbWl0IDFjZWQxMjE2MDBiMjA2MGFiMmZmOWYwZmRkZDk0MjFmZDcwYTBkYzYsCiAgICA4NXh4J3MgIlVwZGF0ZSBTVlIgbnVtYmVycyB0byBleHBhbmQgc3VwcG9ydCIsIHNpbXBsaWZ5IFNQUklEUiBwcm9jZXNzaW5nCiAgICBhbmQgcHJvY2Vzc29yIElEIGRpc3BsYXkuICBBZGQgUkVWSURfe01BSixNSU59T1IgbWFjcm9zIHRvIG1ha2UKICAgIFJFVklEIGRlcGVuZGVudCBjb2RlIHNpbXBsZXIuICBBbHNvIGFkZGVkIFBBUlRJRF9OT19FIGFuZCBJU19FX1BST0NFU1NPUgogICAgY29udmVuaWVuY2UgbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODFmZDUyYzZjOGZkMTlmMGI3ODU2Yjk4MjE3Y2UzN2M0NmM1MjFhZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTA6MTg6NTMgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGRpc3BsYXkgZGRyIGZyZXF1ZW5jeSBpbiBib2FyZF9hZGRfcmFtX2luZm8gYmFubmVyCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNWNmMTU1YzVlYzFjZWFiMjg0OWZhNWI2YWEzZDlhM2U5ZTZmNDgyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoxODo0MCAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogdW5yZWludmVudCBtZW1fY2xrCgogICAgZGVsZXRlIGRkcl9jbGsgYW5kIHVzZSBtZW1fY2xrIGluc3RlYWQuICBSZW5hbWUgb3RoZXIgZGRyXypfY2xrIHRvCiAgICBtZW1fKl9jbGsgZm9yIGNvbnNpc3RlbmN5J3Mgc2FrZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczMGU3OTI5MjZjYTNmZTRkZDFiNzM0YTNiZjQ0ZTU1YWZhNmY1MzYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDE0OjMxOjIzIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBlbmFibGUgdGhlIFNBVEEgaW50ZXJmYWNlIG9uIG1wYzgzMTUgcmRiIGFuZCBtcGM4Mzd4IHJkYiBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJlZWIzZTRmYzU0ZWYyZjVkNTc0ZGFmZDQyYzZjZTkzYWZhMzAzOTMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTc6MTkgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IGVuYWJsZSB0aGUgU0FUQSBpbnRlcmZhY2Ugb24gbXBjODM3eGVtZHMgYm9hcmQKCiAgICBFbmFibGUgdGhlIGZpcnN0IHR3byBTQVRBIGludGVyZmFjZXMgb24gTVBDODM3eEVNRFMgYm9hcmQsCiAgICBUaGUgdHdvIFNBVEEgcG9ydHMgYXJlIG9uIExZTlgxLiAoU0FUQTAvMSBvbiBKNC81KQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmOGM4NWU4ZDE4NjU3MzBjMTU4ZDllZjVhMDZjNzBjM2ExMDYwMGEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTY6MzYgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IGluaXRpYWxpemUgc2VyZGVzIGZvciBNUEM4Mzd4RU1EUyBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGlzIHN0b2xlbiBmcm9tIEFudG9uIFZvcm9udHNvdidzIHBhdGNoCiAgICBmb3IgbXBjODM3eGVyZGIgYm9hcmRzLgoKICAgIFRoZSByZWZlcmVuY2UgY2xrIGFuZCB4Y29yZXZkZCB2b2x0YWdlIG9mIHNlcmRlczEvMgogICAgaXMgc2FtZSBiZXR3ZWVuIG1wYzgzN3hlbWRzIGFuZCBtcGM4Mzd4ZXJkYi4KCiAgICA4Mzc3RTogTFlOWDEtIDIgU0FUQQlMWU5YMi0gMiBQQ0lFCiAgICA4Mzc4RTogTFlOWDEtIDIgU0dNSUkJTFlOWDItIDIgUENJRQogICAgODM3OUU6IExZTlgxLSAyIFNBVEEJTFlOWDItIDIgU0FUQQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNjOGU4MzlhYmM4MDg4N2FlODMyNzY3YjU5MzBkNDBlZGQ2ZDdlYjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMjggMTQ6MDk6MDQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQ2FueW9ubGFuZHM6IFByaW50IFNBVEEvUENJZSBjb25maWd1cmF0aW9uIGFuZCBib2FyZCByZXZpc2lvbgoKICAgIENhbnlvbmxhbmRzICg0NjBFWCkgc2hhcmVzIHRoZSBmaXJzdCBQQ0llIGludGVyZmFjZSB3aXRoIHRoZSBTb0MgU0FUQQogICAgaW50ZXJmYWNlLiBUaGlzIHVzYWdlIGNhbiBiZSBjb25maWd1cmVkIHdpdGggdGhlIGp1bXBlciBKNi4gVGhpcyBwYXRjaAogICAgZGlzcGxheXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiB1cG9uIGJvb3R1cCBhbmQgY2hhbmdlcyB0aGUgUENJZQogICAgaW5pdCBsb29wLCB0byBvbmx5IGluaXRpYWxpemUgdGhlIGF2YWlsYWJlbCBQQ0llIHNsb3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MDQ0N2VjYmJhYzg1NzI0NTdiNmQ4OTAzMDczYWMzZjEyMDk5NWJhCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMToyOToxMCAyMDA4ICswMTAwCgogICAgTVREL0NGSTogQWRkIHN1cHBvcnQgZm9yIDE2Yml0IGxlZ2FjeSBBTUQgZmxhc2gKCiAgICBBZGQgZW50cnkgZm9yIDUxMkt4MTYgQU1EIGZsYXNoIHRvIGplZGVjX3RhYmxlLgogICAgUmVhZCBvdXQgMTZiaXQgZGV2aWNlIGlkIGlmIGNoaXB3aWR0aCBpcyAxNmJpdC4KICAgIEZpeGVkIGNvZGluZyBzdHlsZSBhZnRlciBTdGVmYW5zIGZlZWRiYWNrCgogICAgU2lnbmVkLW9mZi1ieTogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KCmNvbW1pdCA1ZTEyZTc1ZDE3YzRiMTVhMzEwYTQ1Y2Q3OGZlNzFiNzY5OGE4YThlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDI4IDExOjAyOjUzIDIwMDggKzAxMDAKCiAgICBwcGM6IFNtYWxsIGNoYW5nZSB0byBDRkdfTUVNX1RPUF9ISURFIGRlc2NyaXB0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI4MGRmNTlhOGQ2MmM2ZTc0YzI4MWIxY2I3ZTIwNTJkZjRkNmNiMDAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBNYXIgMjcgMTU6NDQ6MTIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBzdGF0IHN0cnVjdHVyZSBhbmQgc3RhdC5oCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDRiZTllYjc4OWU3MmI4NDVkNjY5M2NjMzZiNzBhMGIzNTI5YjNmMDkKQXV0aG9yOiBNYXJrIEpvbmFzIDx0b2VydGVsQGdtYWlsLmNvbT4KRGF0ZToJU2F0IE1hciAyMiAxOToyNzo1MiAyMDA4ICswMTAwCgogICAgc2g6IFJlbW92ZWQgd2FybmluZyB3aGVuIGNvbXBpbGluZyBkcml2ZXJzL3NlcmlhbC9zZXJpYWxfc2guYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrIEpvbmFzIDxtYXJrLmpvbmFzQGRlLmJvc2NoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmMzA5ZmEzODkyOWZmYmE3MTIzMGMwMjMzMGZmYTQyZjRiYmE2MzMzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgTWFyIDEyIDE4OjAyOjU3IDIwMDggKzA5MDAKCiAgICBzaDogUmVtb3ZlIGRpc2FibGVfY3RybGMgZnVuY3Rpb24gZnJvbSBSNzc4ME1QCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDZmNGIyNjZmZjJhNGZjYzJiZmY5ODVkNmEyMTc4NTI0NjlhZmRkYjMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBNYXIgMTIgMTc6NTU6MTUgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgbWFpbnRhaW5lciBvZiBSNzc4ME1QIHRvIE1BSU5UQUlORVIgZmlsZQoKICAgIFVwZGF0ZSBNQUlOVEFJTkVSIGVudHJ5IGZvciBSNzc4ME1QLiBBbmQgZml4IG1haW50YWluZXIncyBuYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmNWUyNDY2ZjdiYWE4ODdhN2RmMGM1MzYzMzNlZWE4MjMxMzMzNDk3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgTWFyIDI1IDE3OjExOjI0IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBTb2x1dGlvbnMgUjJEIHBsdXMgYm9hcmQKCiAgICBSMkQgcGx1cyBpcyBTSCByZWZlcmVuY2UgYm9hcmQgdXNlZCB3aXRoIFNINzc1MVIuCiAgICBUaGlzIGJvYXJkIGhhcyAyNjZNaHogQ1BVLCA2NE1CIFNEUkFNLCBDYXJkYnVzLCBDRiBpbnRlcmZhY2UsCiAgICBvbmUgUENJIGJ1cywgVkdBLCBhbmQgdHdvIEV0aGVybmV0IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGU5MmM5NTE4MGJiNWJjNWZkNDA1MTU5OGE5ZDYwYmVhYmE0ODk4OGQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBNYXIgMTIgMTI6MTU6MjkgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBTSDQgY2FjaGUgY29udHJvbAoKICAgIEFkZCBzdXBwb3J0IFNINCBjYWNoZSBjb250cm9sIGFuZCBmbGFzaF9jYWNoZSBmdW5jdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAyOGU1ZWZkZTRkOTI1ZmNiMzQ5MDFkMDAzMGQwNjQ4ZGUyZGE3ZTg5CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglNb24gTWFyIDI0IDAxOjUzOjAxIDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUENJIGhvc3QgZHJpdmVyIGZvciBTSDc3NTEvU0g3NzUxUgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBhYjhmNGQ0MGQwNjljZDNjYmU3NTYzZGRmZTNlNWYwM2IwYzdjNzIxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglNb24gTWFyIDI0IDAyOjExOjI2IDIwMDggKzA5MDAKCiAgICBzaDogTW92ZSBTdXBlckggUENJIGRyaXZlciBmcm9tIGNwdS9zaDQgdG8gZHJpdmVycy9wY2kKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNTY2OTMzMjc4MTAxYzE0NGQ3NTM2MWVhNjgyNjc4YTMyNmMxMjkwZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxMjoxMDoyOCAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFN1cGVySCBTSDc3NTEvU0g3NzUxUgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzMzEzZTBlMjYyMjRmYzlhMGM0NDUxMjRmMzQ1NTA1OGM2OTZkZjg0CkF1dGhvcjogTWFyayBKb25hcyA8dG9lcnRlbEBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTAgMTE6Mzc6MTAgMjAwOCArMDEwMAoKICAgIHNoOiBBZGRlZCBzdXBwb3J0IGZvciBTSDc3MjAgYmFzZWQgYm9hcmQgTVBSMi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrIEpvbmFzIDxtYXJrLmpvbmFzQGRlLmJvc2NoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzZWNmZjFkNzBhZTkzZTYyOGZlNjViM2ZlMWZjN2M5Yzc2Y2RmOTlmCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgTWFyIDYgMTQ6MDU6NTMgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggcmVjZWl2ZSBGSUZPIGxldmVsIHJlZ2lzdGVyIG9mIFNINEEKCiAgICBSZWNlaXZlIEZJRk8gbGV2ZWwgcmVnaXN0ZXIgaXMgZGlmZmVyZW50IGluIFNINEEuCiAgICBCZWNhdXNlIHJlZ2lzdGVyIGlzIGRpZmZlcmVudCwgY2Fubm90IG9jY2FzaW9uYWxseSByZWNlaXZlIGRhdGEuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGMxMzNjMWZiMGI1OTA2NjIyMDZiMGViYTcwZjQ0NzhlZTAzMDBhOWEKQXV0aG9yOiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBNYXIgMTEgMTI6NTU6MTIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIFNvbHV0aW9ucyBSNzc4ME1QCgogICAgUmVuZXNhcyBTb2x1dGlvbnMgUjc3ODBNUCBpcyBhIHJlZmVyZW5jZSBib2FyZCBvbiBTSDc3ODAuCiAgICBUaGlzIGJvYXJkIGhhcyBzZXJpYWwsIDEwLzEwMCBiYXNlIEV0aGVybmV0IGRlaXZpY2UsIENGIHNsb3QKICAgIGFuZCBWR0EgZGV2aWNlcy4gVGhpcyBib2FyZCBjYW4gc2V0IGV4dGVuc2lvbiBib2FyZC4KICAgIEV4dGVuc2lvbiBib2FyZCBoYXMgMTAvMTAwLzEwMDAgYmFzZSBFdGhlcm5ldCBkZXZpY2UsIFBDSSBzbG90LAogICAgUy1BVEEsIGlEVlIgc2xvdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMWEyMzM0YTRlYjYzODZkN2NkMzVkOWRlNWZhMzlhZjJjNzY0YWQyOApBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE0OjMwOjAyIDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUENJIG9mIFN1cGVySCBhbmQgU0g3NzgwCgogICAgVGhpcyBwYXRjaCBhZGQgc3VwcG9ydCBQQ0kgb2YgU3VwZXJIIGJhc2UgY29kZSBhbmQgU0g3NzgwIHNwZWNpZmljIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGI1NTUyM2VmZmYyYWUxMWYwYjlhZTNjYzQwNTg5M2MzMmViNzgxNTYKQXV0aG9yOiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNDoyMzoyNiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNINzc4MAoKICAgIFNINzc4MCBpcyBDUFUgb2YgUmVuZXNhcyBUZWNobm9sb2d5LgogICAgVGhpcyBDUFUgaGFzCiAgICAgLSBDUFUgY2xvY2sgNDAwTUh6CiAgICAgLSBQQ0kgc3VwcG9ydAogICAgIC0gRERSLVNEUkFNIGNvbnRyb2xsZXIKICAgICAtIGV0YyAuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzIwNDJmNTk1MmE2ODZjNDE0MDMxMzA5YjhmMjQ0NTEzYmY1NzhmMApBdXRob3I6IGdvZGEueXVzdWtlIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIEphbiAyNSAyMDo0NjozNiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFJlbmVzYXMgU29sdXRpb25zIE1pZ28tUiBib2FyZAoKICAgIE1pZ28tUiBpcyBhIGJvYXJkIGJhc2VkIG9uIFNINzcyMiBhbmQgaGFzIG1heSBkZXZpY2VzLgogICAgSW4gdGhpcyBwYXRjaCwgc3VwcG9ydGVkIFNDSUYsIE5PUiBmbGFzaCBhbmQgRXRoZXJuZXQuCgogICAgU2lnbmVkLW9mZi1ieTogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc0ZDFlNjZkMjJkYWM5MTM4OGJjNTM4YjJmZTE5ZjczNWVkYzViODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE1OjA2OjQwIDIwMDggKzAxMDAKCiAgICBGaXggaG9zdCB0b29sIGJ1aWxkIGJyZWFrYWdlLCB0YWtlIHR3bwoKICAgIFJldmVydCBjb21taXQgODdjODQzMWYgYW5kIGZpeCBidWlsZCBicmVha2FnZSBzbyB0aGF0IHRoZSBidWlsZCBjb250aW51ZXMKICAgIHRvIHdvcmsgb24gRkMgc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdlNGEwZDI1ZWQxOGY2NDM3YmRmNTllYmZhNDliYjBlZGMyZjI0ZTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMDk6MzY6NDcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIEVDQyBvbiBMV01PTjUKCiAgICBTaW5jZSBhbGwgRUNDIHJlbGF0ZWQgcHJvYmxlbXMgc2VlbSB0byBiZSByZXNvbHZlZCBvbiBMV01PTjUsIHRoaXMgcGF0Y2gKICAgIG5vdyBlbmFibGVzIEVDQyBzdXBwb3J0LgoKICAgIFdlIGhhdmUgdG8gd3JpdGUgdGhlIEVDQyBieXRlcyBieSB6ZXJvaW5nIGFuZCBmbHVzaGluZyBpbiBzbWFsbGVyCiAgICBzdGVwcywgc2luY2UgdGhlIHdob2xlIDI1Nk1CeXRlIHRha2VzIHRvbyBsb25nIGZvciB0aGUgZXh0ZXJuYWwKICAgIHdhdGNoZG9nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2NDMzZmEyMDJhOTFhNjU5NGRkNDhmMDY4MDdhYzM4YmEyN2ZhMGJiCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CU1vbiBNYXIgMTcgMTE6MTA6MzUgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogVXBkYXRlcyB0byBLb3JhdC1zcGVjaWZpYyBjb2RlCgogICAgVGhpcyBwYXRjaCBjb250YWlucyB1cGRhdGVzIGZvciBjaGFuZ2VzIGZvciB0aGUgS29yYXQgUFBDNDQwRVB4IGJvYXJkLgogICAgVGhlc2UgY2hhbmdlcyBpbmNsdWRlOgoKICAgICgxKSBTdXBwb3J0IGZvciAicGVybWFuZW50IiBhbmQgInVwZ3JhZGFibGUiIGNvcGllcyBvZiBVLUJvb3QsIGFzCiAgICBkZXNjcmliZWQgaW4gdGhlIG5ldyAiZG9jL1JFQURNRS5rb3JhdCIgZmlsZTsKCiAgICAoMikgYSBuZXcgbWVtb3J5IG1hcCBmb3IgdGhlIHJlZ2lzdGVycyBpbiB0aGUgYm9hcmQncyBDUExEOwoKICAgICgzKSBhIHJldmlzZWQgZm9ybWF0IGZvciBtYW51ZmFjdHVyZXIncyBkYXRhIGluIHNlcmlhbCBFRVBST007IGFuZAoKICAgICg0KSBjaGFuZ2VzIHRvIHRyYWNrIHVwZGF0ZXMgdG8gVS1Cb290IGZvciB0aGUgU2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBmNzY2Y2RmODliM2EyYTc2MzRiOGM1ODY5ZjYwNjE1MGUzMzIwMzZjCkF1dGhvcjogTWFya3VzIEJydW5uZXIgPHN1cGVyLmZpcmV0d2lzdGVyQGdtYWlsLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAxMDo0NjoyNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBQUEM0MDVFUCBTZXQgRU1BQyBub2lzZSBmaWx0ZXIgYml0cwoKICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIHdpdGggY29tbWl0IGFlZTc0N2YxOWI0NjBhMGU5ZGEyMGZmMjFlOTBmZGFhYzFjZWMzNTkKICAgIHdoaWNoIGVuYWJsZWQgQ0ZHXzR4eF9HUElPX1RBQkxFIGZvciBQUEM0MDUgYW5kIHVuaW50ZW50aW9uYWxseQogICAgZGlzYWJsZWQgdGhlIHNldHRpbmcgb2YgdGhlIGVtYWMgbm9pc2UgZmlsdGVyIGJpdHMgZm9yIFBQQzQwNUVQIHdoZW4gQ0ZHXzR4eF9HUElPX1RBQkxFIGlzIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY2NmUyYzhiMjVjMDRiNzllNWZiMzg1YmM4OTg5YzJkZTdmNjM5OTEKQXV0aG9yOiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KRGF0ZToJV2VkIEZlYiAyMCAxMTo1NDoyMCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBSZWNvbmZpZ3VyZSBQTEwgZm9yIDY2N01IeiBwcm9jZXNzb3IgZm9yIFBQQzQ0MEVQeAoKICAgIE9uIFBQQzQ0MEVQeCB3aXRob3V0IGEgYm9vdHN0cmFwIEkyQyBFRVBST00sIHRoZSBQTEwgY2FuIGJlIHJlY29uZmlndXJlZAogICAgYWZ0ZXIgc3RhcnR1cCB0byBjaGFuZ2UgdGhlIHNwZWVkIG9mIHRoZSBjbG9ja3MuIFRoaXMgcGF0Y2ggYWRkcyB0aGUKICAgIG9wdGlvbiBDRkdfUExMX1JFQ09ORklHLiBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gNjY3LCB0aGUgQ1BVCiAgICBpbml0aWFsaXphdGlvbiBjb2RlIHdpbGwgcmVjb25maWd1cmUgdGhlIFBMTCB0byBydW4gdGhlIHN5c3RlbSB3aXRoIGEgQ1BVCiAgICBmcmVxdWVuY3kgb2YgNjY3TUh6IGFuZCBQTEIgZnJlcXVlbmN5IG9mIDE2Nk1Ieiwgd2l0aG91dCB0aGUgbmVlZCBmb3IgYW4KICAgIGV4dGVybmFsIEVFUFJPTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODdjODQzMWZlMjRkNDgxMjFmMDUzZmU2N2NmZjRjY2ZlMDk3ZDRkMQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAwOToxMjo0MCAyMDA4ICswMTAwCgogICAgbmV3LWltYWdlOiBGaXggaG9zdCB0b29sIGJ1aWxkIGJyZWFrYWdlCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDZmYjRiNjQwNTYyYTEwZGFmZjBkYmU1Mzc2MzhkNTExYjViNDg2NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjcgMTA6MjQ6MDMgMjAwOCArMDEwMAoKICAgIHBwYzogU2V0IENGR19NRU1fVE9QX0hJREUgdG8gMCBpZiBub3QgYWxyZWFkeSBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk0NjI3MzJhM2VjNTUxYzExODYyNDUwOTAyY2Q4ZWUxYmVkZWE2ZDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTA6MjM6NDMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIGZkdCBzdXBwb3J0IHRvIFByb2RyaXZlIGFscHIKCiAgICBTaW5jZSB0aGlzIGJvYXJkIHdpbGwgcHJvYmFibHkgYmUgcG9ydGVkIHRvIGFyY2gvcG93ZXJwYyBpbiB0aGUKICAgIG5lYXIgZnV0dXJlLCB3ZSBhZGQgZGV2aWNlIHRyZWUgc3VwcG9ydCBub3cuIFRoaXMgd2F5IHdlIGFyZQogICAgInJlYWR5IiBmb3IgYXJjaC9wb3dlcnBjIGZyb20gbm93IG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1MTFlNGY5ZTdmN2I2NzE5ZTRkOTFkN2YwZmM4OTQxMmIxM2I1MTUwCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8cGlldGVyLnZvb3J0aHVpanNlbkBwcm9kcml2ZS5ubD4KRGF0ZToJTW9uIE1hciAxNyAwOToyNzo1NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgY2FjaGUgc3VwcG9ydCBvbiB0aGUgQUxQUiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFBpZXRlciBWb29ydGh1aWpzZW4gPHB2QHByb2RyaXZlLm5sPgoKY29tbWl0IDE0ZjczY2E2NzlmNmZkYjQ0Y2ZmMGI3MzA0ZDQxOWRiNDFhMGFiNjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTA6MTQ6MTEgMjAwOCArMDEwMAoKICAgIHBwYzogQWRkIENGR19NRU1fVE9QX0hJREUgb3B0aW9uIHRvIGhpZGUgbWVtb3J5IGFyZWEgdGhhdCBkb2Vzbid0IGdldCAidG91Y2hlZCIKCiAgICBJZiBDRkdfTUVNX1RPUF9ISURFIGlzIGRlZmluZWQgaW4gdGhlIGJvYXJkIGNvbmZpZyBoZWFkZXIsIHRoaXMgc3BlY2lmaWVkCiAgICBtZW1vcnkgYXJlYSB3aWxsIGdldCBzdWJ0cmFjdGVkIGZyb20gdGhlIHRvcCAoZW5kKSBvZiByYW0gYW5kIHdvbid0IGdldAogICAgInRvdWNoZWQiIGF0IGFsbCBieSBVLUJvb3QuIEJ5IGZpeGluZyB1cCBnZC0+cmFtX3NpemUgdGhlIExpbnV4IGtlcm5lbAogICAgc2hvdWxkIGdldHMgcGFzc2VkIHRoZSBub3cgImNvcnJlY3RlZCIgbWVtb3J5IHNpemUgYW5kIHdvbid0IHRvdWNoIGl0CiAgICBlaXRoZXIuIFRoaXMgc2hvdWxkIHdvcmsgZm9yIGFyY2gvcHBjIGFuZCBhcmNoL3Bvd2VycGMuIE9ubHkgTGludXggYm9hcmQKICAgIHBvcnRzIGluIGFyY2gvcG93ZXJwYyB3aXRoIGJvb3R3cmFwcGVyIHN1cHBvcnQsIHdoaWNoIHJlY2FsY3VsYXRlIHRoZQogICAgbWVtb3J5IHNpemUgZnJvbSB0aGUgU0RSQU0gY29udHJvbGxlciBzZXR1cCwgd2lsbCBoYXZlIHRvIGdldCBmaXhlZAogICAgaW4gTGludXggYWRkaXRpb25hbGx5LgoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGlzIGNvbmZpZyBvcHRpb24gb24gc29tZSBQUEM0NDBFUHggYm9hcmRzIGFzIGEgd29ya2Fyb3VuZAogICAgZm9yIHRoZSBDSElQIDExIGVycmF0YS4gSGVyZSB0aGUgZGVzY3JpcHRpb24gZnJvbSB0aGUgQU1DQyBkb2N1bWVudGF0aW9uOgoKICAgIENISVBfMTE6IEVuZCBvZiBtZW1vcnkgcmFuZ2UgYXJlYSByZXN0cmljdGVkIGFjY2Vzcy4KICAgIENhdGVnb3J5OiAzCgogICAgT3ZlcnZpZXc6CiAgICBUaGUgNDQwRVB4IEREUiBjb250cm9sbGVyIGRvZXMgbm90IGFja25vd2xlZGdlIGFueQogICAgdHJhbnNhY3Rpb24gd2hpY2ggaXMgZGV0ZXJtaW5lZCB0byBiZSBjcm9zc2luZyBvdmVyIHRoZQogICAgZW5kLW9mLW1lbW9yeS1yYW5nZSBib3VuZGFyeSwgZXZlbiBpZiB0aGUgc3RhcnRpbmcgYWRkcmVzcyBpcwogICAgd2l0aGluIHZhbGlkIG1lbW9yeSBzcGFjZS4gQW55IHN1Y2ggdHJhbnNhY3Rpb24gZnJvbSBhbnkgUExCNAogICAgbWFzdGVyIHdpbGwgcmVzdWx0IGluIGEgUExCIHRpbWUtb3V0IG9uIFBMQjQgYnVzLgoKICAgIEltcGFjdDoKICAgIEluIGNhc2Ugb2Ygc3VjaCBtaXNhbGlnbmVkIGJ1cnN0cywgUExCNCBtYXN0ZXJzIHdpbGwgbm90CiAgICByZXRyaWV2ZSBhbnkgZGF0YSBhdCBhbGwsIGp1c3QgdGhlIGF2YWlsYWJsZSBkYXRhIHVwIHRvIHRoZQogICAgZW5kIG9mIG1lbW9yeSwgZXNwZWNpYWxseSB0aGUgNDQwIENQVS4gRm9yIGV4YW1wbGUsIGlmIGEgQ1BVCiAgICBpbnN0cnVjdGlvbiByZXF1aXJlZCBhbiBvcGVyYW5kIGxvY2F0ZWQgaW4gbWVtb3J5IHdpdGhpbiB0aGUKICAgIGxhc3QgNyB3b3JkcyBvZiBtZW1vcnksIHRoZSBEQ1UgbWFzdGVyIHdvdWxkIGJ1cnN0IHJlYWQgOAogICAgd29yZHMgdG8gdXBkYXRlIHRoZSBkYXRhIGNhY2hlIGFuZCBjcm9zcyBvdmVyIHRoZQogICAgZW5kLW9mLW1lbW9yeS1yYW5nZSBib3VuZGFyeS4gU3VjaCBhIERDVSByZWFkIHdvdWxkIG5vdCBiZQogICAgYW5zd2VyZWQgYnkgdGhlIEREUiBjb250cm9sbGVyLCByZXN1bHRpbmcgaW4gYSBQTEI0IHRpbWUtb3V0CiAgICBhbmQgdWx0aW1hdGVseSBpbiBhIE1hY2hpbmUgQ2hlY2sgaW50ZXJydXB0LiBUaGUgZGF0YSB3b3VsZAogICAgYmUgaW5hY2Nlc3NpYmxlIHRvIHRoZSBDUFUuCgogICAgV29ya2Fyb3VuZDoKICAgIEZvcmJpZCBhbnkgYXBwbGljYXRpb24gdG8gYWNjZXNzIHRoZSBsYXN0IDI1NiBieXRlcyBvZiBERFIKICAgIG1lbW9yeS4gRm9yIGV4YW1wbGUsIG1ha2UgeW91ciBvcGVyYXRpbmcgc3lzdGVtIGJlbGlldmUgdGhhdAogICAgdGhlIGxhc3QgMjU2IGJ5dGVzIG9mIEREUiBtZW1vcnkgYXJlIGFic2VudC4gQU1DQyBoYXMgYSBwYXRjaAogICAgdGhhdCBkb2VzIHRoaXMsIGF2YWlsYWJsZSBmb3IgTGludXguCgogICAgVGhpcyBwYXRjaCBzZXRzIENGR19NRU1fVE9QX0hJREUgZm9yIHRoZSBmb2xsb3dpbmcgNDQwRVB4IGJvYXJkczoKICAgIGx3bW9uNSwga29yYXQsIHNlcXVvaWEKCiAgICBUaGUgb3RoZXIgcmVtYWluaW5nIDQ0MEVQeCBib2FyZCB3ZXJlIGludGVudGlvbmFsbHkgbm90IGluY2x1ZGVkCiAgICBzaW5jZSBpdCBpcyBub3QgY2xlYXIgdG8gbWUsIGlmIHRoZXkgdXNlIHRoZSBlbmQgb2YgcmFtIGZvciBzb21lCiAgICBvdGhlciBwdXJwb3NlLiBUaGlzIGlzIHVuY2xlYXIsIHNpbmNlIHRoZXNlIGJvYXJkcyBoYXZlIENPTkZJR19QUkFNCiAgICBkZWZpbmVkIGFuZCBldmVuIGNvbW1lbnRzIGxpa2UgdGhpczoKCiAgICBQTUM0NDAuaDoKICAgIC8qIGVzZCBleHBlY3RzIHByYW0gYXQgZW5kIG9mIHBoeXNpY2FsIG1lbW9yeS4KICAgICAqIFNvIG5vIGxvZ2J1ZmZlciBhdCB0aGUgbW9tZW50LgogICAgICovCgogICAgSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gbm90IHVzZSB0aGUgbGFzdCAyNTYgYnl0ZXMgb24gdGhvc2UKICAgIGJvYXJkcyB0b28uIFBhdGNoZXMgZnJvbSB0aGUgYm9hcmQgbWFpbnRhaW5lcnMgYXJlIHdlbGNvbWUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM2NjRiZjhjM2M5YmI5ZTIzNjg5MWYwZDhkZmRhODgzZTg2ZDE1OWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjcgMTA6MDk6MDUgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IENhbnlvbmxhbmRzIGxpbmtlciBzY3JpcHQgKHJlbW92ZSBib2d1cyBBU1NFUlQpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ1NmEzY2UxNzk2ODhjZGU2MTA3M2EzNjkwZTIxNzAzZDY4ZmFmZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMjUgMTc6NTE6MTMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQ29ycmVjdGx5IHBhc3MgcGh5aXNjYWwgRkxBU0ggYmFzZSBhZGRyZXNzIGludG8gZHRiCgogICAgVGhlIHJvdXRpbmUgZnRfYm9hcmRfc2V0dXAoKSBjb25maWd1cmVzIHRoZSBFQkMgTk9SIG1hcHBpbmdzIGZvciB0aGUKICAgIExpbnV4IHBoeXNtYXBfb2YgZHJpdmVyLiBTaW5jZSBvbiA0NjBFWC9HVCB3ZSByZW1hcCB0aGUgRkxBU0ggZnJvbQogICAgMHg0LmZjMDAuMDAwMCB0byAweDQuY2MwMC4wMDAwIGJlY2F1c2Ugb2YgdGhlIG1heC4gMTZNQnl0ZSBib290LUNTCiAgICBwcm9ibGVtLCB3ZSBuZWVkIHRvIHBhc3MgdGhlIGNvcnJlY3RlZCBhZGRyZXNzIGhlcmUgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YWQzMTk4OWRlMTJjZTVjNjdiMDdjNDg2N2VhZDQ3NDY1NjU1YzRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDE5IDE2OjM1OjEyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGluIDR4eF9lbmV0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGM5ZTg1NTczNGM1MjM5MDAzMjJhN2MzY2RkOTA5OWI0ZjUxYjUxZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAxNjoyMDo0OSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBHbGFjaWVyIDQwNkdUIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQU1DQyBHbGFjaWVyIDQ2MEdUIGV2YWwgYm9hcmQuCiAgICBUaGUgbWFpbiBkaWZmZXJlbmNlIHRvIHRoZSBDYW55b25sYW5kcyBib2FyZCBhcmUgbGlzdGVkIGhlcmU6CgogICAgLSA0IGV0aGVybmV0IHBvcnRzIGluc3RlYWQgb2YgMgogICAgLSBubyBTQVRBIHBvcnQKICAgIC0gbm8gVVNCIHBvcnQKCiAgICBDdXJyZW50bHkgRU1BQzIrMyBhcmUgbm90IHdvcmtpbmcuIFRoaXMgd2lsbCBiZSBmaXhlZCBpbiBhIGxhdGVyCiAgICByZWxlYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkOGJkNjQzMTQxYWY0NzEwZDdmMWI2OWJiYWI2Yjc2MGRlMGFmMGExCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDI3IDA4OjQ3OjI2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE1hc2sgJ3ZlYycgd2l0aCAweDFmIGluIHVpY19pbnRlcnJ1cHQoKSBmb3IgYml0IHNldC9jbGVhcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiOTY3MGRkODViZTZlMDQ5NmVmMmUyMzEwNDNjMjNjYWQ5YjFkOTAzCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDIxOjA1OjQzIDIwMDggKzAxMDAKCiAgICBGaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcgaXNzdWUKCiAgICBDdXJyZW50bHkgVS1Cb290IGJ1aWxkaW5nIGluIHNvbWUgZXh0ZXJuYWwgZGlyZWN0b3J5CiAgICBkb2Vzbid0IHdvcmsuIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBkNGVlNzExZDhhNWMzNjZlZTNmODU3YzI2YjkyN2QxMmU2NjYxNGZmCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDE4OjEzOjMzIDIwMDggKzAxMDAKCiAgICBSRUFETUU6IHVwZGF0ZSBkb2N1bWVudGF0aW9uIChhdmFpbGFiaWxpdHksIGxpbmtzLCBldGMuKQoKICAgIEZpeCB0eXBvIGluIFJFQURNRQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBlODEzZWFlM2JmZWJhOWMwYmRhOWQxYmY5ZmMzZDA4MWY3OTA5NzJmCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDE3OjQ3OjQ0IDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3IgaW4gY21kX3VzYi5jCgogICAgVGhpcyBwYXRjaCBmaXhlcyBjb21waWxhdGlvbiBlcnJvcgogICAgY21kX3VzYi5jOiBJbiBmdW5jdGlvbiAnZG9fdXNiJzoKICAgIGNtZF91c2IuYzo1NTI6IGVycm9yOiB2b2lkIHZhbHVlIG5vdCBpZ25vcmVkIGFzIGl0IG91Z2h0IHRvIGJlCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGQ4YzgyZGI0ODJkNmI1MzVkMTJiNDE5ZDY0NDBiODhiZjcwOTFjOWIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDE0IDE3OjQ1OjI5IDIwMDggLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgSTJDIGJ1cyBzcGVlZCBpbiBmc2xfaTJjLmMKCiAgICBBZGQgc3VwcG9ydCB0byB0aGUgRnJlZXNjYWxlIEkyQyBkcml2ZXIgKGZzbF9pMmMuYykgZm9yIHNldHRpbmcgYW5kIHF1ZXJ5aW5nCiAgICB0aGUgSTJDIGJ1cyBzcGVlZC4JQ3VycmVudCA4WzM1Nl14eCBib2FyZHMgZGVmaW5lIHRoZSBDRkdfSTJDX1NQRUVEIG1hY3JvLAogICAgYnV0IGZzbF9pMmMuYyBpZ25vcmVzIGl0IGFuZCB1c2VzIGNvbnNlcnZhdGl2ZSB2YWx1ZSB3aGVuIHByb2dyYW1taW5nIHRoZQogICAgSTJDIGJ1cyBzcGVlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMDQ5Y2M3ZjcxYzBkODc1ZThmNTA5OWQxZWQyMzY2NmE4MmI4ZjhlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAwMDowMzo1NyAyMDA4ICswMTAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZkMGIxZmUzYzM4OGE3N2U4ZmUwMGNkZDkzMGNhMzE3YTkxMTk4ZDQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTU6MzIgMjAwOCArMDgwMAoKICAgIGRyaXZlcnM6IGFkZCB0aGUgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIFNBVEEgY29udHJvbGxlcgoKICAgIEFkZCB0aGUgRnJlZXNjYWxlIG9uLWNoaXAgU0FUQSBjb250cm9sbGVyIGRyaXZlciB0byB1LWJvb3QsCiAgICBUaGUgU0FUQSBjb250cm9sbGVyIGlzIHVzZWQgb24gdGhlIDgzN3ggYW5kIDgzMTUgdGFyZ2V0cywKICAgIFRoZSBkcml2ZXIgY2FuIGJlIHVzZWQgdG8gbG9hZCBrZXJuZWwsIGZzIGFuZCBkdGIuCgogICAgVGhlIGZlYXR1cmVzIGxpc3Q6CiAgICAtIDEuNS8zIEdicHMgbGluayBzcGVlZAogICAgLSBMQkE0OCwgTEJBMjggc3VwcG9ydAogICAgLSBETUEgYW5kIEZQRE1BIHN1cHBvcnQKICAgIC0gVHdvIHBvcnRzIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlZGU4N2Y0Yzg3YzNjY2Q4NjhjYzYwZWJmNzkyZTA1NjBjNmQwMjQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTQ6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSByZWFkbWUgZm9yIFNBVEEgY29tbWFuZCBsaW5lCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZDU0MDgxY2Q0NzllNTQyZmMzOTliOGE0MDY1MWZmMTFhMWFkODQ5CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjUzOjI0IDIwMDggKzA4MDAKCiAgICBhdGE6IGVuYWJsZSB0aGUgc2F0YSBpbml0aWFsaXplIG9uIGJvb3QgdXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5Mzg2MzgzYzVjMmIzMjNjNjY0OTViMGIwY2VmNmE5NzE0ZDgzYmYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTI6MzYgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBmaXMgc3RydWN0IGZvciBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZmM2NjRlODBkZmIyZTE3ZGUwZGY1YWQzOWU5MWEwMmU5YzM2MWJjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjUxOjQ0IDIwMDggKzA4MDAKCiAgICBhdGE6IGFkZCB0aGUgbGliYXRhIHN1cHBvcnQKCiAgICBhZGQgc2ltcGxlIGxpYmF0YSBzdXBwb3J0IGluIHUtYm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGU5YmI0MzQyOWU1MGRmNTVmYTQxOTMyY2JlNjU4NDFmZjU3OTIyMApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MDo0NSAyMDA4ICswODAwCgogICAgYXRhOiBtYWtlIHRoZSBhdGFfcGlpeCBkcml2ZXIgdXNpbmcgbmV3IFNBVEEgZnJhbWV3b3JrCgogICAgb3JpZ2luYWwgYXRhX3BpaXggZHJpdmVyIGlzIHVzaW5nIElERSBmcmFtZXdvcmssIG5vdCByZWFsCiAgICBTQVRBIGZyYW1ld29yay4gRm9yIG5vdywgdGhlIGF0YV9waWl4IGRyaXZlciBpcyBvbmx5IHVzZWQKICAgIGJ5IHg4NiBzYzUyMF9jZHAgYm9hcmQuIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIGF0YV9waWl4IGRyaXZlcgogICAgdXNlIHRoZSBuZXcgU0FUQSBmcmFtZXdvcmssIHNvCgogICAgLSByZW1vdmUgdGhlIGR1cGxpY2F0ZWQgY29tbWFuZCBzdHVmZgogICAgLSByZW1vdmUgdGhlIENPTkZJR19DTURfSURFIGRlZmluZSBpbiB0aGUgc2M1MjBfY2RwLmgKICAgIC0gYWRkIHRoZSBDT05GSUdfQ01EX1NBVEEgZGVmaW5lIHRvIHNjNTIwX2NkcC5oCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNzA1N2I1MjljM2MzY2I5YzBhYzkwNjA2ODZhNDA2OGYxNDkxYmJlCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ5OjQ0IDIwMDggKzA4MDAKCiAgICBhdGE6IGFkZCB0aGUgc3VwcG9ydCBmb3IgU0FUQSBmcmFtZXdvcmsKCiAgICAtIGFkZCB0aGUgU0FUQSBmcmFtZXdvcmsKICAgIC0gYWRkIHRoZSBTQVRBIGNvbW1hbmQgbGluZQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODNjN2Y0NzBhNGNlOTRmMzM2MDBmMTFhZTg1Y2U0ZGNmMDBhYTkwYwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo0ODoxOCAyMDA4ICswODAwCgogICAgYXRhOiBtZXJnZSB0aGUgaGVhZGVyIG9mIGF0YV9waWl4IGRyaXZlcgoKICAgIG1vdmUgdGhlIHNhdGEuaCBmcm9tIGluY2x1ZGUvIHRvIGRyaXZlcnMvYmxvY2svYXRhX3BpaXguaAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWVlZjYyODA0ZDk2OTU0MjViMjRjODdiNDZhNjFhN2ZhNzRhZmVlMApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo0NzowNiAyMDA4ICswODAwCgogICAgYXRhOiBtZXJnZSB0aGUgYXRhX3BpaXggZHJpdmVyCgogICAgbW92ZSB0aGUgY21kX3NhdGEuYyBmcm9tIGNvbW1vbi8gdG8gZHJpdmVycy9hdGFfcGlpeC5jLAogICAgdGhlIGNtZF9zYXRhLmMgaGF2ZSBzb21lIHBhcnQgb2YgYXRhX3BpaXggY29udHJvbGxlciBkcml2ZXJzLgogICAgY29uc29saWRhdGUgdGhlIGRyaXZlciB0byBoYXZlIGJldHRlciBmcmFtZXdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOWU3NDllOTUzNTRmMzNlYjVkYzY2NTNjNmRiN2Q1MDJhZGI5NWZlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxODoyNjo0MyAyMDA4ICswMTAwCgogICAgVVNCLCBTdG9yYWdlOiBmaXggYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKICAgIGY2YjQ0ZTBlNGQxOGZlNTA3ODMzYTBmNzZkMjRhOWFhNzJjMTIzZjEgdGhhdCB3aWxsIGNhdXNlIHVzYl9zdG9yX2luZm8KICAgIHRvIG9ubHkgcHJpbnQgb25seSBpbmZvcm1hdGlvbiBvbiBvbmUgc3RvcmFnZSBkZXZpY2UsIGJ1dCBub3QgZm9yCiAgICBtdWx0aXBsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg0MWU1ZWRkMTYyM2YzZmVjYjZiZmZjNWMyZjkzOGVkN2E5NDczNjAKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTc6NDc6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBpbiBjbWRfdXNiLmMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGNvbXBpbGF0aW9uIGVycm9yCiAgICBjbWRfdXNiLmM6IEluIGZ1bmN0aW9uICdkb191c2InOgogICAgY21kX3VzYi5jOjU1MjogZXJyb3I6IHZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGRkNmM5MTBhYWRmMjdjODIyZjE3Yjg3ZWFlMWE5YmQwYjJlM2FhMTUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTWFyIDI2IDA4OjUzOjUzIDIwMDggLTA1MDAKCiAgICA4NXh4OiBBZGQgY3B1X21wX2xtYl9yZXNlcnZlIGhlbHBlciB0byByZXNlcnZlIGJvb3QgcGFnZQoKICAgIFByb3ZpZGUgYSBib2FyZF9sbWJfcmVzZXJ2ZSBoZWxwZXIgZnVuY3Rpb24gdG8gZW5zdXJlIHdlIHJlc2VydmUKICAgIHRoZSBwYWdlIG9mIG1lbW9yeSB3ZSBhcmUgdXNpbmcgZm9yIHRoZSBib290IHBhZ2UgdHJhbnNsYXRpb24gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDc5Njc5ZDgwMDIxYWIwOTVlNjM5ZTI1MGNhNDcyZmU1MjZkYTAyZTIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTWFyIDI2IDA4OjM0OjI1IDIwMDggLTA1MDAKCiAgICA4NXh4OiBVcGRhdGUgbXVsdGljb3JlIGJvb3QgbWVjaGFuaXNtIHRvIGVQQVBSIHYwLjgxIHNwZWMKCiAgICBUaGUgZm9sbG93aW5nIGNoYW5nZXMgYXJlIG5lZWRlZCB0byBiZSBpbmxpbmUgd2l0aCBlUEFQUiB2MC44MToKCiAgICAqIHI0LCByNSBhbmQgbm93IGFsd2F5cyBzZXQgdG8gMCBvbiBib290IHJlbGVhc2UKICAgICogcjcgaXMgdXNlZCB0byBwYXNzIHRoZSBzaXplIG9mIHRoZSBpbml0aWFsIG1hcCBhcmVhIChJTUEpCiAgICAqIEVQQVBSX01BR0lDIHZhbHVlIGNoYW5nZWQgZm9yIGJvb2stZSBwcm9jZXNzb3JzCiAgICAqIGNoYW5nZXMgaW4gdGhlIHNwaW4gdGFibGUgbGF5b3V0CiAgICAqIHNwaW4gdGFibGUgc3VwcG9ydHMgYSA2NC1iaXQgcGh5c2ljYWwgcmVsZWFzZSBhZGRyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyNWVlZGIyYzE5NThhMTMxMTBjN2RlMWZjODA5YjYyNDA1M2NjNjljCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAxOSAxNTowMjowNyAyMDA4IC0wNTAwCgogICAgRlNMOiBDbGVhbiB1cCBib2FyZC9mcmVlc2NhbGUvY29tbW9uL01ha2VmaWxlCgogICAgRWFjaCBmaWxlIHRoYXQgY2FuIGJlIGJ1aWx0IGhlcmUgbm93IGZvbGxvd3Mgc29tZQogICAgQ09ORklHXyBvcHRpb24gc28gdGhhdCB0aGV5IGFyZSBhcHByb3ByaWF0ZWx5IGJ1aWx0CiAgICBvciBub3QsIGFzIG5lZWRlZC4JQW5kIENPTkZJR18gZGVmaW5lcyB3ZXJlIGFkZGVkCiAgICB0byB2YXJpb3VzIGJvYXJkIGNvbmZpZyBmaWxlcyB0byBtYWtlIHN1cmUgdGhhdCBoYXBwZW5zLgoKICAgIFRoZSBvdGhlciBib2FyZC9mcmVlc2NhbGUvKi9NYWtlZmlsZXMgbm8gbG9uZ2VyIG5lZWQKICAgIHRvIHJlYWNoIHVwIGFuZCBvdmVyIGludG8gLi4vY29tbW9uIHRvIGJ1aWxkIHRoZWlyCiAgICBpbmRpdmlkdWFsbHkgbmVlZGVkIGZpbGVzIGFueSBtb3JlLgoKICAgIEJvYXJkcyB0aGF0IGFyZSBDRFMgc3BlY2lmaWMgd2VyZSByZW5hbWVkIHdpdGggY2RzXyBwcmVmaXguCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNWFmNGIzNThhN2NhYTljMGFhMzc0ZDRkODk0YmY3NjJlYzM3NjY5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMjowMDoyNyAyMDA4IC0wNjAwCgogICAgODV4eDogRml4IG1lcmdlIGR1cGxpY2F0aW9uCgogICAgZnRfZml4dXBfY3B1KCkgZ290IGR1cGxpY2F0ZWQgaW4gc29tZSBtZXJnZSBzbmFmdS4JUmVtb3ZlIHRoZSBkdXBsaWNhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1ODkzYjNkMGE0MDg0Zjg3YTA2YTVkM2RjMDNkYjkxMjA2ODE4OTQxCkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDEyIDE2OjM1OjA3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBFeHBhbmQgQ0NTUiBzcGFjZSB3aXRoIG1vcmUgRERSIGNvbnRyb2xsZXIgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGEzZTc3ZmE1MzU5YjNmOWY1OWU0ZTk0NmI0NmQ1N2E1MzA1N2NjODUKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgOCAxODowNTowOCAyMDA4IC0wNjAwCgogICAgODV4eDogU3BlZWQgdXAgZ2V0X2Rkcl9mcmVxKCkgYW5kIGdldF9idXNfZnJlcSgpCgogICAgZ2V0X2Rkcl9mcmVxKCkgYW5kIGdldF9idXNfZnJlcSgpIHVzZWQgZ2V0X3N5c19pbmZvKCkgZWFjaCB0aW1lIHRoZXkgd2VyZQogICAgY2FsbGVkLiAgSG93ZXZlciwgZ2V0X3N5c19pbmZvKCkgcmVjYWxjdWxhdGVzIGV4dHJhbmVvdXMgaW5mb3JtYXRpb24gd2hlbgogICAgY2FsbGVkIGVhY2ggdGltZS4gIEhhdmUgZ2V0X2Rkcl9mcmVxKCkgYW5kIGdldF9idXNfZnJlcSgpIHJldHVybiBtZW1vaXplZAogICAgdmFsdWVzIGZyb20gZ2xvYmFsX2RhdGEgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGU5ZWE2Nzk5MThmYmM5YTUzZmEyZjJhOTA0YWFjODc0ZWE3MzYwMzYKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgOCAxNjo0NjoyNyAyMDA4IC0wNjAwCgogICAgODV4eDogU2hvdyBERFIgbWVtb3J5IGRhdGEgcmF0ZSBpbiBhZGRpdGlvbiB0byB0aGUgbWVtb3J5IGNsb2NrIGZyZXF1ZW5jeS4KCiAgICBTaG93IHRoZSBERFIgbWVtb3J5IGRhdGEgcmF0ZSBpbiBhZGRpdGlvbiB0byB0aGUgbWVtb3J5IGNsb2NrCiAgICBmcmVxdWVuY3kuCUZvciBERFIvRERSMiBtZW1vcmllcyB0aGUgbWVtb3J5IGRhdGEgcmF0ZSBpcyAyeCB0aGUKICAgIG1lbW9yeSBjbG9jay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU5MTkzM2NhNmVhYmM0NDBlNmVkNjk2NzIzM2FhZjU2ZmNlNDY0YTMKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgOCAxNjo0NDo1MyAyMDA4IC0wNjAwCgogICAgODV4eDogZ2V0X3RiY2xrKCkgc3BlZWQgdXAgYW5kIHJvdW5kaW5nIGZpeAoKICAgIFNwZWVkIHVwIGdldF90YmNsaygpIGJ5IHJlZmVyZW5jaW5nIHByZS1jb21wdXRlZCBidXMgY2xvY2sKICAgIGZyZXF1ZW5jeSB2YWx1ZSBmcm9tIGdsb2JhbCBkYXRhIGluc3RlYWQgb2Ygc3lzX2luZm9fdC4gIEZpeAogICAgcm91bmRpbmcgb2YgcmVzdWx0IHRvIG5lYXJlc3Q7IHByZXZpb3VzbHkgaXQgd2FzIHJvdW5kaW5nCiAgICB1cHdhcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMWNlZDEyMTYwMGIyMDYwYWIyZmY5ZjBmZGRkOTQyMWZkNzBhMGRjNgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiA2IDAxOjE5OjQwIDIwMDggLTA2MDAKCiAgICBVcGRhdGUgU1ZSIG51bWJlcnMgdG8gZXhwYW5kIHN1cHBvcnQKCiAgICBGU0wgaGFzIHRha2VuIHRvIHVzaW5nIFNWUlsxNjoyM10gYXMgYW4gU09DIHN1Yi12ZXJzaW9uIGZpZWxkLiAgVGhpcwogICAgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCBjZXJ0YWluIHZhcmlhbnRzIHdpdGhpbiBhbiBTT0MgZmFtaWx5LiAgVG8KICAgIGFjY291bnQgZm9yIHRoaXMsIHdlIGFkZCB0aGUgU1ZSX1NPQ19WRVIoKSBtYWNybywgYW5kIHVwZGF0ZSB0aGUgU1ZSXyoKICAgIGNvbnN0YW50cyB0byByZWZsZWN0IHRoZSBsYXJnZXIgdmFsdWUuICBXZSBhbHNvIGFkZCBTVlIgbnVtYmVycyBmb3IgYWxsCiAgICBvZiB0aGUgY3VycmVudCB2YXJpYW50cy4gIEZpbmFsbHksIHRvIG1ha2UgdGhpbmdzIG5lYXRlciwgcmF0aGVyIHRoYW4KICAgIHVzZSBhbiBlbm9ybW91cyBzd2l0Y2ggc3RhdGVtZW50IHRvIHByaW50IG91dCB0aGUgQ1BVIHR5cGUsIHdlIGNyZWF0ZQogICAgYW5kIGFycmF5IG9mIFNWUi9uYW1lIHBhaXJzICh1c2luZyBhIG1hY3JvKSwgYW5kIHByaW50IG91dCB0aGUgQ1BVIG5hbWUKICAgIHRoYXQgbWF0Y2hlcyB0aGUgU1ZSIFNPQyB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiODNlZWY0NDBjZjNjZWY4MTYxNzJjY2JiNTg5N2NjZDhlNDAzY2YzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDYgMDE6MTI6NTcgMjAwOCAtMDYwMAoKICAgIEFkZCB0aGUgRnJlZXNjYWxlIFBDSSBkZXZpY2UgSURzCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhZmYwYzA1MWFkMDYxMzE3MWNmMmI5OTQxZWU0ODY3NWM2MmU3Y2QKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgRmViIDE0IDExOjA0OjIzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBBZGRlZCBzdXBwb3J0IGZvciBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20KCiAgICBBZGRlZCB0aGUgY3B1IGNvbW1hbmQgdGhhdCBwcm92aWRlcyBhIGdlbmVyaWMgbWVjaGFuaXNtIHRvIGdldCBzdGF0dXMsCiAgICByZXNldCwgYW5kIHJlbGVhc2Ugc2Vjb25kYXJ5IGNvcmVzIGluIG11bHRpY29yZSBwcm9jZXNzb3JzLgoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBlUEFQUiBkZWZpbmVkIHNwaW4tdGFibGUgbWVjaGFuaXNtIG9uIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYzJiNzRmZmQzNmYwMmM2MTIzNzI1ZTdjMjUzM2RkMmRlYWY0YjY0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAxNjo0ODozMyAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkZWQgc3VwcG9ydCBmb3IgbXVsdGljb3JlIGJvb3QgbWVjaGFuaXNtCgogICAgQWRkZWQgdGhlIGNwdSBjb21tYW5kIHRoYXQgcHJvdmlkZXMgYSBnZW5lcmljIG1lY2hhbmlzbSB0byBnZXQgc3RhdHVzLAogICAgcmVzZXQsIGFuZCByZWxlYXNlIHNlY29uZGFyeSBjb3JlcyBpbiBtdWx0aWNvcmUgcHJvY2Vzc29ycy4KCiAgICBBZGRlZCBzdXBwb3J0IGZvciB1c2luZyB0aGUgZVBBUFIgZGVmaW5lZCBzcGluLXRhYmxlIG1lY2hhbmlzbSBvbiA4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjY5NzY2ZTRiNWQ0N2VjZDNhYTU4Njc3YThkYTg3NTY5NGYzNjRmMgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMzAgMTQ6NTU6MTQgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEFkZCB0aGUgY29uY2VwdCBvZiBDRkdfQ0NTUkJBUl9QSFlTCgogICAgV2hlbiB3ZSBnbyB0byAzNi1iaXQgcGh5c2ljYWwgYWRkcmVzc2VzIHdlIG5lZWQgdG8ga2VlcCB0aGUgY29uY2VwdCBvZgogICAgdGhlIHBoeXNpY2FsIENDU1JCQVIgYWRkcmVzcyBzZXBlcmF0ZSBmcm9tIHRoZSB2aXJ0dWFsIG9uZS4KCiAgICBGb3IgdGhlIG1ham9yaXR5IG9mIGJvYXJkcyBDRkdfQ0NTQkFSX1BIWVMgPT0gQ0ZHX0NDU1JCQVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDViNWViOWNhNWI3NzhmNzYzYmNmMzMyNjk3YjM1Y2MxZTc0NzYyNmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDE1OjM4OjQ3IDIwMDggKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRhODgwOGRmN2E5Y2VmNWEzZDJlZTI4NmVmOWViZjlkZTE3ODA2NjAKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJV2VkIE1hciAyNiAxMzowMjoxMyAyMDA4ICswMTAwCgogICAgQWRkIENGR19SVENfRFMxMzM3X05PT1NDIHRvIHR1cm4gb2ZmIE9TQyBvdXRwdXQKCiAgICBUaGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgUlRDIERTMTMzNyBrZWVwcyB0aGUgT1NDCiAgICBvdXRwdXQsIDMyLDc2OCBIeiwgb24uIFRoaXMgYWRkIENGR19SVENfRFMxMzM3X05PT1NDIHRvCiAgICB0dXJuIGl0IG9mZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCA0MzhhNGMxMTI2MGI0ZWE5ODA1MDM5YjBiNGY5MmY5ZGY1MzA2YjAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxMTo0ODo0NiAyMDA4ICswMTAwCgogICAgQ2xlYW51cCBjb2Rpbmcgc3R5bGUsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIxOGNhNzI0YzA4Y2E4YTY0OWYwOTE3Y2YyMDFjZjIzZDRiMzNmMzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDEwOjQwOjEyIDIwMDggKzAxMDAKCiAgICBSRUFETUU6IHVwZGF0ZSBkb2N1bWVudGF0aW9uIChhdmFpbGFiaWxpdHksIGxpbmtzLCBldGMuKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjZiNDRlMGU0ZDE4ZmU1MDc4MzNhMGY3NmQyNGE5YWE3MmMxMjNmMQpBdXRob3I6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CkRhdGU6CVR1ZSBNYXIgMjUgMTI6MDk6MDcgMjAwOCArMTEwMAoKICAgIFVTQiBTdG9yYWdlLCBhZGQgbWVhbmluZ2Z1bCByZXR1cm4gdmFsdWUKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlICJ1c2Igc3RvcmFnZSIgY29tbWFuZCB0byByZXR1cm4gc3VjY2VzcyBpZiBpdAogICAgZmluZHMgYSBVU0Igc3RvcmFnZSBkZXZpY2UsIG90aGVyd2lzZSBpdCByZXR1cm5zIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMThlNjlhMzVlZmJiMDc4NDAzZGIwYzAwNjM5ODY0NzBkYWQ3ZDA4MgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglGcmkgTWFyIDE0IDIzOjIwOjE4IDIwMDggKzAzMDAKCiAgICA4M3h4L2ZkdF9zdXBwb3J0OiBsZXQgdXNlciBzcGVjaWZpeSBGU0wgVVNCIER1YWwtUm9sZSBjb250cm9sbGVyIHJvbGUKCiAgICBMaW51eCB1bmRlcnN0YW5kcyAiaG9zdCIgKGRlZmF1bHQpLCAicGVyaXBoZXJhbCIgYW5kICJvdGciIChicm9rZW4pLgogICAgVGhvdWdoLCBVLUJvb3QgZG9lc24ndCByZXN0cmljdCBkcl9tb2RlIHZhcmlhYmxlIHRvIHRoZXNlIHZhbHVlcyAodGhpbmsKICAgIG9mIHJlbmFtZXMgaW4gZnV0dXJlKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzc2MDQ3ODNiMjM2ZTM2OGYyMjVlZmI3YjNlZmI0MThmZTIwYjQwNApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglGcmkgTWFyIDE0IDIzOjIwOjMwIDIwMDggKzAzMDAKCiAgICB0c2VjOiBmaXggbGluayBkZXRlY3Rpb24gZm9yIHRoZSBSVEw4MjExQiBQSFkKCiAgICBSVEw4MjExQiBzZXRzIGxpbmsgc3RhdGUgcmVnaXN0ZXIgYWZ0ZXIgYXV0b25lZ290aWF0aW9uIGNvbXBsZXRlLAogICAgc28gd2l0aCBib290ZGVsYXk9MCBSVEw4MjExQiB3aWxsIHJlcG9ydCBsYWNrIG9mIHRoZSBsaW5rLgoKICAgIFRvIGZpeCB0aGlzLCB3ZSBzaG91bGQgd2FpdCBmb3IgYW5lZyB0byBjb21wbGV0ZSwgZXZlbiBpZiB0aGUKICAgIGxpbmsgaXMgY3VycmVudGx5IGRvd24uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmYTljYmIwMGRjODNmY2YxNzUwNDJiNmYyMGMyYzliY2U5YTE1ZjQKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NzowOSAyMDA4ICswMzAwCgogICAgbXBjODN4eDogYWRkICJmc2wsc29jIiBhbmQgImZzbCxpbW1yIiBjb21wYXRpYmxlIGZpeHVwcwoKICAgIGRldmljZV90eXBlID0gInNvYyIgaXMgYmVpbmcgZGVwcmVjYXRlZCwgbmV3ZXIgZGV2aWNlIHRyZWVzIHdpbGwgdXNlCiAgICAiZnNsLHNvYyIgYW5kL29yICJmc2wsaW1tciIgZm9yIHRoZSBzb2Mgbm9kZXMuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgY2xvY2stZnJlcXVlbmN5IHByb3BlcnR5IGZvciBzb2Mgbm9kZXMgKHRoZSBzYW1lCiAgICB2YWx1ZSBhcyBidXMtZnJlcXVlbmN5KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA1MDdlMmQ3OWM5MTQ0MWEwYmIyY2QzZDBjMzFjOGJmZTNmOGNlYzA3CkF1dGhvcjogSm9lIEQnQWJicmFjY2lvIDxsamQwMTVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxMzowMDo1OSAyMDA4IC0wNDAwCgogICAgTW9kaWZpZWQgdGhlIEREUiBTRFJBTSBjbG9jayBjb250cm9sIHJlZ2lzdGVyIHRvIGRlbGF5IE1DSy9NQ0tfQiAzLzQgY2xvY2sKCiAgICBXaXRoIHRoZSBvcmlnaW5hbCB2YWx1ZSBvZiAxLzIgY2xvY2sgY3ljbGUgZGVsYXksIHRoZSBzeXN0ZW0gcmFuIHJlbGF0aXZlbHkKICAgIHN0YWJsZSBleGNlcHQgd2hlbiB3ZSBydW4gYmVuY2htYXJrcyB0aGF0IGFyZSBpbnRlbnNpdmUgdXNlcnMgb2YgbWVtb3J5LgogICAgV2hlbiBJIHJ1biBzYW1iYSBjb25uZWN0ZWQgZGlzayB3aXRoIGEgSERCRU5DSCB0ZXN0LCB0aGUgc3lzdGVtIGxvY2tzLXVwCiAgICBvciByZWJvb3RzIHNwb3JhZGljYWxseS4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgRCdBYmJyYWNjaW8gPEpvZS5EJ2FiYnJhY2Npb0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3YmEzMmQ0ODBhODZkYjVkYjhkY2Q4Y2E2NmIyMWI0Y2FkZGE5MjMKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxMjo0NDoxMyAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogU2V0IFBDSSBJL08gYnVzLWFkZHJlc3MgYmFzZSB0byB6ZXJvLgoKICAgIFRoZSBkZXZpY2UgdHJlZXMgZm9yIHRoZXNlIGJvYXJkcyBkZXNjcmliZSBQQ0kgSS9PIGFzIHN0YXJ0aW5nIGZyb20KICAgIGFkZHJlc3MgemVybyBmcm9tIHRoZSBkZXZpY2UncyBwZXJzcGVjdGl2ZS4KCiAgICBQbGFjaW5nIEkvTyBlbHNld2hlcmUgbWF5IGNhdXNlIHByb2JsZW1zIHdpdGggY2VydGFpbiBQQ0kgYm9hcmRzLCBhbmQgbWF5CiAgICBjYXVzZSBwcm9ibGVtcyB3aXRoIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3MDBlN2RmN2ZlY2YyZDM3NjVhZTU2OGNlNzdjZTc4OGNkZTRmM2UKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NzowNSAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiB1c2UgMzMuMygzKU1IeiBDTEtJTi9TWVNfQ0xLCgogICAgQXQgbGVhc3Qgb24gdGhlICIzM01IeiBQaWxvdCIgYm9hcmQgY3J5c3RhbCBpcyBhY3R1YWxseSAzMy4zTUh6LgogICAgVGhpcyBwYXRjaCBmaXhlcyAic3lzdGVtIHRpbWUgZHJpZnRpbmciIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgM2EwY2ZkZDU3NmRjOWIxNmQxNDY4ZDM3MzM5MTgyNjA3YzY5N2ZiNwpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjAyIDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IGRlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwoKICAgIFRoaXMgaXMgbmVlZGVkIHRvIHVwZGF0ZSAvY2hvb3Nlbi9saW51eCxzdGRvdXQtcGF0aCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAzNDE5ZWI2MmYwODhkN2EyMmYxZDJhM2NlYmY3NmI3N2U0MDhiNWI5CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDc6MDAgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogYWRkIGRoY3AgY29tbWFuZAoKICAgIFBsdXMgbW9kaWZ5IGVudmlyb25tZW50IHRvIHVzZSBpdCBhbmQgcmVtb3ZlIGJvb3RmaWxlIGVudiB2YXJpYWJsZSwKICAgIGl0IGlzIGludGVybmFsIGFuZCBDT05GSUdfQk9PVEZJTEUgaXMgdXNlZCBmb3IgdGhlc2UgcHVycG9zZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgZDg5MmIyZGJiNDA4N2EyNjc3OGJmZDQyNDcwYzNlYTdkMGUyYjZhYQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ2OjU3IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IHJld29yayBkZHIgc2V0dXAsIGVuYWJsZSBlY2MKCiAgICBDdXJyZW50IEREUiBzZXR1cCBlYXNpbHkgY2F1c2VzIG1lbW9yeSBjb3JydXB0aW9uLCB0aGlzIHBhdGNoIGZpeGVzIGl0LgoKICAgIEFsc28gZml4IFRJTUlOR19DRkcwX01SU19DWUMgZGVmaW5pdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBkNDdkNDljYzM3YTM4ZjI3MTlhM2UxYjliYmUwOGFjODEwY2YyZDlhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTMgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogY29uZmlndXJlIHBhcmlvIHBpbnMgZm9yIEFENzg0MyBhbmQgRkhDSQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBxZSBwYXJpbyBwaW5zIGNvbmZpZ3VyYXRpb24gZm9yIEFENzg0MyBBREMvVG91Y2hzY3JlZW4KICAgIGNvbnRyb2xsZXIgYW5kIEZIQ0kgKFFFIFVTQikuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgN2FkOTU5NDkwOTYyZTY4NDI2NDhkODdkNGJkNzk1ZWE2Y2RjY2U2NwpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ2OjUxIDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IGFkZCBzdXBwb3J0IGZvciBOQU5ECgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgOWEzZTgzMmFlYjQ5MTg2MWQwMjk5OTEyNDE1NzJlYmRmNGI1YjYxYgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ2OjQ2IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IHVzZSBSR01JSV9SWElEIGludGVyZmFjZSBtb2RlCgogICAgVGhpcyBpcyBuZWVkZWQgZm9yIEJDTSBQSFlzIHRvIHdvcmsgb24gdGhpcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAzMDA2MTVkYzVkOWIwYTIwMjJmYmM2YWYwYzEzMTU5ZTMzZmQ3NTJlCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6MzQgMjAwOCArMDMwMAoKICAgIHVlYzogYWRkIHN1cHBvcnQgZm9yIEJyb2FkY29tIEJDTTU0ODEgR2lnYWJpdCBQSFkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgQnJvYWRjb20gQkNNNTQ4MSBQSFkuCgogICAgUlhELVJYQyBkZWxheSBxdWlyayBjb21lcyBmcm9tIE1QQzgzNjBFLVJESyBCU1Agc291cmNlLCBhdXRob3IgaXMKICAgIFBldGVyIEJhcmFkYSA8cGV0ZXJiQGxvZ2ljcGQuY29tPi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA2YTYwMGMzYTE4NzZiYzIwMzQ0NWRmNGYwZmQ2YjEyNjQ4MjU5NjY2CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6MjggMjAwOCArMDMwMAoKICAgIHVlYzogYWRkIHN1cHBvcnQgZm9yIFJHTUlJX1JYSUQgaW50ZXJmYWNlIG1vZGUKCiAgICBQSFkgZHJpdmVycyB3aWxsIHVzZSBpdCB0byBzZXR1cCBzb2Z0d2FyZSBkZWxheSBiZXR3ZWVuIFJYRCBhbmQgUlhDCiAgICBzaWduYWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDkxY2RhYTNhOWQ3NTYyYjg2OWQ5Njc3NGU5YzlkZGYxNDJjMDg0OGQKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjoyNCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgZ2JpdCBtaWkgc3RhdHVzIHJlYWRpbmdzCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgYWFiY2U3ZmI1MDVmZmU1NWViZjNiZjRkY2FmZGFlOTdhNTgxNTU4ZApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjQ3IDIwMDggKzAzMDAKCiAgICA4M3h4OiBkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMgZm9yIHRoZSBNUEM4MzdYRVJEQiBib2FyZHMKCiAgICBUaGlzIGlzIHByaW1hcmlseSBmb3IgdGhlIGVhcmx5IGNvbnNvbGUgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAyYmQ3NDYwZTkyODNlYzk4NTY1MTg5YjNjZGJjZmIyYmNkY2RkNjM1CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTc6NDA6NDMgMjAwOCArMDMwMAoKICAgIDgzeHg6IGluaXRpYWxpemUgc2VyZGVzIGZvciBNUEM4MzdYUkRCIGJvYXJkcwoKICAgIE9uIHRoZSBNUEM4Mzc3RVJEQjogMiBTQVRBIGFuZCAyIFBDSS1FLgogICAgT24gdGhlIE1QQzgzNzhFUkRCOiAyIFBDSS1FCiAgICBPbiB0aGUgTVBDODM3OUVSREI6IDQgU0FUQQoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDQ1MzMxNmEyYTE5NjQyZDhhZmNiY2E3NDUyZTQwYTZiNDRhMTk3YjEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDozMiAyMDA4ICswMzAwCgogICAgODN4eDogc2VyZGVzIHNldHVwIHJvdXRpbmVzCgogICAgVGhpcyBwYXRjaCBhZGRzIGZldyByb3V0aW5lcyB0byBjb25maWd1cmUgc2VyZGVzIG9uIDgzN3ggdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBhNzk2Y2RmOWMzNzdjYjRlNWQ2MWQxMDc5YTI5NjYwOGY4ZmJkOTAzCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTc6NDA6MjcgMjAwOCArMDMwMAoKICAgIDgzeHg6IHNwbGl0IENPQkpTIG9udG8gc2VwYXJhdGUgbGluZXMKCiAgICAuLnBsdXMgZ2V0IHJpZCBvZiBzb21lICNpZmRlZnMgaW4gdGhlIC5jIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDQ2YTNhZWVhNzNjMTNhYjA0ZWJmN2E4NzM5YWZiODdhYzVkYTk0YTMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDoyMyAyMDA4ICswMzAwCgogICAgODN4eDogbmFuZCBzdXBwb3J0IGZvciBNUEM4MzdYUkRCIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDgyZTQ1YTIwNDE5MDU5M2U4NjEzMTQ1YTkyOGY5OThmYjhjOTA5YzQKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMjE6NDQ6NDEgMjAwOCAtMDQwMAoKICAgIEVuYWJsZSBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyBvbiB0aGUgTVBDODM2MEVNRFMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGZhN2ExYjQ3MTllMzI1ZmNlMzMyNjg5ZmI4NzU0ZWMxNjYxOTFmZgpBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDIwIDEzOjE1OjM5IDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogcmVtb3ZlIFJUQyBhbmQgYWRkIEVFUFJPTQoKICAgIFRoZXJlJ3Mgbm8gb24tYm9hcmQgUlRDIG9uIHRoZSBNUEM4MzIzRVJEQiwgYnV0IHRoZXJlIGlzIGFuIEVFUFJPTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDViYmVlYTg2ZWI2YWZiODcyMzc0Y2QyMzIxN2NiM2MxMDE4NDQzZWQKQXV0aG9yOiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAxMzoxNTozNCAyMDA4IC0wNDAwCgogICAgbXBjODMyM2VyZGI6IEltcHJvdmUgdGhlIHN5c3RlbSBwZXJmb3JtYW5jZQoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgYmFzZWQgb24ga2VybmVsIFVDQyBldGhlcm5ldCBwZXJmb3JtYW5jZToKCiAgICAxLglNYWtlIHRoZSBDU0IgYnVzIHBpcGVsaW5lIGRlcHRoIGFzIDQsIGFuZCBlbmFibGUgdGhlIHJlcGVhdCBtb2RlCiAgICAyLglPcHRpbWl6ZSB0cmFuc2FjdGlvbnMgYmV0d2VlbiBRRSBhbmQgQ1NCLiAgQWRkZWQgQ0ZHX1NQQ1JfT1BUCglzd2l0Y2ggdG8gZW5hYmxlIHRoaXMgc2V0dGluZy4KCiAgICBUaGUgZm9sbG93aW5nIGNoYW5nZXMgYXJlIGJhc2VkIG9uIHRoZSBBcHAgTm90ZSBBTjMzNjkgYW5kCiAgICB2ZXJpZmllZCB0byBpbXByb3ZlIG1lbW9yeSBsYXRlbmN5IHVzaW5nIExNYmVuY2g6CgogICAgMy4JQ1MwX0NPTkZJR1tBUF9uX0VOXSBpcyBjaGFuZ2VkIGZyb20gMSB0byAwCiAgICA0LglDUzBfQ09ORklHW09EVF9XUl9DT05GSUddIHNldCB0byAxLiAgV2FzIGEgcmVzZXJ2ZWQgc2V0dGluZwoJcHJldmlvdXNseS4KICAgIDUuCVRJTUlOR19DRkdfMVtXUlJFQ10gaXMgY2hhbmdlZCBmcm9tIDNjbGtzIHRvIDJjbGtzICAoYmFzZWQgb24KCVR3cj0xNW5zLCBhbmQgdGhpcyB3YXMgYWxyZWFkeSB0aGUgc2V0dGluZyBpbiBERFJfTU9ERSkKICAgIDYuCVRJTUlOR19DRkdfMVtQUkVUT0FDVF0gaXMgY2hhbmdlZCBmcm9tIDNjbGtzIHRvIDJjbGtzLiAoYmFzZWQgb24KCVRycD0xNW5zKQogICAgNy4JVElNSU5HX0NGR18xW0FDVFRPUFJFXSBpcyBjaGFuZ2VkIGZyb20gOWNsa3MgdG8gNmNsa3MuIChiYXNlZCBvbgoJVHJhcz00MG5zKQogICAgOC4JVElNSU5HX0NGR18xW0FDVFRPUlddIGlzIGNoYW5nZWQgZnJvbSAzY2xrcyB0byAyY2xrcy4gKGJhc2VkIG9uCglUcmNkPTE1bnMpCiAgICA5LglUSU1JTkdfQ0ZHXzFbUkVGUkVDXSBjaGFuZ2VkIGZyb20gMjEgY2xrcyB0byAxMWNsa3MuICAoYmFzZWQgb24KCVRyZmM9NzVucykKICAgIDEwLiBUSU1JTkdfQ0ZHXzJbRk9VUl9BQ1RdIGlzIGNoYW5nZWQgZnJvbSAxMCBjbGtzIHRvIDdjbGtzLiAgKGJhc2VkCglvbiBUZmF3PTUwbnMpCiAgICAxMS4gVElNSU5HX0NGR18yW0FERF9MQVRdIGFuZCBERFJfTU9ERVtBTF0gY2hhbmdlZCBmcm9tIDAgdG8gMSAoYmFzZWQKCW9uIENMPTMgYW5kIFdMPTIpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmM1NDljODcxZjQzOTMzMzk2YTViM2UyMWQ4OTcwMjNkNGIzMWI4ZApBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDIwIDEzOjE1OjI4IDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogdXNlIHJlYWRhYmxlIEREUiBjb25maWcgbWFjcm9zCgogICAgVXNlIGF2YWlsYWJsZSBzaGlmdC9tYXNrIG1hY3JvcyB0byBkZWZpbmUgRERSIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OWM3Nzg0ZWQ5MGJhNTAzMDFlZWM1MjExNDRmOTUxMTFlNDcyOTA2CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDEzOjE1OjU1IDIwMDggLTA2MDAKCiAgICA4M3h4OiBBZGQgVml0ZXNzZSBWU0M3Mzg1IGZpcm13YXJlIHVwbG9hZGluZwoKICAgIFVwZGF0ZSB0aGUgTVBDODM0OUUtbUlUWCwgTVBDODMxM0UtUkRCLCBhbmQgTVBDODM3WEUtUkRCIGJvYXJkIGZpbGVzIHRvIHVwbG9hZAogICAgdGhlIFZpdGVzc2UgVlNDNzM4NSBmaXJtd2FyZS4gIENoYW5nZWQgQ09ORklHX1ZTQzczODUgdG8gQ09ORklHX1ZTQzczODVfRU5FVC4KICAgIENsZWFuZWQgdXAgdGhlIGJvYXJkIGhlYWRlciBmaWxlcyB0byBtYWtlIHNlbGVjdGluZyB0aGUgVlNDNzM4NSBlYXNpZXIgdG8KICAgIGNvbnRyb2wuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjU1ZDk4YzZkNWI4Njk0ZTU2MGEwZTcyN2IxNGNiNjkyMWQ3Y2ZjYwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgOCAxMzoxNTo1NCAyMDA4IC0wNjAwCgogICAgTkVUOiBBZGQgVml0ZXNzZSBWU0M3Mzg1IGZpcm13YXJlIHVwbG9hZGluZwoKICAgIFRoZSBWaXRlc3NlIFZTQzczODUgaXMgYSA1LXBvcnQgc3dpdGNoIGZvdW5kIG9uIHRoZSBGcmVlc2NhbGUgTVBDODM0OUUtbUlUWAogICAgYW5kIG90aGVyIGJvYXJkcy4gIEEgc21hbGwgZmlyd21hcmUgbXVzdCBiZSB1cGxvYWRlZCB0byBpdHMgb24tYm9hcmQgbWVtb3J5CiAgICBiZWZvcmUgaXQgY2FuIGJlIGVuYWJsZWQuICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvZGUgd2hpY2ggdXBsb2FkcyBmaXJtd2FyZQogICAgKGJ1dCBub3QgdGhlIGZpcm13YXJlIGl0c2VsZikuCgogICAgUHJldmlvdXNseSwgdGhpcyBmZWF0dXJlIHdhcyBwcm92aWRlZCBieSBhIFUtQm9vdCBhcHBsaWNhdGlvbiB0aGF0IHdhcwogICAgbWFkZSBhdmFpbGFibGUgb25seSBvbiBGcmVlc2NhbGUgQlNQcy4gIFRoZSBWU0M3Mzg1IGZpcm13YXJlIG11c3Qgc3RpbGwKICAgIGJlIG9idGFpbmVkIHNlcGFyYXRlbHksIGJ1dCBhdCBsZWFzdCB0aGVyZSBpcyBubyBsb25nZXIgYSBuZWVkIGZvciBhIHNlcGFyYXRlCiAgICBhcHBsaWNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYWE2ZjZkMTcxYTFmOWY0NmVlNGYwM2FkNmFjYjk3YTZiZmI3MTg1NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMDA6NTI6MTAgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnlwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0M2RkZDljODIwZmVjNDQ4MTYxODhmNTMzNDZiNDY0ZTIwYjMxNDJkCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDIyIDE0OjIzOjQ5IDIwMDggLTA0MDAKCiAgICBSZW1vdmUgZGVwcmVjYXRlZCBDT05GSUdfT0ZfSEFTX1VCT09UX0VOViBhbmQgQ09ORklHX09GX0hBU19CRF9UCgogICAgVGhlc2UgZGVmaW5lcyBlbWJlZGRlZCB0aGUgdS1ib290IGVudiB2YXJpYWJsZXMgYW5kL29yIHRoZSBiZF90IHN0cnVjdHVyZQogICAgaW4gdGhlIGZkdCBibG9iLiAgVGhlIGNvbmNsdXNpb24gb2YgZGlzY3Vzc2lvbiBvbiB0aGUgdS1ib290IGVtYWlsIGxpc3QKICAgIHdhcyB0aGF0IGVtYmVkZGluZyB0aGVzZSBpbiB0aGUgZmR0IGJsb2IgaXMgbm90IHVzZWZ1bDogdGhlcmUgYXJlIGJldHRlcgogICAgd2F5cyBvZiBwYXNzaW5nIHRoZSBkYXRhIChpbiBmYWN0LCB0aGUgZmR0IGJsb2IgaXRzZWxmIHJlcGxhY2VzIHRoZQogICAgYmRfdCBzdHJ1Y3QpLgoKICAgIFRoZSBvbmx5IGJvYXJkIHRoYXQgZW5hYmxlcyB0aGVzZSBpcyB0aGUgc3R4eHRjIGFuZCB0aGV5IGRvbid0IGFwcGVhcgogICAgdG8gYmUgdXNlZCBieSBsaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjJlZDIyODU3NDMzNTlmZDFmZTczZTQxMWRmZjkxNGIyMjU2ZTY4ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAxNyAxMDo0OToyNSAyMDA4ICswMTAwCgogICAgcnRjOiBSZW1vdmUgMm5kIHJlZmVyZW5jZSB0byBtYXg2OTAwLm8gaW4gZHJpdmVycy9ydGMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWJiNzA3YzM5YTA4MzNlOTFkOWY3OTdkZDg2MmFhYWFmNGFmMjY0ZApBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gTWFyIDE3IDA4OjU0OjA2IDIwMDggKzA5MDAKCiAgICBBZGQgRmxleC1PbmVOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIEZsZXgtT25lTkFORCBpcyBhIG1vbm9saXRoaWMgaW50ZWdyYXRlZCBjaXJjdWl0IHdpdGggYSBOQU5EIEZsYXNoIGFycmF5CiAgICB1c2luZyBhIE5PUiBGbGFzaCBpbnRlcmZhY2UuIFRoaXMgb24tY2hpcCBpbnRlZ3JhdGlvbiBlbmFibGVzIHN5c3RlbSBkZXNpZ25lcnMKICAgIHRvIHJlZHVjZSBleHRlcm5hbCBzeXN0ZW0gbG9naWMgYW5kIHVzZSBoaWdoLWRlbnNpdHkgTkFORCBGbGFzaAogICAgaW4gYXBwbGljYXRpb25zIHRoYXQgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gdXNlIG1vcmUgTk9SIGNvbXBvbmVudHMuCgogICAgRmxleC1PbmVOQU5EIGVuYWJsZXMgdXNlcnMgdG8gY29uZmlndXJlIHRvIHBhcnRpdGlvbiBpdCBpbnRvIFNMQyBhbmQgTUxDIGFyZWFzCiAgICBpbiBtb3JlIGZsZXhpYmxlIHdheS4gV2hpbGUgTUxDIGFyZWEgb2YgRmxleC1PbmVOQU5EIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGRhdGEKICAgIHRoYXQgcmVxdWlyZSBsb3cgcmVsaWFiaWxpdHkgYW5kIGhpZ2ggZGVuc2l0eSwgU0xDIGFyZWEgb2YgRmxleC1PbmVOQU5ECiAgICB0byBzdG9yZSBkYXRhIHRoYXQgbmVlZCBoaWdoIHJlbGlhYmlsaXR5IGFuZCBoaWdoIHBlcmZvcm1hbmNlLiBGbGV4LU9uZU5BTkQKICAgIGNhbiBsZXQgdXNlcnMgdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RvcmluZyB0aGVzZSB0d28gZGlmZmVyZW50IHR5cGVzIG9mIGRhdGEKICAgIGludG8gb25lIGNoaXAsIHdoaWNoIGlzIG1ha2luZyBGbGV4LU9uZU5BTkQgbW9yZSBjb3N0LSBhbmQgc3BhY2UtZWZmZWN0aXZlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYzUxMjM4OWNjNGExMDI1MzI0OTI3MWZmNmM4ODdjNmRhYjFmMGRiMgpBdXRob3I6IEFuZHLDqSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CVRodSBNYXIgMTMgMTM6NTA6NTIgMjAwOCArMDEwMAoKICAgIE1QQzUyMDA6IHN1cHBvcnQgc2V0dXAgd2l0aG91dCBGRUMKCiAgICBJbmNsdWRlIEZFQyBzcGVjaWZpYyBub2RlcyBpbiBmdF9jcHVfc2V0dXAgb25seSBpZiBDT05GSUdfTVBDNXh4eF9GRUMgaXMKICAgIGRlZmluZWQuIFN5c3RlbXMgd2l0aG91dCBGRUMsIGkuZS4gbm8gRkVDIG5vZGUgaW4gRFRCLCBzaG91bGQgYmUgcG9zc2libGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhYTM1MTFlNDIyOTQ2MDQxZWY2MjZmODBhMDVhZTVlOGJmYzcwMGU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE4OjA1OjQ2IDIwMDggLTA2MDAKCiAgICBGU0w6IE1vdmUgYm9hcmQvbXBjODI2NmFkcyB1bmRlciBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmMWQ4NDZlNWM1NzU0NDQ5YzI4NjU4N2QwOTlkODUyNDYwNjI3NzIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTg6MDU6NDcgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM3NDQ4aHBjMiB1bmRlciBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI3ZTI0ZDI4M2UzNDcyN2MyYTZjZGZkYWMyZTA5YTQyNmM1NzliNzMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTg6MDU6NDUgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM4MjYwYWRzIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmE4YTVkYzQ3NTk4NjdjNDVhYTk1NTgwZGViOGJmMjY2NjlhNWQ5NwpBdXRob3I6IGdvZGEueXVzdWtlIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE3OjA4OjMzIDIwMDggKzA5MDAKCiAgICBuZXQ6IEFkZCBzdXBwb3J0IEFYODg3OTZMIGV0aGVybmV0IGRldmljZQoKICAgIEFYODg3OTZMIGlzIGRldmljZSBvZiBORTIwMDAgY29tcGF0aWJsZS4KICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBBWDg4Nzk2TCBldGhlcm5ldCBkZXZpY2UuCgogICAgU2lnbmVkLW9mZi1ieTogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBlMGE2MTQwZGQzODFlMWVlZDFhZGEyMjkxMTY2ZWYyNjE2ZDg4MjJiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAyNSAyMjo1MDo0MSAyMDA4ICswMTAwCgogICAgbmUyMDAwIGRyaXZlcjogY2hhbmdlICNpZmRlZiB0byBNYWtlZmlsZSBjb25kaXRpb25hbCBjb21waWxhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTcxMDE4NWFhZTkwYzY0ZDM5YzJkNDUzZTQwZTU4Y2VlZmU0ZjI1MApBdXRob3I6IGdvZGEueXVzdWtlIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE3OjA4OjIwIDIwMDggKzA5MDAKCiAgICBuZXQ6IERpdmlkZWQgY29kZSBvZiBORTIwMDAgZXRoZXJuZXQgZHJpdmVyCgogICAgVGhlcmUgYXJlIG1vcmUgZGV2aWNlcyBvZiB0aGUgTkUyMDAwIGJhc2UuCiAgICBBIHByZXNlbnQgY29kZSBpcyBkaWZmaWN1bHQgZm9yIHVzIHRvIHN1cHBvcnQgbW9yZSBkZXZpY2VzLgogICAgVG8gc3VwcG9ydCBtb3JlIE5FMjAwMCBjbG9uZSBkZXZpY2VzLCBzZXBhcmF0ZWQgdGhlIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIEFja2VkLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzk1YmNlNGY1OWE1MDdhNjBhNDc1ZjdlZTQ2YmVkNDdkZTk0ODJkZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIEZlYiAyNCAyMzo1ODoxMyAyMDA4IC0wNTAwCgogICAgbmV0L0JsYWNrZmluOiBtb3ZlIG9uLWNoaXAgTUFDIGRyaXZlciBpbnRvIGRyaXZlcnMvbmV0LwoKICAgIFRoZSBCbGFja2ZpbiBvbi1jaGlwIE1BQyBkcml2ZXIgd2FzIGJlaW5nIG1hbmFnZWQgaW4gdGhlIEJGNTM3LVNUQU1QIGJvYXJkCiAgICBkaXJlY3RvcnksIGJ1dCBpdCBpcyBub3QgYm9hcmQgc3BlY2lmaWMsIHNvIHJlbG9jYXRlIGl0IHRvIHRoZSBkcml2ZXJzIGRpcgogICAgc28gdGhhdCBvdGhlciBCbGFja2ZpbiBwb3J0cyBjYW4gdXRpbGl6ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGEzMGI0NzAwOTQyZjM3NDk1ZDJlNjdmNTk5OGNkZmZiNmUzYmE4YQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU3VuIEZlYiAyNCAyMzo1MjozNSAyMDA4IC0wNTAwCgogICAgc21jOTExMTE6IHVzZSBTU1lOQygpIHJhdGhlciB0aGFuIGFzbShzc3luYykgZm9yIEJsYWNrZmluCgogICAgU2luY2UgdGhlICJzc3luYyIgaW5zdHJ1Y3Rpb24gbWF5IGhhdmUgaGFyZHdhcmUgYW5vbWFsaWVzIGFzc29jaWF0ZWQgd2l0aAogICAgaXQsIGhhdmUgdGhlIHNtYzkxMTExIGRyaXZlciB1c2UgdGhlIFNTWU5DIG1hY3JvIHJhdGhlciB0aGFuIGludm9raW5nIGl0CiAgICBkaXJlY3RseS4gIFdlIHdvcmthcm91bmQgYWxsIHRoZSBhbm9tYWxpZXMgdmlhIHRoaXMgbWFjcm8uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDc3ZmY3Yjc0NDRjZWI4MDIyYjQ2MTE0ZjNkMGI2ZDE4ZTJmZDExMzgKQXV0aG9yOiBCcnlhbiBPJ0Rvbm9naHVlIDxib2Rvbm9naHVlQGNvZGVoZXJtaXQuaWU+CkRhdGU6CVN1biBGZWIgMTcgMjI6NTc6NDcgMjAwOCArMDAwMAoKICAgIDh4eDogVXBkYXRlIE9GIHN1cHBvcnQgb24gOHh4CgogICAgVGhpcyBwYXRjaCBkb2VzIHNvbWUgc2hpZnRpbmcgYXJvdW5kIG9mIE9GIHN1cHBvcnQgb24gOHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KCmNvbW1pdCA5YzY2NmE3ZGIwYjIyODVhMjcwYzY4ODEwODg5Y2U3ZDVkYmEzMDRiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEZlYiAxNSAxNToxNjoxOCAyMDA4IC0wNjAwCgogICAgcHBjOiBBbGxvdyBib2FyZHMgdG8gc3BlY2lmeSBob3cgbXVjaCBtZW1vcnkgdGhleSBjYW4gbWFwCgogICAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyB3ZSBsaW1pdGVkIHRoZSBzdGFjayB0byAyNTZNIGJlY2F1c2Ugc29tZSBib2FyZHMKICAgIGNvdWxkIG9ubHkgbWFwIHRoYXQgbXVjaCB2aWEgQkFUUy4JSG93ZXZlciBuZXdlciBib2FyZHMgYXJlIGNhcGFibGUgb2YKICAgIG1hcHBpbmcgbW9yZSBtZW1vcnkgKGZvciBleGFtcGxlIDg1eHggaXMgY2FwYmxlIG9mIGRvaW5nIHVwIHRvIDJHKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGE2ZjVmMzE3Y2QwNzRiYmJmYTJhYWI0ZmNhMDU5MDRjODExYzE5ZmIKQXV0aG9yOiBCcnlhbiBPJ0Rvbm9naHVlIDxib2Rvbm9naHVlQGNvZGVoZXJtaXQuaWU+CkRhdGU6CUZyaSBGZWIgMTUgMDE6MDU6NTggMjAwOCArMDAwMAoKICAgIDh4eCA6IEFkZCBPRiBzdXBwb3J0IHRvIEFkZGVyODc1IGJvYXJkIHBvcnQgLSByZXN1Ym1pdAoKICAgIFNpZ25lZC1vZmYtYnk6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KCmNvbW1pdCBkMDU4Njk4ZmQyZDlmNzY5ZmYzOGFjNTNjODcwOGIzZmRkMzE0ZjJkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEZlYiAxNCAyMDo0NDo0MiAyMDA4IC0wNjAwCgogICAgQWRkIHNldGV4cHIgY29tbWFuZAoKICAgIEFkZCBhIHNpbXBsZSBleHByIHN0eWxlIGNvbW1hbmQgdGhhdCB3aWxsIHNldCBhbiBlbnYgdmFyaWFibGUgYXMgdGhlIHJlc3VsdAogICAgb2YgdGhlIGNvbW1hbmQuICBUaGlzIGFsbG93cyB1cyB0byBkbyBzaW1wbGUgbWF0aCBpbiBzaGVsbC4gIFRoZSBmb2xsb3dpbmcKICAgIG9wZXJhdGlvbnMgYXJlIHN1cHBvcnRlZDogJiwgfCwgXiwgKywgLSwgKiwgLy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNmMTA1ZmFhNjRiOTgyNmUwODg3MTFmZGZjYWE3MGNiMTIzMDM5N2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6Mjc6NDggMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM3NDQ4aHBjMiB1bmRlciBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0OWM3MDMzNzRhODg2ODQ1MzQyNWUxNWRhN2UyZjc2MjIxYjcyZTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MjE6NDMgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM4MjY2YWRzIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTg2MzU3Nzk4OWFkNjg5NDI3YmI3NTAxMDdlOWE3NWYxYzE2NDVkMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNjo0MTo0MSAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjBhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YTc3Mzk4Mzk1N2VlNmM0YWEzNDQ0NjliNzQyZjI5YzdkMjZhZmJkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowOCAyMDA4ICswOTAwCgogICAgW01JUFNdIE1vdmUgZ3RoMl9jb25maWcgZnJvbSBBUk0gc2VjdGlvbiB0byBNSVBTCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAzNzNiMTZmYzBjNWFlMzRkMjhiOTAyN2Y4MDlhZTNjYmY0NWNkZDE1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEV4dGVuZCBNSVBTX01BWF9DQUNIRV9TSVpFIHVwdG8gNjRrQgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZDk4ZTM0OGUyZWQ1YWFiOGY3YTY0NzFmZjYyOGFiMDY4OGI4YTQ1OQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBGaXggZGNhY2hlX3N0YXR1cygpCgogICAgWW91IGNhbid0IGp1ZGdlIFVOQ0FDSEVEIGJ5IENvbmZpZy5LMCBMU0IuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBiMGM2NmFmNTNlYzkzODVhYzJkMWNjMmU1ZDdkMWVjZGM4MWNhZjM0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEludHJvZHVjZSBfbWFjaGluZV9yZXN0YXJ0CgogICAgSGFuZGxlcyBtYWNoaW5lIHNwZWNpZmljIGZ1bmN0aW9ucyBieSB1c2luZyB3ZWFrIGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGRlY2FiYTZmNWNmMzg2ZDU2OWFjMzk5N2JlYmI4NzFiOTY2YzZiMTgKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gQ2xlYW51cCBDUDAgU3RhdHVzIGluaXRpYWxpemF0aW9uCgogICAgQWRkIHNldHVwX2MwX3N0YXR1cyBmcm9tIExpbnV4LiBGb3IgdGhlIG1vbWVudCB3ZSBkaXNhYmxlIGludGVycnVwdHMsIHNldAogICAgQ1UwLCBtYXJrIHRoZSBrZXJuZWwgbW9kZSwgYW5kIGNsZWFyIEVSTCBhbmQgRVhMLiBUaGlzIGlzIGdvb2QgZW5vdWdoIGZvcgogICAgcmVzZXQtdGltZSBjb25maWd1cmF0aW9uIGFuZCB3aWxsIHdvcmsgd2VsbCBhY3Jvc3MgbW9zdCBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZDQzZDQzZWYyODQ1YWYzMDljMjVhNjRiYjljMmM1ZmIzMjYxYmMyMwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBJbml0aWFsaXplIENQMCBDYXVzZSBiZWZvcmUgc2V0dGluZyB1cCBDUDAgU3RhdHVzIHJlZ2lzdGVyCgogICAgV2l0aG91dCB0aGlzIGNoYW5nZSwgd2UnbGwgYmUgc3VmZmVyaW5nIGZyb20gZGVmZmVyZWQgV0FUQ0ggZXhjZXB0aW9uCiAgICBvbmNlIFN0YXR1cy5FWEwgaXMgY2xlYXJlZC4gTWFrZSBzdXJlIENhdXNlLldQIGlzIGNsZWFyZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAyNjEzODYyMzIzMGNhMmJhZDNjNzhlMDVhNjU1MjdlYTcwYzhiNjg4CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIElOQ0EtSVA6IE1vdmUgd2F0Y2hkb2cgaW5pdCBjb2RlIGZyb20gc3RhcnQuUyB0byBsb3dsZXZlbF9pbml0KCkKCiAgICBNb3ZlIHRoaW5ncyB0byBhcHByb3ByaWF0ZSBwbGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGNjZjhmODI0ZWY2N2RmMDI4ZGVkYjI5ZjhlYTVkNzFhNWE4OGQ4OTUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA2IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSW1wbGVtZW50IGZsdXNoX2NhY2hlKCkKCiAgICBXZSBkbyBIaXRfV3JpdGViYWNrX0ludl9EIGFuZCBIaXRfSW52YWxpZGF0ZV9JLiBZb3UgbWlnaHQgdGhpbmsgdGhhdCB5b3UKICAgIGRvbid0IG5lZWQgdG8gZG8gSGl0X0ludmFsaWRhdGVfSSwgYnV0IGZsdXNoX2NhY2hlKCkgbmVlZHMgaXQgc2luY2UgdGhpcwogICAgZnVuY3Rpb24gaXMgdXNlZCBub3Qgb25seSBpbiBVLUJvb3Qgc3BlY2ZpYyBwcm9ncmFtcyBidXQgYWxzbyBhdCBsb2FkaW5nCiAgICB0YXJnZXQgYmluYXJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAyZTBlNTI3MWFhYzkxNzgxMmE3NmM3MjAzMGEyYjJjNmYxZDMzODdkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNiAyMDA4ICswOTAwCgogICAgW01JUFNdIEZpeCBJLS9ELWNhY2hlIGluaXRpYWxpemF0aW9uIGxvb3BzCgogICAgQ3VycmVudGx5IHdlIGRvIDEpIEluZGV4X1N0b3JlX1RhZ19JLCAyKSBGaWxsIGFuZCAzKSBJbmRleF9TdG9yZV9UYWdfSQogICAgYWdhaW4gcGVyIGEgbG9vcCBmb3IgSS1jYWNoZSBpbml0aWFsaXphdGlvbi4gQnV0IGFjY29yZGluZyB0byAnU2VlIE1JUFMKICAgIFJ1bicsIHdlJ3JlIGVuY291cmFnZWQgdG8gdXNlIHRocmVlIHNlcGFyYXRlIGxvb3BzIHJhdGhlciB0aGFuIGNvbWJpbmluZwogICAgdGhlbSAqZm9yIGJvdGggSS0gYW5kIEQtY2FjaGUqLiBUaGlzIHBhdGNoIHRyaWVzIHRvIGZpeCB0aGlzLgoKICAgIEluIGFjY29yZGFuY2Ugd2l0aCBmaXhpbmcgYWJvdmUsIG1pcHNfaW5pdF9baWRdY2FjaGUgYXJlIHNlcGFyYXRlZCBmcm9tCiAgICBtaXBzX2NhY2hlX3Jlc2V0KCksIGFuZCByZXdyaXRlIGNhY2hlIGxvb3BzIGFyZSBjb21wbGV0ZWx5IHJld3JpdHRlbiB3aXRoCiAgICB1c2VmdWwgbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMTg5ODg0MDc5N2M3ZjUwNzk5Mzc3YmQ1YjI4NWE4YTkzYTgyYzQxOQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBSZXBsYWNlIG1lbW9yeSBjbGVhcmFuY2UgY29kZSB3aXRoIGZfZmlsbDY0CgogICAgVGhpcyByb3V0aW5lIGZpbGxzIG1lbW9yeSB3aXRoIHplcm8gYnkgNjQgYnl0ZXMsIGFuZCBpcyA2NC1iaXQgY2FwYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJmNWQ0MTRjY2I0MDI0ZGQwOTkyZmY2YjIyNTYxNzMyZGJjNzM1OTAKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA2IDIwMDggKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY2FjaGUuUzogSW50cm9kdWNlIE5FU1RFRC9MRUFGL0VORCBtYWNyb3MKCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGRlZmluaXRpb25zIHdpdGggTkVTVEVELCBMRUFGCiAgICBhbmQgRU5EIG1hY3JvLiBUaGV5IHNwZWNpZnkgc29tZSBtb3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlCiAgICBmdW5jdGlvbjsgYW4gYWxpZ25tZW50IG9mIHN5bWJvbCwgdHlwZSBvZiBzeW1ib2wsIHN0YWNrIGZyYW1lIHVzYWdlLCBldGMuCiAgICBUaGVzZSBpbmZvcm1hdGlvbiBleHBsaWNpdGx5IHRlbGxzIHRoZSBhc3NlbWJsZXIgYW5kIHRoZSBkZWJ1Z2dlciBhYm91dAogICAgdGhlIHR5cGVzIG9mIGNvZGUgd2Ugd2FudCB0byBnZW5lcmF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDI4MjIyM2E2MDdjNjExNDI1ZmEzM2Y1NDI4ZjhlYWU2NjM2OTcyYmIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDExOjQzOjE3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gYXNtIGhlYWRlcnMnIHVwZGF0ZXMKCiAgICBNYWtlIHNvbWUgYXNtIGhlYWRlcnMgYWRqdXN0ZWQgdG8gdGhlIGxhdGVzdCBMaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBlMTM5MDgwMWEzYzFhMmI2ZDEyZmE5MGJlMzY4ZWZjMTlmNWI5YmZkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAxMTozOToyOSAyMDA4ICswOTAwCgogICAgW01JUFNdIFJlcXVlc3QgZm9yIHRoZSAnbWlwc19jYWNoZV9sb2NrKCknIHJlbW92YWwKCiAgICBUaGUgaW5pdGlhbCBpbnRlbnNpb24gb2YgaGF2aW5nIG1pcHNfY2FjaGVfbG9jaygpIHdhcyB0byB1c2UgdGhlIGNhY2hlCiAgICBhcyBtZW1vcnkgZm9yIHRlbXBvcmFyeSBzdGFjayB1c2Ugc28gdGhhdCBhIEMgZW52aXJvbm1lbnQgY2FuIGJlIHNldCB1cAogICAgYXMgZWFybHkgYXMgcG9zc2libGUuCgogICAgQnV0IG5vdyBtaXBzX2NhY2hlX2xvY2soKSBmb2xsb3cgbG93bGV2ZWxfaW5pdCgpLiBXZSd2ZSBhbHJlYWR5IGhhdmUgdGhlCiAgICByZWFsIG1lbW9yeSBpbml0aWxhaXplZCBhdCB0aGlzIHBvaW50LCB0aGVyZWZvcmUgd2UgY291bGQvc2hvdWxkIHVzZSBpdC4KICAgIE5vIHJlYXNvbiB0byBsb2NrIGF0IGFsbC4KCiAgICBPdGhlciBwcm9ibGVtczoKCiAgICBDYWNoZSBsb2NraW5nIGlzIG5vdCBjb25zaXN0ZW50IGFjcm9zcyBNSVBTIGltcGxlbWVudGFpb25zLiBTb21lIGltcGxlLQogICAgbWVudGF0aW9ucyBkb24ndCBzdXBwb3J0IGxvY2tpbmcgYXQgYWxsLiBUaGUgc3R5bGUgb2YgbG9ja2luZyB2YXJpZXMgLQogICAgc29tZSBzdXBwb3J0IHBlciBsaW5lIGxvY2tpbmcsIG90aGVycyBwZXIgd2F5LCBldGMuIFNvbWUgcGFydHMgdXNlIGJpdHMKICAgIGluIHN0YXR1cyByZWdpc3RlcnMgaW5zdGVhZCBvZiBjYWNoZSBvcHMuIEN1cnJlbnQgbWlwc19jYWNoZV9sb2NrKCkgaXMKICAgIG5vdCBuZWNlc3NhcmlseSBnZW5lcmFsLXB1cnBvc2UuCgogICAgQW5kIHRoaXMgaXMgd29ydGh5IG9mIHNwZWNpYWwgbWVudGlvbjsgb25jZSBVLUJvb3QvTUlQUyBsb2NrcyB0aGUgbGluZXMsCiAgICB0aGV5IGFyZSBuZXZlciBnZXQgdW5sb2NrZWQsIHNvIHRoZSBjb2RlIHJlbGllcyBvbiB3aGF0ZXZlciBnZXRzIGxvYWRlZAogICAgYWZ0ZXIgVS1Cb290IHRvIHJlLWluaXRpYWxpemUgdGhlIGNhY2hlIGFuZCBjbGVhciB0aGUgbG9ja3MuIFdlJ3JlIHN1cC0KICAgIHBvc2VkIHRvIGhhdmUgQ0ZHX0lOSVRfUkFNX0xPQ0sgYW5kIHVubG9ja19yYW1faW5fY2FjaGUoKSBpbXBsZW1lbnRlZCwKICAgIGJ1dCBsZWF2ZSB0aGUgc2l0dWF0aW9uIGFzIGl0IGlzIGZvciBhIGxvbmcgdGltZS4KCiAgICBGb3IgdGhlc2UgcmVhc29ucywgSSBwcm9wb3NlZCB0aGUgcmVtb3ZhbCBvZiBtaXBzX2NhY2hlX2xvY2soKSBmcm9tIHRoZQogICAgZ2xvYmFsIHN0YXJ0LXVwIGNvZGUuCgogICAgVGhpcyBwYXRjaCBhZGRzIENGR19JTklUX1JBTV9MT0NLX01JUFMgdG8gbWFrZSBleGlzdGluZyB1c2VycyBhd2FyZSB0aGF0CiAgICAqdGhpbmdzIGhhdmUgY2hhbmdlZCouIElmIGhlIHdhbnRzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIGJlZm9yZSwgaGUgbmVlZHMKICAgIHRvIGhhdmUgQ0ZHX0lOSVRfUkFNX0xPQ0tfTUlQUyBpbiBoaXMgY29uZmlnIGZpbGUuCgogICAgSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgcmVncmVzc2lvbiByZXBvcnQgdGhyb3VnaCBzZXZlcmFsIHJlbGVhc2VzLCB0aGVuCiAgICB3ZSdsbCByZW1vdmUgY29kZXMgZW50aXJlbHkuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIEFja2VkLWJ5OiBBbmRyZXcgRHllciA8YW1keWVyQGdtYWlsLmNvbT4KCmNvbW1pdCAwZDQ4OTI2Yzg3ZWM5NmY5NzRhNmFjNDAzNGY0YTJmMmVhYjMyNTVmCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglNb24gTWFyIDI0IDExOjMwOjU0IDIwMDggKzAxMDAKCiAgICBsd21vbjUgU1lTTU9OIFBPU1Q6IGZpeCBiYWNrbGlnaHQgY29udHJvbAoKICAgIElmIHRoZSBMV01PTjUgY29uZmlnIGhhcyBTWVNNT04gUE9TVCBhbW9uZyBDT05GSUdfUE9TVHMgd2hpY2ggbWF5IGJlCiAgICBydW4gb24gdGhlIGJvYXJkLCB0aGVuIHRoZSBTWVNNT04gUE9TVCBjb250cm9scyB0aGUgZGlzcGxheSBiYWNrbGlnaHQKICAgIChkb2Vzbid0IHN3aXRjaCBiYWNrbGlnaHQgT04gaWYgUE9TVCBGQUlMRUQsIGFuZCBkb2VzIHN3aXRjaCB0aGUKICAgIGJhY2tsaWdodCBPTiBpZiBQQVNTRUQpLgoKICAgIElmIG5vdCwgdGhlbiB0aGUgdmlkZW8gZHJpdmVyIGNvbnRyb2xzIHRoZSBkaXNwbGF5IGJhY2tsaWdodCAoanVzdAogICAgc3dpdGNoIE9OIHRoZSBiYWNrbGlnaHQgdXBvbiBpbml0aWFsaXphdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IGZmMmJkZmIyYzFlMDczZjY1YzA2NTAxMWYxZTE4ZDBhMTMwYmQzZDgKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTE6Mjk6MTQgMjAwOCArMDEwMAoKICAgIGx3bW9uNSBTWVNNT04gUE9TVDogZml4IGhhbmRsaW5nIG9mIG5lZ2F0aXZlIHRlbXBlcmF0dXJlcwoKICAgIEZpeCBlcnJvcnMgaW4gdGhlIExXTU9ONSBTeXNtb24gUE9TVCBmb3IgbmVnYXRpdmUgdGVtcGVyYXR1cmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA1NTc3NGI1MTJmZGY2M2MwNTE2ZDQ0MWNjNWRhN2M1NGJiZmZiN2YyCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgTWFyIDcgMTY6MDQ6MjUgMjAwOCArMDkwMAoKICAgIHBjaTogQWRkIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBjb25maWcgb3B0aW9uCgogICAgSW4gY3VycmVudCBzb3VyY2UgY29kZSwgd2hlbiB0aGUgZGV2aWNlIG51bWJlciBvZiBQQ0kgaXMgMCwgcHJvY2VzcyBQQ0kKICAgIGJyaWRnZSB3aXRob3V0IGZhaWwuIEhvd2V2ZXIsIHdoZW4gdGhlIGRldmljZSBudW1iZXIgaXMgMCwgaXQgaXMgbm90IFBDSQogICAgYWx3YXlzIGJyaWRnZS4gVGhlcmUgYXJlIHRpbWVzIHdoZW4gZGV2aWNlIG9mIFBDSSBhbGxvY2F0ZXMuCgogICAgV2hlbiBDT05GSUdfUENJX1NLSVBfSE9TVF9CUklER0UgaXMgZW5hYmxlLCB0aGlzIHByb2JsZW0gaXMgc29sdmVkIHdoZW4KICAgIHVzZSB0aGlzIHBhdGNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODZhZWEzZWFlZmEyNDhmZmI5MzI4ZTJiNTBjNjQ3MjA0ODljZGJlYgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIE1hciAyMSAwOToxODo0MCAyMDA4ICswMTAwCgogICAgTFdNT041OiBmaXggZHNQSUMgUE9TVAoKICAgIEFkZCB0ZXN0IGZvciBEUElDX1NZU19FUlJPUl9SRUcgdG8gYmUgemVybyBpbiB0aGUgTFdNT041IGRzUElDIFBPU1QuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPiAtLS0KCmNvbW1pdCAzODhiODJmZGRjN2MwNTU5NmYzZjYxNWYxOTBkYTA0NDgyMjdkYzgyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoyMzoxMyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEVuYWJsZSBuZXcgdUltYWdlIHN1cHBvcnQgZm9yIHRoZSBwY3M0NDBlcCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDk1ZjRlYzJiOWM5MTBjNzI2MWU2ZjA2MGVhNTMwZDU4YjAzOTY5MmQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDIzOjIzOjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRG8gbm90IGNvbXBpbGUgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBieSBkZWZhdWx0CgogICAgRGlzYWJsZSBkZWZhdWx0IGJ1aWxkaW5nIG9mIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgaW4gcHJlcGFyYXRpb24KICAgIGZvciBtZXJnZSB3aXRoIHRoZSBtYXN0ZXIuIFN1cHBvcnQgZm9yIG5ldyBmb3JtYXQgY2FuIGJlIGVuYWJsZWQgb24KICAgIGEgcGVyLWJvYXJkIGJhc2lzLCBieSBkZWZpbmluZyB0aGUgZm9sbG93aW5nIGluIHRoZSBib2FyZCdzIGNvbmZpZyBmaWxlOgoKICAgICNkZWZpbmUgQ09ORklHX0ZJVAkJICAgMQogICAgI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCSAgIDEKCiAgICBUaGlzIGNhbiBiZSBvcHRpb25hbGx5IGRlZmluZWQgdG8gZ2l2ZSBtb3JlIHZlcmJvc2Ugb3V0cHV0OgoKICAgICNkZWZpbmUgQ09ORklHX0ZJVF9WRVJCT1NFCSAgIDEgLyogZW5hYmxlIGZpdF9mb3JtYXRfe2Vycm9yLHdhcm5pbmd9KCkgKi8KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGRhZmFlZGU4YTQ2YzcxNTkzMTAyMzllMDM2YzkzZTMxYzYzNzQ0ODcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDIzOjIwOjMxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRGlzYWJsZSBkZWJ1Z2luZyBvdXRwdXQgaW4gcHJlcGFyYXRpb24gZm9yIG1lcmdlIHdpdGggbWFzdGVyCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmYmU3YTE1NTAyN2JlYWNlYmFlZTliMzJlMWFkYTc4MWZlOTI0YmNhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAxOTozODo0NSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENvbXBpbGF0aW9uIGFuZCBuZXcgdUltYWdlIGhhbmRsaW5nIGZpeGVzIGZvciBpbXh0cmFjdAoKICAgIEZpeCBpbXh0cmFjdCBjb21tYW5kIG5vdCBiZWluZyBjb21waWxlZC1pbiBkZXNwaXRlIENPTkZJR19DTURfWElNRyBiZWluZyBpbgogICAgaW5jbHVkZS9jb25maWdfY21kX2RlZmF1bHQuaC4gRml4IGZldyB3YXJuaW5ncyBhbmQgaGFuZGxpbmcgb2YgbmV3IGZvcm1hdAogICAgaW1hZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMzZjYzhjYmIzMzc5ZDUxNjZmODgyNjQxMTIzNTIxNzM1YzQ2OWY5MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MTA6MTkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggYXV0b3NjciBjb21tYW5kIHVzZWQgd2l0aCBuZXcgdUltYWdlIGZvcm1hdAoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNDMxNDJlODE3ZjA1OTdiZTQxMmU3Y2JlMTk0MTNmNTUzMmVhZmE1ZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MTA6MTkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggKi5pdHMgZmlsZXMgbG9jYXRpb24gaW4gZG9jdW1lbnRhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgODFhMGFjNjJlYTI5ZjgyNTJkMGE3MTQ3MDlkMGVjZmRiYmEyYTE1ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjAgMjI6MDE6MzggMjAwOCArMDEwMAoKICAgIGx3bW9uNSBQT1NUOiByZW1vdmUgdW5yZWFjaGFibGUgY29kZQoKICAgIHBsdXMgc29tZSBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjczYTE5ZTE2MDlkMGY3MDVjYmFiODAxNGNhMTdhZWZlODllNGM3NgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1hciAyMCAxNzo1NjowNCAyMDA4ICswMzAwCgogICAgTFdNT041OiBQT1NUIFJUQyBmaXgKCiAgICBNb2RpZnkgdGhlIFJUQyBBUEkgdG8gcHJvdmlkZSBvbmUgYSBzdGF0dXMgZm9yIHRoZSB0aW1lIHJlcG9ydGVkIGJ5CiAgICB0aGUgcnRjX2dldCgpIGZ1bmN0aW9uOgogICAgICAwIC0gYSByZWxpYWJsZSB0aW1lIGlzIGd1YXJhbnRlZWQsCiAgICA8IDAgLSBhIHJlbGlhYmxlIHRpbWUgaXNuJ3QgZ3VhcmFudGVlZCAocG93ZXIgZmF1bHQsIGNsb2NrIGlzc3VlcywKCSAgYW5kIHNvIG9uKS4KCiAgICBUaGUgUlRDIGNoaXAgZHJpdmVycyBhcmUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyB0aGlzIGluZm8gaWYgdGhlCiAgICBjb3JyZXNwb25kaW5nIGNoaXAgc3VwcG9ydHMgc3VjaCBmdW5jdGlvbmFsaXR5LiBJZiBub3QgLSBhbHdheXMKICAgIHJlcG9ydCB0aGF0IHRoZSB0aW1lIGlzIHJlbGlhYmxlLgoKICAgIFRoZSBQT1NUIFJUQyB0ZXN0IHdhcyBtb2RpZmllZCB0byBkZXRlY3QgdGhlIFJUQyBmYXVsdHMgdXRpbGl6aW5nCiAgICB0aGlzIG5ldyBydGNfZ2V0KCkgZmVhdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYTVjYzU1NTVjY2VlNTk2OTA4YTdkOGNmMjJhMTA0ZjZiOTkzYmZkNQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgTWFyIDE5IDE0OjI1OjE0IDIwMDggKzAxMDAKCiAgICBUUU01MjAwQjogdXBkYXRlIE1URCBwYXJ0aXRpb24gbGF5b3V0CgogICAgLSBpbnNlcnQgcGFydGl0aW9uIGZvciBkdGIgYmxvYiB0byBUUU01MjAwQiBNVEQgbGF5b3V0CiAgICAtIHNldCBlbnYgdmFyaWFibGVzIGRlcGVuZGVudCBvbiB0aGUgY29uZmlndXJlZCBib2FyZAogICAgICAoVFFNNTIwMCBvciBUUU01MjAwQikKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBmMDEwNTcyN2QxMzJmNTZhMjFmYTNlZDhiMTYyMzA5Y2NhNmNhYzQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDE5IDA3OjA5OjI2IDIwMDggKzAxMDAKCiAgICBDRkk6IFNtYWxsIGNsZWFudXAgZm9yIEZMQVNIX1NIT1dfUFJPR1JFU1MKCiAgICBXaXRoIHRoaXMgcGF0Y2ggd2UgZG9uJ3QgbmVlZCB0aGF0IG1hbnkgI2lmZGVmJ3MgaW4gdGhlIGNvZGUuIEl0IG1vdmVzCiAgICB0aGUgc3VidHJhY3Rpb24gaW50byB0aGUgbWFjcm8gYW5kIGRlZmluZXMgYSBOT1AtbWFjcm8gd2hlbgogICAgQ09ORklHX0ZMQVNIX1NIT1dfUFJPR1JFU1MgaXMgbm90IGRlZmluZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOWEwNDJlOWNhNTEyYmVhYWEyY2I0NTAyNzQzMTNmYzQ3NzE0MTI0MQpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJU2F0IE1hciA4IDEzOjQ4OjAxIDIwMDggLTA1MDAKCiAgICBGbGFzaCBwcm9ncmFtbWluZyBwcm9ncmVzcyBjb3VudGRvd24uCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA1ZTMzOWZkOWVkNTM5YTdkN2ZlYzU5Y2ZjODhmMDg1N2FiMjZhNTNmCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxOSAxMDowMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBzdHlsZSBpc3N1ZSBzcG90dGVkIGJ5IFdvbGZnYW5nIERlbmsgPHdkQGRlbngub3JnPgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMTFhYmU0NWM0OGVjMzQ4NWE2YzFhNTE2OGNlOGQ3OWMzMjg4YWRjMQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglNb24gRmViIDE4IDE4OjA5OjA0IDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IFJlbW92ZSBubyBsb25nZXIgdXNlZCBjb2RlIGZyb20gZmR0X25vZGVfb2Zmc2V0X2J5X2NvbXBhdGlibGUoKQoKICAgIFNpbmNlIGZkdF9ub2RlX29mZnNldF9ieV9jb21wYXRpYmxlKCkgd2FzIGNvbnZlcnRlZCB0byB0aGUgbmV3CiAgICBmZHRfbmV4dF9ub2RlKCkgaXRlcmF0b3IsIGEgY2h1bmsgb2YgaW5pdGlhbGl6YXRpb24gY29kZSBiZWNhbWUKICAgIHJlZHVuZGFudCwgYnV0IHdhcyBub3QgcmVtb3ZlZCBieSBvdmVyc2lnaHQuICBUaGlzIHBhdGNoIGNsZWFucyBpdCB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCBkMGNjYjliMTQwYjQ3MjAzOTczMmRlMTAyZmMxNDU5N2VlZGIxNGRmCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBGZWIgMTggMTg6MDY6MzEgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogVHJpdmlhbCBjbGVhbnVwIGZvciBDSEVDS19IRUFERVIpCgogICAgQ3VycmVudGx5IHRoZSBDSEVDS19IRUFERVIoKSBtYWNybyBpcyBkZWZpbmVkIGxvY2FsIHRvIGZkdF9yby5jLgogICAgSG93ZXZlciwgdGhlcmUgYXJlIGEgaGFuZGZ1bCBvZiBmdW5jdGlvbnMgKGZkdF9tb3ZlLCByd19jaGVja19oZWFkZXIsCiAgICBmZHRfb3Blbl9pbnRvKSBmcm9tIG90aGVyIGZpbGVzIHdoaWNoIGNvdWxkIGFsc28gdXNlIGl0IChjdXJyZW50bHkKICAgIHRoZXkgb3Blbi1jb2RlIHNvbWV0aGluZyBtb3JlLW9yLWxlc3MgaWRlbnRpY2FsKS4gIFRoZXJlZm9yZSwgdGhpcwogICAgcGF0Y2ggbW92ZXMgQ0hFQ0tfSEVBREVSKCkgdG8gbGliZmR0X2ludGVybmFsLmggYW5kIHVzZXMgaXQgaW4gdGhvc2UKICAgIHBsYWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCBmZTMwYTM1NGNkYmI4MDhiNWYxNTM2NmE5MzViMTUxYTRjY2VlNzRmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyMCAxNDozMjozNiAyMDA4IC0wNjAwCgogICAgRml4IGZkdCBib2FyZHNldHVwIGNvbW1hbmQgcGFyc2luZwoKICAgIFRoZSBpbnRyb2R1Y2l0b24gb2YgdGhlICdmZHQgYm9vdGNwdScgYnJva2UgcGFyc2luZyBmb3IgJ2ZkdCBib2FyZHNldHVwJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgwNDg4N2U2MDAxZTJmMDBiZWExMTQzMWJmMzRkNmQ0NzI1MTJjZGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDE1IDAzOjM0OjM2IDIwMDggLTA2MDAKCiAgICBBZGQgc3ViLWNvbW1hbmRzIHRvIGZkdAoKICAgIGZkdCBoZWFkZXIJCQkJLSBEaXNwbGF5IGhlYWRlciBpbmZvCiAgICBmZHQgYm9vdGNwdSA8aWQ+CQkJLSBTZXQgYm9vdCBjcHVpZAogICAgZmR0IG1lbW9yeSA8YWRkcj4gPHNpemU+CQktIEFkZC9VcGRhdGUgbWVtb3J5IG5vZGUKICAgIGZkdCByc3ZtZW0gcHJpbnQJCQktIFNob3cgY3VycmVudCBtZW0gcmVzZXJ2ZXMKICAgIGZkdCByc3ZtZW0gYWRkIDxhZGRyPiA8c2l6ZT4JLSBBZGQgYSBtZW0gcmVzZXJ2ZQogICAgZmR0IHJzdm1lbSBkZWxldGUgPGluZGV4PgkJLSBEZWxldGUgYSBtZW0gcmVzZXJ2ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY4NGQ2NWY5YjA4NWZmYmVkNDY0ZDFkNThlOGFhYThmNWEyZWZjMDcKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJVGh1IEZlYiAxNCAxNjo1MDozNCAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBGaXggTk9QIGhhbmRsaW5nIGJ1ZyBpbiBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpCgogICAgZmR0X2FkZF9zdWJub2RlX25hbWVsZW4oKSBoYXMgYSBidWcgaWYgYXNrZWQgdG8gYWRkIGEgc3Vibm9kZSB0byBhCiAgICBub2RlIHdoaWNoIGhhcyBOT1AgdGFncyBpbnRlcnNwZXJzZWQgd2l0aCBpdHMgcHJvcGVydGllcy4gIEluIHRoaXMKICAgIGNhc2UgZmR0X2FkZF9zdWJub2RlX25hbWVsZW4oKSB3aWxsIHB1dCB0aGUgbmV3IHN1Ym5vZGUgYmVmb3JlIHRoZQogICAgZmlyc3QgTk9QIHRhZywgZXZlbiBpZiB0aGVyZSBhcmUgcHJvcGVydGllcyBhZnRlciBpdCwgd2hpY2ggd2lsbAogICAgcmVzdWx0IGluIGFuIGludmFsaWQgYmxvYi4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBidWcsIGFuZCBhZGRzIGEgdGVzdGNhc2UgZm9yIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGFlMGI1OTA4ZGUzYjk4NTVmODkzMWJjOWIzMmM5ZmM0OTYyZGY1YTkKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJVHVlIEZlYiAxMiAxMTo1ODozMSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBBZGQgYW5kIHVzZSBhIG5vZGUgaXRlcmF0aW9uIGhlbHBlciBmdW5jdGlvbi4KCiAgICBUaGlzIHBhdGNoIGFkZHMgYW4gZmR0X25leHRfbm9kZSgpIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIHRvCiAgICBpdGVyYXRlIHRocm91Z2ggbm9kZXMgb2YgdGhlIHRyZWUgd2hpbGUga2VlcGluZyB0cmFjayBvZiBkZXB0aC4gIFRoaXMKICAgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc2ltcGxpZnkgdGhlIGl0ZXJhdGlvbiBjb2RlIGluIGEgbG90IG9mIG90aGVyCiAgICBmdW5jdGlvbnMsIGFuZCBpcyBhbHNvIGV4cG9ydGVkIGZvciB1c2UgYnkgbGlicmFyeSB1c2Vycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCA5ZWFlYjA3YTcxODVkODUyYzdhYTEwNzM1ZWNkNGU5ZWRmMjRmYjVkCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CUZyaSBKYW4gMTEgMTQ6NTU6MDUgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogQWRkIGZkdF9zZXRfbmFtZSgpIGZ1bmN0aW9uCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGZkdF9zZXRfbmFtZSgpIGZ1bmN0aW9uIHRvIGxpYmZkdCwgbWlycm9yaW5nCiAgICBmZHRfZ2V0X25hbWUoKS4gIFRoaXMgaXMgYSByL3cgZnVuY3Rpb24gd2hpY2ggYWx0ZXJzIHRoZSBuYW1lIG9mIGEKICAgIGdpdmVuIGRldmljZSB0cmVlIG5vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgMjNlMjBhYTY0ODhlNmMwNjIyNDk2NTQ5ODYxYmZkYzc0MTA4ZGViZQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxOCAxMzozMzozMCAyMDA4ICswMTAwCgogICAgbHdtb241OiBGaXggcmVnaXN0ZXIgdGVzdCBsb2dpYyB0byBtYXRjaCB0aGUgc3BlY2lmaWMgR0RDIGgvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA0NmJjMGE5Mzg3NzlhYTFkNjY0Yjg0N2QzNmIwOGFhMDBmMjJlNTM5CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDEzOjI3OjU3IDIwMDggKzAxMDAKCiAgICBGaXggYmFja2xpZ2h0IGluIHRoZSBsd21vbjUgUE9TVC4KCiAgICBCYWNrbGlnaHQgd2FzIHN3aXRjaGVkIG9uIGV2ZW4gd2hlbiB0ZW1wZXJhdHVyZSB3YXMgdG9vIGxvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAzZDYxMDE4NjQzYTJjZDM4YzE0NWFhNmRkZTUzZjNmNWYxYTBlOWNmCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRmViIDYgMTg6NDg6MzYgMjAwOCArMDEwMAoKICAgIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBhbHRlcm5hdGl2ZSBjb25maWd1cmF0aW9uIG9mIHRoZSBsb2cgYnVmZmVyIGZvciB0aGUgbHdtb241IGJvYXJkOiB0aGUgc3RvcmFnZSBmb3IgdGhlIGxvZy1idWZmZXIgaXRzZWxmIGlzIE9DTShvbi1jaGlwIG1lbW9yeSksIHRoZSBsb2ctYnVmZmVyIGhlYWRlciBpcyBtb3ZlZCB0byBzaXggR1BUIHJlZ2lzdGVycyAoUFBDNDQwRVBYX0dQVDBfQ09NUDEsIC4uLiwgUFBDNDQwRVBYX0dQVDBfQ09NUDUpLgoKICAgICBUbyBlbmFibGUgdGhpcywgYWx0ZXJuYXRpdmUsIGNvbmZpZ3VyYXRpb24gdGhlIFUtQm9vdCBib2FyZCBjb25maWd1cmF0aW9uCiAgICBmaWxlIGZvciBsd21vbjUgaW5jbHVkZXMgdGhlIGRlZmluaXRpb25zIG9mIGFsdGVybmF0aXZlIGFkZHJlc3NlcyBmb3IgaGVhZGVyCiAgICAoQ09ORklHX0FMVF9MSF9BRERSKSBhbmQgYnVmZmVyIChDT05GSUdfQUxUX0xCX0FERFIpLgoKICAgICBUaGUgTGludXggc2hhbGwgYmUgY29uZmlndXJlZCB3aXRoIHRoZSBDT05GSUdfQUxUX0xCX0xPQ0FUSU9OIG9wdGlvbiBzZXQsCiAgICBhbmQgaGFzIHRoZSBCT0FSRF9BTFRfTEhfQUREUiBhbmQgQk9BUkRfQUxUX0xCX0FERFIgY29uc3RhbnRzIGRlZmluZWQgaW4gdGhlCiAgICBsd21vbjUgYm9hcmQtc3BlY2lmaWMgaGVhZGVyIChhcmNoL3BwYy9wbGF0Zm9ybXMvNHh4L2x3bW9uNS5oKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgMGYwMDlmNzgxYjViODhmMjU3NjllMTU0ZWE0ZDQyZGIxM2JhZjBjNgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE3OjExOjUzIDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIGx3bW9uNSBib2FyZCByZXNldCB2aWEgR1BJTzU4LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IGY2OTRlMzJmOTM1NjVlYzFmYThkMDIyNmM1ODRkNmI4OWU5MzFlZDkKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgNCAxNzowOTo1NSAyMDA4ICswMTAwCgogICAgU29tZSBmaXhlcyB0byBkc3BpYywgZnBnYSwgYW5kIGdkYyBwb3N0IHRlc3RzIGZvciBsd21vbjUuIERpc2FibGUgZXh0ZXJuYWwgd2F0Y2gtZG9nIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYjQyOGY2YThjNjVjNTMwM2U1Zjk2ZGI4ZDI0ZjJmNjk5ZDk0YTk4YwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjExOjAzIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggaW50cm9kdWNlcyB0aGUgQ1JJVElDQUwgZmVhdHVyZSBvZiBQT1NUIHRlc3RzLiBJZiB0aGUgdGVzdCBtYXJrZWQgYXMgUE9TVF9DUklUSUNBTCBmYWlscyB0aGVuIHRoZSBhbHRlcm5hdGl2ZSwgcG9zdF9jcml0aWNhbCwgYm9vdC1jb21tYW5kIGlzIHVzZWQuIElmIHRoaXMgY29tbWFuZCBpcyBub3QgZGVmaW5lZCB0aGVuIFUtQm9vdCBlbnRlcnMgaW50byBpbnRlcmFjdGl2ZSBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDhmMTVkNGFkZGQ0OWM5NTY0MTJlMWUzYmZjNzY0YTBjOGIxZjMxODQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgNCAxNDoxMDo0MiAyMDA4ICswMTAwCgogICAgVGhlIHBhdGNoIGFkZHMgbmV3IFBPU1QgdGVzdHMgZm9yIHRoZSBMd21vbjUgYm9hcmQuIFRoZXNlIGFyZToKCiAgICAqIEV4dGVybmFsIFdhdGNoZG9nIHRlc3Q7CiAgICAqIGRzUElDIHRlc3RzOwogICAgKiBGUEdBIHRlc3Q7CiAgICAqIEdEQyB0ZXN0OwogICAgKiBTeXNtb24gdGVzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYzJlZDMzZWZiZmZmNTc2N2JjYTIzNjgyOGUwMjFjNTVmZDU0N2I2YwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjAxIDIwMDggKzAxMDAKCiAgICBFbmFibGUgQ09ERUMgUE9TVCB3aXRoIENGR19QT1NUX0NPREVDIHJhdGhlciB0aGFuIHdpdGggQ0ZHX1BPU1RfRFNQLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgoKY29tbWl0IDNhNWQxZTdmMTMwOTk5ODc5MTcwMmIyYTU1OWUzMTI2NzgxNzQ2YjkKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTggMTM6MzM6MzAgMjAwOCArMDEwMAoKICAgIGx3bW9uNTogRml4IHJlZ2lzdGVyIHRlc3QgbG9naWMgdG8gbWF0Y2ggdGhlIHNwZWNpZmljIEdEQyBoL3cuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgMGY4NTVhMWYwNTZhOGMyMjExNmEyMTAzYTM5MDBjYmZiNjY5ZGYwYgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxOCAxMzoyNzo1NyAyMDA4ICswMTAwCgogICAgRml4IGJhY2tsaWdodCBpbiB0aGUgbHdtb241IFBPU1QuCgogICAgQmFja2xpZ2h0IHdhcyBzd2l0Y2VoZCBvbiBldmVuIHdoZW4gdGVtcGVyYXR1cmUgd2FzIHRvbyBsb3cuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgMmQ5OTE5NThiMWU0MjBmYmZlMTdiMTI4YmQyNmFkZTc0YmU1ZWZjYwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEZlYiA2IDE4OjQ4OjM2IDIwMDggKzAxMDAKCiAgICAgVGhlIHBhdGNoIGludHJvZHVjZXMgdGhlIGFsdGVybmF0aXZlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGxvZyBidWZmZXIgZm9yCiAgICB0aGUgbHdtb241IGJvYXJkOiB0aGUgc3RvcmFnZSBmb3IgdGhlIGxvZy1idWZmZXIgaXRzZWxmIGlzIE9DTShvbi1jaGlwIG1lbW9yeSksCiAgICB0aGUgbG9nLWJ1ZmZlciBoZWFkZXIgaXMgbW92ZWQgdG8gc2l4IEdQVCByZWdpc3RlcnMgKFBQQzQ0MEVQWF9HUFQwX0NPTVAxLCAuLi4sCiAgICBQUEM0NDBFUFhfR1BUMF9DT01QNSkuCgogICAgIFRvIGVuYWJsZSB0aGlzLCBhbHRlcm5hdGl2ZSwgY29uZmlndXJhdGlvbiB0aGUgVS1Cb290IGJvYXJkIGNvbmZpZ3VyYXRpb24KICAgIGZpbGUgZm9yIGx3bW9uNSBpbmNsdWRlcyB0aGUgZGVmaW5pdGlvbnMgb2YgYWx0ZXJuYXRpdmUgYWRkcmVzc2VzIGZvciBoZWFkZXIKICAgIChDT05GSUdfQUxUX0xIX0FERFIpIGFuZCBidWZmZXIgKENPTkZJR19BTFRfTEJfQUREUikuCgogICAgIFRoZSBMaW51eCBzaGFsbCBiZSBjb25maWd1cmVkIHdpdGggdGhlIENPTkZJR19BTFRfTEJfTE9DQVRJT04gb3B0aW9uIHNldCwKICAgIGFuZCBoYXMgdGhlIEJPQVJEX0FMVF9MSF9BRERSIGFuZCBCT0FSRF9BTFRfTEJfQUREUiBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUKICAgIGx3bW9uNSBib2FyZC1zcGVjaWZpYyBoZWFkZXIgKGFyY2gvcHBjL3BsYXRmb3Jtcy80eHgvbHdtb241LmgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBmZjgxOGIyMWIwNjlmNGJjOWNiNzMzNzNjYzVhMTYwMTRiZTEwMWI3CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTc6MTE6NTMgMjAwOCArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgbHdtb241IGJvYXJkIHJlc2V0IHZpYSBHUElPNTguCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgNjAzZjE5NGU1YWQ4MWJiMmVmNDJkNmQ4YWFhNzRkZTE3NWJjYjQxMQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE3OjA5OjU1IDIwMDggKzAxMDAKCiAgICBTb21lIGZpeGVzIHRvIGRzcGljLCBmcGdhLCBhbmQgZ2RjIHBvc3QgdGVzdHMgZm9yIGx3bW9uNS4KICAgIERpc2FibGUgZXh0ZXJuYWwgd2F0Y2gtZG9nIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZTI2MmVmZTM1NzQyYzFhZDRiMDk2NmZmNTAxZWZjMjZmMzRhMGFlYwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjExOjAzIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggaW50cm9kdWNlcyB0aGUgQ1JJVElDQUwgZmVhdHVyZSBvZiBQT1NUIHRlc3RzLiBJZiB0aGUgdGVzdAogICAgbWFya2VkIGFzIFBPU1RfQ1JJVElDQUwgZmFpbHMgdGhlbiB0aGUgYWx0ZXJuYXRpdmUsIHBvc3RfY3JpdGljYWwsCiAgICBib290LWNvbW1hbmQgaXMgdXNlZC4gSWYgdGhpcyBjb21tYW5kIGlzIG5vdCBkZWZpbmVkIHRoZW4gVS1Cb290CiAgICBlbnRlcnMgaW50byBpbnRlcmFjdGl2ZSBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDY1YjIwZGNlZmM4OTYxODE5M2ZhNTE5NDc5NjhkYWRhOTFlNGM3NzgKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgNCAxNDoxMDo0MiAyMDA4ICswMTAwCgogICAgVGhlIHBhdGNoIGFkZHMgbmV3IFBPU1QgdGVzdHMgZm9yIHRoZSBMd21vbjUgYm9hcmQuCiAgICBUaGVzZSBhcmU6CgogICAgKiBFeHRlcm5hbCBXYXRjaGRvZyB0ZXN0OwogICAgKiBkc1BJQyB0ZXN0czsKICAgICogRlBHQSB0ZXN0OwogICAgKiBHREMgdGVzdDsKICAgICogU3lzbW9uIHRlc3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDhkYzNiMjMwM2QyYjU3Yzc3NGI2MDljYTBlNzA0M2VkOGY5Yjg4YzEKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgNCAxNDoxMDowMSAyMDA4ICswMTAwCgogICAgRW5hYmxlIENPREVDIFBPU1Qgd2l0aCBDRkdfUE9TVF9DT0RFQyByYXRoZXIgdGhhbiB3aXRoIENGR19QT1NUX0RTUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAzNTE1ZmQxOGQ0ZThlNDRmODYzYWM3MTQyYjU1ZTIyYjEwOWU5YWYyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxOCAxNzozNTo1MSAyMDA4ICswMTAwCgogICAgSE1JMTAwMTogZml4IGNvbXBpbGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDFmMmE5OTcwMTA5Y2ViZjc0NDZlMDUwM2IxMGI3MWY4NjczMDQ1ZWUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDU6MzI6MzAgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBCRjUzNy1zdGFtcDogZHJvcCBib2FyZC1zcGVjaWZpYyBmbGFzaCBkcml2ZXIgZm9yIENGSQoKICAgIFRoZSBwYXJhbGxlbCBmbGFzaCBvbiB0aGUgQkY1MzctU1RBTVAgaXMgQ0ZJIGNvbXBsaWFudCwgc28gdGhlcmUgaXMgbm8gbmVlZAogICAgZm9yIHRoZSBib2FyZCBzcGVjaWZpYyBkcml2ZXIgYXQgYWxsLiAgSnVzdCB1c2UgdGhlIGNvbW1vbiBDRkkgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1YjIyMTYzZmVmODY1YWYyYjZiZmI2Yjc1ZjFiN2JmNDQzY2UxNzBjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjM2OjE0IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIHByb3BlciBFTEYgbWFya2luZ3MgdG8gc29tZSBhc3NlbWJseSBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2Y2NzVkM2IyYjljMzUxMWMxZDk5YmM4ZjhmMzhmZDJmMDhiZmNhZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEZlYiAxOSAwMDozNToxNyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IG5ldyBjcGxiaW5mbyBjb21tYW5kIGZvciB2aWV3aW5nIGNwbGIgdGFibGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGFhZGI3MjUwM2NkMTYwMjM0OWE1ZmU1MzM1NmQ1ZjU1ZWNjMWI5MDAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDU6Mzc6NTEgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgTUFJTlRBSU5FUlMgbGlzdAoKICAgIEFkZCBtYWludGFpbmVyIGluZm9ybWF0aW9uIGZvciB0aGUgQmxhY2tmaW4gYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBmN2NlMTJjYjY1YTMwYzZlMTUyZWVjZjI2ZjAzMDRiN2Q3OGNmMzlkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDE4IDA1OjI2OjQ4IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogY29udmVydCBCRklOX0NQVSB0byBDT05GSUdfQkZJTl9DUFUKCiAgICBTdG9wIHR5aW5nIHRoaW5ncyB0byB0aGUgcHJvY2Vzc29yIHRoYXQgc2hvdWxkIGJlIHRpZWQgdG8gb3RoZXIgZGVmaW5lcyBhbmQKICAgIGNoYW5nZSBCRklOX0NQVSB0byBDT05GSUdfQkZJTl9DUFUgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBpbiB0aGUgYnVpbGQKICAgIHN5c3RlbSB0byBzZWxlY3QgdGhlIC1tY3B1IG9wdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgODZhMjBmYjkyMGJkMTk4MTA1YWNmN2IxMTkxMTE3ZjU2NmQ2MzdlZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IEZlYiAxNiAwNzo0MDozNiAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IG1vdmUgYm9vdGxkciBjb21tYW5kIHRvIGNvbW1vbiBjb2RlCgogICAgVGhpcyBtb3ZlcyB0aGUgQmxhY2tmaW4tY29tbW9uIGJvb3RsZHIgY29tbWFuZCBvdXQgb2YgdGhlIEJGNTM3LVNUQU1QCiAgICBzcGVjaWZpYyBib2FyZCBkaXJlY3RvcnkgYW5kIGludG8gdGhlIGNvbW1vbiBkaXJlY3Rvcnkgc28gdGhhdCBhbGwgQmxhY2tmaW4KICAgIGJvYXJkcyBtYXkgdXRpbGl6ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZGVjYmUwMjliMmE5ZDMzMzNkMDJjNDMzMzg5YjFjODIxZWVhOTZkNwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgTWFyIDE0IDExOjA1OjIwIDIwMDggKzAxMDAKCiAgICBtZ2NvZ2U6IHVwZGF0ZSBjb25maWd1cmF0aW9uCgogICAgRml4IGNvbmZpZ3VyYXRpb24gZm9yIG1nY29nZSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGMxMzY3MjRjZGEwMjE5YzQ5ZjFkNGIzNDZmMDBkYTI5YjE0ZmRmMTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDE2IDAxOjIyOjU5IDIwMDggKzAxMDAKCiAgICBkcml2ZXJzL3J0Yy9NYWtlZmlsZToga2VlcCBsaXN0IHNvcnRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTUzNmRmY2NlMDNlN2JlNGNjYmNlYjQ3YTA4ZDliYTA3YWRhMzYyZgpBdXRob3I6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+CkRhdGU6CVNhdCBNYXIgMTUgMTU6NDA6MjYgMjAwOCArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBJbnRlcnNpbCBpc2wxMjA4IFJUQwoKICAgIFNpZ25lZC1vZmYtYnk6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+Cgpjb21taXQgMDIxMGNmZjNkMDc5ZDk3YjIxNTZiMTM2ODVlZThkZTM2OGU2OGExYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBNYXIgMTUgMTc6MzY6NDEgMjAwOCArMDEwMAoKICAgIGNyYW1mczogRml4IGlmZGVmCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYjhmMmEyNzg2MWE5ZmQwNmViNTVhMzRmODU1ZWM5YzUxMDJhYWI0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAxNiAwMToxMjo1OCAyMDA4ICswMTAwCgogICAgQ29uZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0MTcxMmI0ZThjOTVkZmYyMzM1NGJjZDYyMGUxZjk0NzcxNjBjMTkwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDUgMTI6MzE6NTMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIFVTQiBPSENJIHN1cHBvcnQgdG8gQU1DQyBDYW55b25sYW5kcyA0NjBFWCBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIFVTQiBPSENJIHN1cHBvcnQgdG8gdGhlIENhbnlvbmxhbmRzIGJvYXJkIHBvcnQuIEl0IGFsc28KICAgIGVuYWJsZXMgRVhUMiBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNTk2ZjViOWQzNTNmZjNlNDM4N2EzMzI1ZDA1NzQwZjE2OTU4MDM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDUgMTI6Mjk6MzIgMjAwOCArMDEwMAoKICAgIHVzYjogQWRkIENGR19PSENJX1VTRV9OUFMgdG8gY29tbW9uIFVTQi1PSENJIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBDRkdfT0hDSV9VU0VfTlBTIHRvIHRoZSBjb21tb24gVVNCLU9IQ0kgZHJpdmVyLiBUaGlzCiAgICB3YXkgYSBib2FyZCBqdXN0IG5lZWRzIHRvIGRlZmluZSB0aGlzIG5ldyBvcHRpb24gdG8gZW5hYmxlIHRoZSAiZm9yY2UKICAgIE5vUG93ZXJTd2l0Y2hpbmcgbW9kZSIgaW5zdGVhZCBvZiBhZGRpbmcgbmV3IENQVS9hcmNoaXRlY3R1cmUgZGVmaW5lcwogICAgdG8gdGhlIFVTQiBzb3VyY2UgaXRzZWxmLgoKICAgIFRoaXMgbmV3IG9wdGlvbiB3aWxsIGJlIHVzZWQgZmlyc3Qgd2l0aCB0aGUgbmV3IEFNQ0MgNDYwRVggQ2FueW9ubGFuZHMKICAgIGJvYXJkIHBvcnQsIHdoaWNoIHdpbGwgYmUgcG9zdGVkIGluIGEgZmV3IGRheXMuCgogICAgVGhpcyBwYXRjaCBhbHNvIGZpeGVzIGEgc21hbGwgY29tcGlsYXRpb24gcHJvYmxlbSB3aGVuIERFQlVHIGlzIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcxNjY1ZWJmODg0MDhmZjJhY2I3NjJhZjQ3OTg5ZmQ0MzY1YjMyMWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMyAxNzoyNzowMiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQ2FueW9ubGFuZHMgTkFORCBib290aW5nIHN1cHBvcnQKCiAgICA0NjBFWCBkb2Vzbid0IHN1cHBvcnQgYSBmaXhlZCBib290c3RyYXAgb3B0aW9uIHRvIGJvb3QgZnJvbSA1MTIgYnl0ZSBwYWdlCiAgICBOQU5EIGRldmljZXMuIFRoZSBvbmx5IGJvb3RzdHJhcCBvcHRpb24gZm9yIE5BTkQgYm9vdGluZyBpcyBvcHRpb24gRiBmb3IKICAgIDJrIHBhZ2UgZGV2aWNlcy4gU28gdG8gYm9vdCBmcm9tIGEgNTEyIGJ5cGUgcGFnZSBkZXZpY2UsIHRoZSBJMkMgYm9vdHN0cmFwCiAgICBFRVBST00gbmVlZHMgdG8gYmUgcHJvZ3JhbW1lZCBhY2NvcmRpbmdseS4KCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIENhbnlvbmxhbmRzIGF2YWwKICAgIGJvYXJkIGFuZCBhbHNvIGFkZHMgc3VwcG9ydCB0byB0aGUgImJvb3RzdHJhcCIgY29tbWFuZCwgdG8gZW5hYmxlIE5BTkQKICAgIGJvb3RpbmcgSTJDIHNldHRpbmcuCgogICAgVGVzdGVkIHdpdGggNTEyIGJ5dGUgcGFnZSBOQU5EIGRldmljZSAoMzJNQnl0ZSkgb24gQ2FueW9ubGFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM4MTNmMWY4MzVhN2VkZmRiOTI5ZjI4NDNiMDlkYjcyY2Q1Y2QyZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTY6NTM6MDAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIEFNQ0MgQ2FueW9ubGFuZHMgc3VwcG9ydCAoNDYwRVgpICgzLzMpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIENhbnlvbmxhbmRzIDQ2MEVYIGV2YWx1YXRpb24KICAgIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2OTgzZmUyMWY3NzRhOTI0ZDNhZGIyNjNhMjcwYmMyZjMwMWYyYWEyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE2OjUyOjI0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIENhbnlvbmxhbmRzIHN1cHBvcnQgKDQ2MEVYKSAoMi8zKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQU1DQyBDYW55b25sYW5kcyA0NjBFWCBldmFsdWF0aW9uCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGUxYTNmZTU0NWJiY2ZjZWFmZTE4MzM0NGViYzlmMWFkMDM4MTljMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNjo1MToxNyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBDYW55b25sYW5kcyBzdXBwb3J0ICg0NjBFWCkgKDEvMykKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQ2FueW9ubGFuZHMgNDYwRVggZXZhbHVhdGlvbgogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQzYzYwOTkyY2RmNzI0OTZlN2VhYWEzZmJkMzdlYmJlNzU4MzVmNjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTU6MTE6NDMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIGJhc2ljIHN1cHBvcnQgZm9yIEFNQ0MgNDYwRVgvNDYwR1QgKDUvNSkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgNDYwRVgvNDYwR1QgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmMmViM2YzZDhlYTJkYmIyMjRkMGRhNWExMjAzODY5M2JhYjk5NDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTU6MTE6MTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIGJhc2ljIHN1cHBvcnQgZm9yIEFNQ0MgNDYwRVgvNDYwR1QgKDQvNSkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgNDYwRVgvNDYwR1QgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5OWVjZDVhY2EzODE5ODRkOGViYmViMjA3ZWNlODJhMWMyNzU1NzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTU6MDc6MTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIGJhc2ljIHN1cHBvcnQgZm9yIEFNQ0MgNDYwRVgvNDYwR1QgKDMvNSkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgNDYwRVgvNDYwR1QgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI4MDFiMmQyYTk5MDZmMjA2YWI5ZWU4ZDBiNmU3NDZkMmI3ZmUwNWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTU6MDU6NTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIGJhc2ljIHN1cHBvcnQgZm9yIEFNQ0MgNDYwRVgvNDYwR1QgKDIvNSkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgNDYwRVgvNDYwR1QgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhhYzQxZTNlMzdjMzA4MGM2YjFkOTQ2MWQ2NTQxNjFjZmUyYWE0OTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTU6MDU6MjYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIGJhc2ljIHN1cHBvcnQgZm9yIEFNQ0MgNDYwRVgvNDYwR1QgKDEvNSkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgNDYwRVgvNDYwR1QgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU2ZTQxMDE3ODM3NWQ5ZjIwYmUyNWZiMjRlMTgwOTc0ZjBhZTEyMGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTkgMjI6MDc6NTcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogaW50ZXJydXB0LmMgcmV3b3JrZWQKCiAgICBUaGlzIHBhdGNoIGlzIGEgcmV3b3JrIG9mIHRoZSA0eHggaW50ZXJydXB0IGhhbmRsaW5nIGRvbmUgd2hpbGUKICAgIGFkZGluZyB0aGUgNDYwRVgvR1Qgc3VwcG9ydC4gSW50ZXJydXB0cyBhcmUgbmVlZGVkIG9uIDR4eCBmb3IgdGhlCiAgICBFTUFDIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODRhOTk5YjZjZGQwYjAyZGM3ZGUyY2FjYzMwNmVhYTg0YWZlMmI0NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxOSAyMjowMTo1NyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBwcm9ncmFtX3RsYiBub3cgdXNlcyA2NGJpdCBwaHlzaWNhbCBhZGRlc3MKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIHBoeXNpY2FsIGFkZGVzcyBwYXJhbWV0ZXIgZnJvbSAzMmJpdCB0byA2NGJpdC4KICAgIFRoaXMgaXMgbmVlZGVkIGZvciAzNmJpdCA0eHggcGxhdGZvcm1zIHRvIGFjY2VzcyBhcmVhcyBsb2NhdGVkCiAgICBiZXlvbmQgdGhlIDRHQiBib3JkZXIsIGxpa2UgU29DIHBlcmlwaGVyYWxzIChFQkMgZXRjLikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMzMzA3ZmExODZhZjg1NzcxOTI0YzQzNDk5NzA4OWI4MTA0YzBhNDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTkgMjE6NTg6MjUgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogbWlpcGh5LmMgcmV3b3JrZWQKCiAgICBXaGlsZSBhZGRpbmcgdGhlIDQ2MEVYL0dUIHN1cHBvcnQgSSByZXdvcmtlZCB0aGUgNHh4IG1paXBoeSBjb2RlLiBJdAogICAgYmFkbHkgbmVlZGUgc29tZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4OGFmZjYyZGYzOWMwNzU2MjQxZWE5ZjliNWE3YjNhZGUyNmNiODJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDE5IDE2OjIxOjQ5IDIwMDggKzAxMDAKCiAgICBydGM6IEFkZCBNNDFUNjIgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkIHN1cHBvcnQgZm9yIHRoZSBTVE0gTTQxVDYyIFJUQy4gSXQgaXMgdXNlZCBhbmQgdGVzdGVkCiAgICBvbiB0aGUgQU1DQyBDYW55b25sYW5kcyA0MDZFWCBwbGF0Zm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjE3ZDM4M2UyMDFhZGM3ZjIyNzExNDVhZTM0NWVhNWVhZTJiNzE3MApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMTg6NDY6NDMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIDQwNUdQciBiYXNlZCBNQ1UyNSBib2FyZCBzcGVjaWZpYyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNzVhNjZkY2RiMzgzODYzYWQzM2YwNTM0Y2ZjMjdiN2E4Njk0N2RhZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMTg6NDY6NDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIDQwNUdQciBiYXNlZCBNQ1UyNSBib2FyZCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgYjA1ZjM1NDM2YjczM2EyNDA1NTllNzdlNDZiZWQ4NDM5NjY1ZWNjNQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMTg6NDY6NDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIDQwNUdQciBiYXNlZCBNQ1UyNSBib2FyZC4gR2xvYmFsIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxNGMyN2IzNWFjODEyYTcxYWJjZTZlM2UyZjQxMjlkNWU5MzEzNjYwCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODozNzowMiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBIQ1U0LzUuIHJlbW92ZSBvYnNvbGV0ZSBoY3VfZmxhc2guYwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgYTA3OTQ5NDg1M2NjMmJmZWRkYjI2NjczMjE5ZGIwYjRiMmIzMTU2NgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMTg6Mzc6MDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiBVc2UgRkxBU0hfQ0ZJX0xFR0FDWQoKICAgIENsZWFudXA6IFJlbW92ZSBjdXN0b20gZmxhc2ggZHJpdmVyIGZvciA4IGJpdCBib290LWVwcm9tIGFuZCByZXBsYWNlIGl0IHdpdGgKICAgIHRoZSBGTEFTSF9DRklfTEVHQUNZIGV0IGFsLiBjb25maWcgb3B0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGU0MTcwZTVhNTBjODExMGY3OTJiYzM3NDcyODMzYWU2NjlkNjk5NTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTM6NTI6MjUgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbW1lbnQgaW4gNDA1RVggRERSMiBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzY2NTI5ZmNjYzg2MGVjYjllOTU1YjQyMzlkZmY2OWNkOWU0ZWEwOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMTY6MjI6MzQgMjAwOCArMDEwMAoKICAgIEFkZCBNRDUgc3VwcG9ydCB0byB0aGUgbmV3IHVJbWFnZSBmb3JtYXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDBlZGUwYzM4MzUzMGE0MThjZjk4YmU5MTIyMzcxYTg2NTczY2QwZGIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgTWFyIDE0IDE2OjIyOjM0IDIwMDggKzAxMDAKCiAgICBBZGQgdGhlIE1ENSBhbGdvcml0aG0KCiAgICBNRDUgc3Vwb3BydCBpcyB0dXJuZWQgb24gYnkgZGVmaW5pbmcgQ09ORklHX01ENSwgdGhlIGRpZ2VzdCBjYW4gYmUgdGhlbgogICAgY2FsY3VsYXRlZCB1c2luZyB0aGUgbWQ1KCkgZnVuY3Rpb24gLS0gc2VlIGluY2x1ZGUvbWQ1LmggZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiOGFhNTdiNWQ0ZDY5ZThmMDgxMGE1ZTYzMmMwY2U0MWMwZjQ2ZWUwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAxNCAxNjowNDo1NCAyMDA4ICswMTAwCgogICAgdG9vbHMvc2V0bG9jYWx2ZXJzaW9uOiB1c2UgYSBnaXQtZGVzY3JpYmUtaXNoIGZvcm1hdAoKICAgIENoYW5nZSB0aGUgYXV0b21hdGljIGxvY2FsIHZlcnNpb24gdG8gaGF2ZSB0aGUgZm9ybSAtbm5ubm4tZ1NIQTFTVU1JRCwKICAgIHdoZXJlICdubm5ubicgaXMgdGhlIG51bWJlciBvZiBjb21taXRzIHNpbmNlIHRoZSBsYXN0IHRhZyAoaS5lLiwKICAgIDEuMy4yLXJjMykuICBUaGlzIG1ha2VzIGl0IG11Y2ggZWFzaWVyIHRvIHJlY29nbml6ZSAibmV3ZXIiIHZlcnNpb25zCiAgICBhbmQgdG8gc2VlIGhvdyBtdWNoIGhhcyBiZWVuIGNoYW5nZWQgc2luY2UgdGhlIHJlZmVyZW5jZWQgdGFnLgoKICAgIFN0b2xlbiBmcm9tIExpbnV4IGtlcm5lbCdzIHNjcmlwdHMvc2V0bG9jYWx2ZXJzaW8sIHNlZSBjb21taXQgZDg4MjQyMWYuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjNmRjMjFjODRkZTBmMTU5YTE3NTJjNWViZDMzY2ZmODQzZjYzNjA5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxMyAxNDozMjowMyAyMDA4ICswMTAwCgogICAgSE1JMTAwMTogYWRkIHN1cHBvcnQgZm9yIE1QQzUyMDAgUmV2LiBCIHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MGYxM2RjZTdhN2E5YTg0ZDU3MzA1NzZjOWEyNGQwZGJiMDdjYjNhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxMyAxNDoyOTo0OSAyMDA4ICswMTAwCgogICAgVFFNNTIwMDogcmVtb3ZlIGRlYWQgY29kZQoKICAgIFRoaXMgYm9hcmQgbmV2ZXIgdXNlZCBhIE1HVDUxMDAgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWZlNDVjODdlM2M1ZDc3YmFkNzZiMWE1N2RjY2QyMDc2NGQ0NWI1ZApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTI6MTQ6MTUgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggYnVpbGQgaXNzdWUgb24gQVJNCgogICAgQVJNIHBsYXRmb3JtcyBkb24ndCBoYXZlIGEgYmQtPmJpX21lbXNpemUgc28gdXNlIGJkLT5iaV9kcmFtWzBdLnNpemUgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDMzMTBjNTQ5YTczYTk0OTQzMGJmZGE5MDg3NmRmNzU1MmExZGFiMGMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEyOjEzOjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzCgogICAgQ3JlYXRlIGRvYy91SW1hZ2UuRklUIGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHdpdGggdGhlIGZvbGxvd2luZyBmaWxlczoKICAgIC0gY29tbWFuZF9zeW50YXhfZXh0ZW5zaW9ucy50eHQgOiBleHRlbmRlZCBjb21tYW5kIHN5bnRheCBkZXNjcmlwdGlvbgogICAgLSBob3d0by50eHQJCQkgICAgOiBzaG9ydCB1c2FnZSBob3d0bwogICAgLSBzb3VyY2VfZmlsZV9mb3JtYXQudHh0CSAgICA6IGludGVybmFsIG5ldyB1SW1hZ2UgZm9ybWF0IGRlc2NyaXB0aW9uCgogICAgQWRkIGV4YW1wbGUgaW1hZ2Ugc291cmNlIGZpbGVzOgogICAgLSBrZXJuZWwuaXRzCiAgICAtIGtlcm5lbF9mZHQuaXRzCiAgICAtIG11bHRpLml0cwoKICAgIFVwZGF0ZSBSRUFETUUgYXBwcm9wcmlhdGVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZWM3Mzc2MWQyZTI0NzA3OGY0NTIwYTI2NWQ0NjNlOGI3MzM5MWEyCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozNTo1MiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBkZWZpbml0aW9uIG9mIGNvbW1vbiBib290bV9oZWFkZXJzX3QgZmllbGRzCgogICAgdmVyaWZ5LCBhdXRvc3RhcnQgYW5kIGxtYiBmaWVsZHMgYXJlIHVzZWQgcmVnYXJkbGVzcyBvZiBDT05GSUdfRklUCiAgICBzZXR0aW5nLCBtb3ZlIHRoZWlyIGRlZmluaXRpb25zIHRvIGNvbW1vbiBzZWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMWQxY2I0MjcwZWRjNmE5OTI3NjgzNDA2NDA2OTcxN2Y5NzgyYzQ5MQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzU6NTEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggYnVpbGQgcHJvYmxlbXMgb24gdHJhYiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZjc3M2JlYThlMTFmNGExMWMzODhkY2VlOTU2YjI0NDQyMDNlNmI2NQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzU6NDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgcHJvcGVyIHJhbWRpc2svRkRUIGhhbmRsaW5nIHdoZW4gRklUIGNvbmZpZ3VyYXRpb24gaXMgdXNlZAoKICAgIFNhdmUgRklUIGNvbmZpZ3VyYXRpb24gcHJvdmllZCBpbiB0aGUgZmlyc3QgYm9vdG0gYXJndW1lbnQgYW5kIHVzZSBpdAogICAgd2hlbiB0byBnZXQgcmFtZGlzay9GRFQgc3ViaW1hZ2VzIHdoZW4gc2Vjb25kIGFuZCB0aGlyZCAocmFtZGlzay9GRFQpCiAgICBhcmd1bWVudHMgYXJlIG5vdCBzcGVjaWZpZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyNjgyY2U4YTQyMjVmMjNkNzJiYjdmZWQwNjllOTI4ZGQzOWQzNGFlCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vcmUgdmVyYm9zZSBrZXJuZWwgaW1hZ2UgdW5jb21wcmVzcyBlcnJvciBtZXNzYWdlCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxMzcyY2NlMmI5MDQwZmI2NDBlNTAzMmI4NGUzYTAzM2EyMmQ2ZmYwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFVzZSBzaG93X2Jvb3RfcHJvZ3Jlc3MoKSBmb3IgbmV3IHVJbWFnZSBmb3JtYXQKCiAgICBUaGlzIHBhdGNoIGFsbG9jYXRlcyBhIHNldCBvZiBzaG93X2Jvb3RfcHJvZ3Jlc3MoKSBJRHMgZm9yIG5ldyB1SW1hZ2UgZm9ybWF0CiAgICBhbmQgYWRkcyBzaG93X2Jvb3RfcHJvZ3Jlc3MoKSBjYWxscyBpbiBuZXcgdUltYWdlIGZvcm1hdCBoYW5kbGluZyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYzI4YzRkMTkzZGJmYjIwYjJkZDNhNTQ0NzY0MGZkNmRlN2ZkMDcyMApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmcm9tYXQgc3VwcG9ydCB0byBmcGdhIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDA5NDc1Zjc1Mjc0NjBlNDI2YzBlMDYyOGZjNWI4ZjM3NTRmYmFhMjMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IGhhbmRsaW5nIHRvIG90aGVyIGJvb3RtIHJlbGF0ZWQgY29tbWFuZHMKCiAgICBVcGRhdGVkIGNvbW1hbmRzOgoKICAgIGRvY2Jvb3QgIC0gY21kX2RvYy5jCiAgICBmZGNib290ICAtIGNtZF9mZGMuYwogICAgZGlza2Jvb3QgLSBjbWRfaWRlLmMKICAgIG5ib290ICAgIC0gY21kX25hbmQuYwogICAgc2NzaWJvb3QgLSBjbWRfc2NzaS5jCiAgICB1c2Jib290ICAtIGNtZF91c2IuYwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMWI3ODk3ZjI4ZDQ5YTgwZDc4ZDc2MGVjNmY2ZjExZGMwZjkxNDMzOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCB0byBpbWdleHRyYWN0IGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDQyNGM0YWJkZDE3NWQyYzQ3MDUxMGRmOGNlMGUzMmQzZjQ2M2VjMTYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgdG8gYXV0b3NjcmlwdCByb3V0aW5lCgogICAgYXV0b3NjcmlwdCgpIHJvdXRpbmUgaXMgdXBkYXRlZCB0byBhY2NlcHQgc2Vjb25kIGFyZ3VtZW50LCB3aGljaAogICAgaXMgb25seSB1c2VkIGZvciBGSVQgaW1hZ2VzIGFuZCBwcm92aWRlcyBhIEZJVCBzdWJpbWFnZSB1bml0IG5hbWUuCgogICAgYXV0b3NjcmlwdCgpIHJvdXRpbmUgY2FsbGVycyBtdXN0IG5vdyBwYXNzIHR3byBhcmd1bWVudHMuIEZvcgogICAgbm9uLWludGVyYWN0aXZlIHVzZSAobGlrZSBpbiBjbWRfbG9hZC5jLCBjbWRfbmV0LmMpLCBuZXcgZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlICdhdXRvc2NyaXB0X3VuYW1lJyBpcyBpbnRyb2R1Y2VkIGFuZCB1c2VkIGFzIGEgRklUCiAgICBzdWJpbWFnZSB1bml0IG5hbWUgc291cmNlLgoKICAgIGF1dG9zY3JpcHQgY29tbWFuZCBhY2NlcHRzIGV4dGVuZGVkIHN5bnRheCBvZiB0aGUgYWRkciBhcmd1bWVudDoKICAgIGFkZHI6PHN1YmltZ191bmFtZT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGNkN2M1OTZlOWY1NjFkYmJjMTdiNzE3Mjc3NDM4YWVlNzhjZGUxNGYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgdG8gYXJjaCBzcGVjaWZpYyBkb19ib290bV9saW51eCgpIHJvdXRpbmVzCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YKICAgIGRvX2Jvb3RtX2xpbnV4KCkgYWRkaW5nIG5ldyB1SW1hZ2UgZm9ybWF0IGhhbmRsaW5nIGZvcgogICAgb3BlcmF0aW9ucyBsaWtlIGdldCBrZXJuZWwgZW50cnkgcG9pbnQgYWRkcmVzcywgZ2V0IGtlcm5lbAogICAgaW1hZ2UgZGF0YSBzdGFydCBhZGRyZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgM2RmZTExMDE0OTMxMTQyNTkxOWU2ZDZhMTRiNTYxYjQyMDc0OThmMQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzI6NTkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbm9kZSBvZmZzZXRzIGZvciBGSVQgaW1hZ2VzIGxpc3RlZCBpbiBzdHJ1Y3QgYm9vdG1faGVhZGVycwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBuZXcgbm9kZSBvZmZzZXQgZmllbGRzIHRvIHN0cnVjdCBib290bV9oZWFkZXJzCiAgICBhbmQgdXBkYXRlcyBib290bV9oZWFkZXJzIHByb2Nlc3NpbmcgY29kZSB0byBtYWtlIHVzZSBvZiB0aGVtLgogICAgU2F2ZWQgbm9kZSBvZmZzZXRzIGFsbG93IHRvIGF2b2lkIHJlcGVhdGluZyBmaXRfaW1hZ2VfZ2V0X25vZGUoKSBjYWxscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGJjOGVkNDg2YjEyNTQ1MmJhM2JkODM0NGYwNTJmNDM3MzI5MTUwYzUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMyOjUzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gcHBjOiBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCB0byBGRFQgaGFuZGxpbmcgcm91dGluZXMKCiAgICBTdXBwb3J0IGZvciBuZXcgKEZJVCkgZm9ybWF0IHVJbWFnZXMgaXMgYWRkZWQgdG8gcG93ZXJwYyBzcGVjaWZpYwogICAgYm9vdF9nZXRfZmR0KCkgcm91dGluZSB3aGljaCBub3cgcmVjb2duaXplcywgc2FuaXR5IGNoZWNrcyBGSVQgaW1hZ2UKICAgIGFuZCBpcyBhYmxlIHRvIGFjY2VzcyBkYXRhIHNlY3Rpb25zIG9mIHRoZSByZXF1ZXN0ZWQgY29tcG9uZW50IGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYTQ0YTI2OWE5MDVmOTI0YjQyMDAyMDUwNmE0ZDdkN2VlZGNjMGVhZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MTQ6NTcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZS1lbmFibGUgaW50ZXJydXB0cyBmb3Igbm9uIGF1dG9tYXRpYyBib290aW5nCgogICAgUmUtZW5hYmxlIGludGVycnVwdHMgaWYgd2UgcmV0dXJuIGZyb20gZG9fYm9vdG1fPG9zPiBhbmQgJ2F1dG9zdGFydCcKICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgdG8gJ3llcycuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkOTg1Yzg0OThjNGU0NzA5NTgyMGRhOTdhYTcyMjM4MWQzOTE3MmM1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDoxNDozOCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZSB1bm5lY2Vzc2FyeSBhcmd1bWVudHMgcGFzc2VkIHRvIHJhbWRpc2sgcm91dGluZXMKCiAgICBib290X2dldF9yYW1kaXNrKCkgYW5kIGltYWdlX2dldF9yYW1kaXNrKCkgZG8gbm90IG5lZWQgYWxsCiAgICBjbWR0cCwgZmxhZywgYXJnYyBhbmQgYXJndiBhcmd1bWVudHMuIFNpbXBsaWZ5IHJvdXRpbmVzIGRlZmluaXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjODc3OTY0ODNiYzdjMjkwMDQ3MGRjNzQ3YzM2N2Y2MDI1Nzc2MDhkCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDoxMjozNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGZvciByYW1kaXNrIGhhbmRsaW5nCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIGJvb3RfZ2V0X3JhbWRpc2soKSByb3V0aW5lIGFkZGluZyBmb3JtYXQKICAgIHZlcmlmaWNhdGlvbiBhbmQgaGFuZGxpbmcgZm9yIG5ldyAoRklUKSB1SW1hZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNjk4NmEzODU2NzE3NDllY2IzZjYwY2Y5OWU5Y2JhZThlNDdiYjUwZQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MDE6MDUgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBmb3Iga2VybmVsIGJvb3RpbmcKCiAgICBOZXcgZm9ybWF0IHVJbWFnZXMgYXJlIHJlY29nbml6ZWQgYnkgdGhlIGJvb3RtIGNvbW1hbmQsCiAgICB2YWxpZGl0eSBvZiBzcGVjaWZpZWQga2VybmVsIGNvbXBvbmVudCBpbWFnZSBpcyBjaGVja2VkIGFuZAogICAgaXRzIGRhdGEgc2VjdGlvbiBsb2NhdGVkIGFuZCB1c2VkIGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcKICAgICh1bmNvbXByZXNzLCBsb2FkLCBldGMuKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZTMyZmVhNmFkYjYyMGVjZjJiZDcwYWNmMmRkMzdlNTNkZjlkMTU0NwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXIgMTEgMTI6MzU6MjAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBmb3IgaW1scyBhbmQgaW1pbmZvIGNvbW1hbmRzCgogICAgaW1scyBhbmQgaW1pbmZvIGNhbiBub3cgcmVjb2duaXplIG5hZCBwcmludCBvdXQgY29udGVudHMgb2YgdGhlIG5ldyAoRklUKQogICAgZm9ybWF0IHVJbWFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5ZDI1NDM4ZmU3ZDcwY2YzNWE4YTI5M2VhNWUzOTJmZWZjNjcyNjEzCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1hciAxMSAxMjozNDo0NyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBzdXBwb3J0IGZvciBuZXcgdUltYWdlIGZvcm1hdCB0byBta2ltYWdlIHRvb2wKCiAgICBTdXBwb3J0IGZvciB0aGUgbmV3IHVJbWFnZSBmb3JtYXQgKEZJVCkgaXMgYWRkZWQgdG8gbWtpbWFnZSB0b29sLgogICAgQ29tbWFuZGxpbmUgc3ludGF4IGlzIGFwcHJvcHJpYXRlbHkgZXh0ZW5kZWQ6CgogICAgbWtpbWFnZSBbLUQgZHRjX29wdGlvbnNdIC1mIGZpdC1pbWFnZS5pdHMgZml0LWltYWdlCgogICAgbWtpbWFnZSAodG9nZXRoZXIgd2l0aCBkdGMpIHRha2VzIGZpdC1pbWFnZS5pdHMgYW5kIHJlZmVyZW5jZWQgdGhlcmVpbgogICAgYmluYXJpZXMgKGxpa2Ugdm1saW51eC5iaW4uZ3opIGFzIGlucHV0cywgYW5kIHByb2R1Y2VzIGZpdC1pbWFnZSBmaWxlIC0tIHRoZQogICAgZmluYWwgaW1hZ2UgdGhhdCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gdGhlIHRhcmdldCAoZS5nLiwgdmlhIHRmdHApIGFuZCB0aGVuCiAgICBib290ZWQgdXNpbmcgdGhlIGJvb3RtIGNvbW1hbmQgaW4gVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZWI2MTc1ZWRkNmMxMjBkOGI4OTY3ODI0M2U1YTJiZTM2MmVlOGU0MApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBNYXIgMTAgMTc6NTM6NDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNYWtlIG5vZGUgdW5pdCBuYW1lcyBjb25zdCBpbiBzdHJ1Y3QgYm9vdG1faGVhZGVycwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNWRmYjUyMTM4Njg4Y2NiZjAxNDZmNjI2ODNmZTYyMTdiM2NlMWIwNQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMjE6MjQ6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBOZXcgdUltYWdlIGxvdy1sZXZlbCBBUEkKCiAgICBBZGQgRkRULWJhc2VkIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgbmV3IGZvcm1hdCBjb21wb25lbnQgaW1hZ2VzLAogICAgY29uZmlndXJhdGlvbnMsIG5vZGUgb3BlcmF0aW9ucywgcHJvcGVydHkgZ2V0L3NldCwgZXRjLgoKICAgIGZpdF8JLSByb3V0aW5lcyBoYW5kbGluZyBnbG9iYWwgbmV3IGZvcm1hdCB1SW1hZ2Ugb3BlcmF0aW9ucwoJCSAgbGlrZSBnZXQvc2V0IHRvcCBsZXZlbCBwcm9wZXJ0eSwgcHJvY2VzcyBhbGwgbm9kZXMsIGV0Yy4KICAgIGZpdF9pbWFnZV8JLSByb3V0aW5lcyBoYW5kbGluZyBjb21wb25lbnQgaW1hZ2VzIHN1Ym5vZGVzCiAgICBmaXRfY29uZl8JLSByb3V0aW5lcyBoYW5kbGluZyBjb25maWd1cmF0aW9ucyBub2RlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMzBmMTgwNmY2MDk3OGQ3MDdiMGNmZjJkN2JmODlkMTQxZmMyNDI5MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAxNjoyMDowMiAyMDA4ICswMTAwCgogICAgUmVsZWFzZSB2MS4zLjIKCiAgICBVcGRhdGUgQ0hBTkdFTE9HIGZvciByZWxlYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWI0NjRjMjg5YmE3MTVkMDk3OWI2ZTFmOTQ5NDdiYjhmMTA2OGQxNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgOSAxNDo1MjoxMSAyMDA4ICswMTAwCgogICAgU0NNOiBmaXggJ3BhY2tlZCcgYXR0cmlidXRlIGlnbm9yZWQgZm9yIGZpZWxkIG9mIHR5cGUgJ2Nhbl9tc2dfdCcgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkYjY5NWI3ODUxNWRkYjg4YTJkNGYzMzU3YzEyMDM0NWVmYmY1OWVjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciA5IDEwOjQ0OjAxIDIwMDggKzAxMDAKCiAgICBzY2I5MzI4OiBGaXggZmxhc2ggd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDJiM2U3ZTYxZDZhNzJmMTZhZWU5M2Y4NzBiYzZhZjY3ZjMwNzU4YzQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMTA6NTA6NDEgMjAwOCArMDEwMAoKICAgIGVzZC9jb21tb24vZnBnYS5jOiBmaXggaW5kZW50YXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjYzM4NDNlMzY0NTNlMmI4ZGI2NWQ3ZTU2ZGU5MzhiYTA0NTAxNmEwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDEwOjMzOjMxIDIwMDggKzAxMDAKCiAgICBjb21tb24va2dkYi5jOiBmaXggJ2RlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlcicgd2FybmluZwoKICAgIGFuZCBnZXQgcmlkIG9mIGEgY291cGxlIG9mIHVubmVlZGVkIGNhc3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGQ0ZjRhODM4ZDdkYzdjZjRkZTE3ZTNlOWE2N2UyZjIyMmI2YTFjOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAxMDowOTo1MyAyMDA4ICswMTAwCgogICAgZXNkL2NvbW1vbi9mcGdhLmM6IGZpeCAnYXNzaWdubWVudCBvZiByZWFkLW9ubHkgbG9jYXRpb24nIGVycm9yCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjNmZlNGRhYmFjMDY2ZTg3NTgzNDVkMjQ5MDMyNzY4NDk2OTgzYTNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDAyOjEzOjE5IDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogbWFrZSBidWlsZCBzaWxlbnRseSBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc2YmFiYzg2NTc2ZjA5MjU3MzU5OTMzNGM4NWVjNTQzZmRiYzYwMTUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMDI6MDc6NDkgMjAwOCArMDEwMAoKICAgIG01MDFzazogRml4IG91dCBvZiB0cmVlIGJ1aWxkaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyMTBlZDIwMDRlMDYyZmRkMDNmMjVhYjQ5MjU5OThhYTFiZDA4YTA3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDAwOjA2OjA5IDIwMDggKzAxMDAKCiAgICBBRFM1MTIxOiBmaXggb3V0IG9mIHRyZWUgYnVpbGQKCiAgICBhbmQgc2ltcGxpZnkgTWFrZWZpbGUgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NmNiNTA3NGEzZjc0ZGU2NGViZDk3ZGQwYzRlYzdlYjNkNzY4YjkzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1hciA4IDIyOjM1OjMxIDIwMDggKzAxMDAKCiAgICBSZWxlYXNlIHYxLjMuMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzhhOTBmODI3ZGY3NDUyMGU5MzljNzk0ZmM3NDEzZGFjZTIxYzRkYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgOCAyMjozNTowNCAyMDA4ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNThmM2M1N2M2MDA4YjQyZTAxZjU1MWQzYmU2ZWZkODhjMTRhYzg3ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBNYXIgOCAyMTozMDowNCAyMDA4ICswMTAwCgogICAgZXNkOiBGaXggd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAxIG9mICdmcGdhX2Jvb3QnIGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkNzU0NjlkNDhjMDU3OTUxNDRmNGI4YmE3NmFkZGJiNDkyMGE3YmJhCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTYXQgTWFyIDggMDk6MjU6NDkgMjAwOCArMDkwMAoKICAgIG5ldDogcnRsODE2OTogQWRkIHByb2Nlc3Npbmcgd2hlbiBPV05iaXQgZGlkJ3QgZW5hYmxlIGluIHJ0bF9yZWN2KCkKCiAgICBXaGVuIHJ0bF9yZWN2KCkgb2YgcnRsODE2OSBpcyBjYWxsZWQsIE9XTmJpdCBvZiBzdGF0dXMgcmVnaXN0ZXIKICAgIGlzIG5vdCBlbmFibGUgb2NjYXNpb25hbGx5LgogICAgcnRsX3JlY3YoKSBkb2Vzbid0IHdvcmsgbm9ybWFsbHkgd2hlbiB0aGUgZHJpdmVyIGRvZXNuJ3QgZG8KICAgIGFwcHJvcHJpYXRlIHByb2Nlc3NpbmcuCiAgICBUaGlzIHBhdGNoIGZpeCB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDgyYWZhYmZlYjhhZTZhMjdjN2IzOTYwMTFlYTk5ZjQ3MTJhYTczZmEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE1hciA3IDA4OjE1OjI4IDIwMDggKzAxMDAKCiAgICBtZ3N1dmQ6IHVwZGF0ZSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgaW5pdGlhbGl6ZSB0aGUgVVBJT3ggY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBlNDkyYzkwYzI2MjE1ZTQ1OWFlYzBmZGYwZjhlZjFmZDIwNDk4OGY1CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgNyAwODoxMzo0MSAyMDA4ICswMTAwCgogICAgbWdjb2dlOiB1cGRhdGUgYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIGFkZCBzdXBwb3J0IGZvciB0aGUgY29uZmlnIEZsYXNoLgogICAgaW5pdGlhbGl6ZSB0aGUgVVBJT3ggY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyNzBmZTI2MWI3ZjkyOTI4MDBiMmIzZDFiZjE5YWU3Y2JjODgwMjU4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciA3IDEyOjI3OjMxIDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBtYWtlIGR0YiBiYXNlbmFtZSBmaWxlIHJlZmVyZW5jZXMgZXF1YWwgdGhvc2Ugb2YgbGludXgKCiAgICB0aGUgZHRzIGZpbGUgYmFzZW5hbWVzIHdlcmUgdXBkYXRlZCBpbiBsaW51eCAtIHRoaXMgaGVscHMgYXZvaWQKICAgIGluYWR2ZXJ0ZW50bHkgbG9hZGluZyBhbnkgb2xkIGR0YnMgbGF5aW5nIGFyb3VuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYzMGI2MTU0ZjE2ZjVmZmE0YTlmNWJmY2E1ZTExNGQ3MmI2ZWY2NzUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDI3IDE2OjA4OjIyIDIwMDggLTA2MDAKCiAgICBuZXQ6IHVlY19waHk6IGFjdHVhbGx5IGluY3JlbWVudCB0aGUgdGltZW91dCBjb3VudGVyCgogICAgYWxsb3cgdS1ib290IHRvIHJlY292ZXIgKGFuZCwgZS5nLiwgc3dpdGNoIHRvIGFub3RoZXIgaW50ZXJmYWNlKSBpbiB0aGUKICAgIGNhc2Ugd2hlcmUgYSBQSFkgZG9lcyBub3QgcmVwb3J0IGF1dG9uZWdvdGlhdGlvbiBpcyBjb21wbGV0ZSB3aXRoaW4gaXRzCiAgICB0d28gc2Vjb25kIHRpbWVvdXQgdmFsdWUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NzIwMDNlNDM5NTdlZTBjODk1YWJlZDdjZDgyY2JlNzI4MjBjYmI4CkF1dGhvcjogTWFya3VzIEJydW5uZXIgPHN1cGVyLmZpcmV0d2lzdGVyQGdvb2dsZW1haWwuY29tPgpEYXRlOglXZWQgTWFyIDUgMjE6Mzg6MTIgMjAwOCArMDEwMAoKICAgIGZpeCB0YWlodSBzb2Z0IHNwaV9yZWFkCgogICAgVGhlIHRhaWh1IGJvYXJkIHVzZWQgZ3Bpb19yZWFkX291dF9iaXQgd2hpY2ggcmVhZHMgdGhlIG91dHB1dCByZWdpc3RlciBhbmQgbm90CiAgICB0aGUgcGluIHN0YXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnbWFpbC5jb20+Cgpjb21taXQgZmM4NGE4NDk1YWM3NTBmNmI0YWRhZTgxZjhjNGYxMDBmNjViNjM0MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciA3IDA4OjAxOjQzIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFNlcXVvaWE6IEFkZCBkZXZpY2UgdHJlZSAoZmR0KSBMaW51eCBib290aW5nIGRlZmF1bHQgZW52IHZhcmlhYmxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiZDQ0NThjYjQ3YWJlY2FiZDQwNmIxMjEwNDU3YmU5NmM2OWZjNDlkCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDQgMTY6NTk6MjIgMjAwOCArMDgwMAoKICAgIDgzN3hFTURTOiBJbXByb3ZlIHRoZSBzeXN0ZW0gcGVyZm9ybWFuY2UKCiAgICAxLiBNYWtlIHRoZSBDU0IgYnVzIHBpcGVsaW5lIGRlcHRoIGFzIDQsIGFuZCBlbmFibGUKICAgICAgIHRoZSByZXBlYXQgbW9kZTsKICAgIDIuIFJhaXNlIHRoZSBlVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHk7CiAgICAzLiBVc2UgdGhlIGhpZ2hlc3QgSVAgYmxvY2tzIGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDhhYjU4YjIxMjQ4MWIxYzU3OTQ3ZWEyMWFhOTZjNGNlODAwZDBiNApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDYgMTY6NDU6NTMgMjAwOCArMDEwMAoKICAgIFJlcGxhY2UgInJ1biBsb2FkOyBydW4gdXBkYXRlIiB3aXRoIGNvbmRpdGlvbmFsaXplZCAicnVuIGxvYWQgdXBkYXRlIi4KCiAgICBUaGUgbGF0dGVyIHZlcnNpb24gc3RvcHMgd2hlbiAicnVuIGxvYWQiIGZhaWxzIGZvciB3aGF0ZXZlciByZWFzb25zCiAgICByZW5kZXJpbmcgdGhlIGNvbWJpbmF0aW9uICphIGxvdCogbW9yZSBzZWN1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNmJjMTEzODg2ZDdkMzE2ZGYxYTRlNDU5YmVjOGJhZjAyNzUxODU1MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDE3OjQwOjQxIDIwMDggKzAxMDAKCiAgICBuZXQ6IFByaW50IGVycm9yIG1lc3NhZ2UgdXBvbiBuZXQgdXNhZ2Ugd2hlbiBubyBldGhlcm5ldC1pbnRlcmZhY2UgaXMgZm91bmQKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSBzZWVuIG9uIFBQQzR4eCBib2FyZHMsIHdoZW4gbm8gTUFDIGFkZHJlc3MgaXMKICAgIGRlZmluZWQuIFRoZW4gbm8gZXRoZXJuZXQgaW50ZXJmYWNlIGlzIGF2YWlsYWJsZSBidXQgYSBzaW1wbGUgInRmdHAiCiAgICBjb21tYW5kIHdpbGwgcmV0dXJuIHdpdGhvdXQgYW55IGVycm9yIG1lc3NhZ2Ugd2hpY2ggaXMgcXVpdGUgY29uZnVzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhMzBhNTQ5YTM1NTMwMzJkODA5ZTAzNTYzMDZiNjJkZTBiMTI1OTAxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciA0IDEwOjAzOjAzIDIwMDggLTA2MDAKCiAgICBSZW1vdmUgZXJyb25lb3VzIG9yIGV4dHJhIHNwZC5oICNpbmNsdWRlcnMuCgogICAgTWFueSBvZiB0aGUgc3BkLmggI2luY2x1ZGVycyBkb24ndCBuZWVkIGl0LAogICAgYW5kIHdhbnRlZCB0byBoYXZlIHNwZF9zZHJhbSgpIGRlY2xhcmVkIGluc3RlYWQuCiAgICBTaW5jZSB0aGV5IGRpZG4ndCBnZXQgdGhhdCwgc29tZSBhbHNvIGhhZCBvcGVuCiAgICBjb2RlZCBleHRlcm4gZGVjbGFyYXRpb25zIG9mIGl0IGluc3RlYWQgb3IgYXMgd2VsbC4KICAgIEZpeCBpdCBhbGwgdXAgYnkgdXNpbmcgc3BkX3NkcmFtLmggd2hlcmUgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTQ0NzUzODZjZWYxNGFmM2ZkODhmMDUxOGI2ODhlNzU1NjY5NDg2ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNzo0MToyOCAyMDA4ICswMTAwCgogICAgUENTNDQwRVA6IGZpeCBidWlsZCBwcm9ibGVtcyAocmVkdW5kYW50ICNkZWZpbmUpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlODVlMmZhODVlYzA5YTZmYWMyODQ2ZDFkODgxZDg3MzdlMmJiZGE5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTc6Mzk6MjUgMjAwOCArMDEwMAoKICAgIG5ldDogUHJpbnQgZXJyb3IgbWVzc2FnZSB1cG9uIG5ldCB1c2FnZSB3aGVuIG5vIGV0aGVybmV0LWludGVyZmFjZSBpcyBmb3VuZAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHNlZW4gb24gUFBDNHh4IGJvYXJkcywgd2hlbiBubyBNQUMgYWRkcmVzcyBpcwogICAgZGVmaW5lZC4gVGhlbiBubyBldGhlcm5ldCBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIGJ1dCBhIHNpbXBsZSAidGZ0cCIKICAgIGNvbW1hbmQgd2lsbCByZXR1cm4gd2l0aG91dCBhbnkgZXJyb3IgbWVzc2FnZSB3aGljaCBpcyBxdWl0ZSBjb25mdXNpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM4NGZhYWFmYjk5OWNhZTNjZTQ0N2M5M2UyOGEwYjdlMmU1ZmVmNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTc6Mzg6NTAgMjAwOCArMDEwMAoKICAgIFc3T0xNQy9XN09MTUc6IGZpeCBidWlsZCBwcm9ibGVtcyAocmVkdW5kYW50ICNkZWZpbmUpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmOTMwMWUxY2RhMjk2MjQ1YmEwNTJkN2IwODMyMTE5OWMzZDBhZjlkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDE0OjU4OjMxIDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogZml4IHByb2JsZW0gd2l0aCBvdXQtb2YtdHJlZSBidWlsZHMgaW50cm9kdWNlZCBieSA1MDEzYzA5ZgoKICAgIENvbW1pdCA1MDEzYzA5ZiAoTWFrZWZpbGU6IGNsZWFudXAgImNsZWFuIiB0YXJnZXQpIGludHJvZHVjZWQgYQogICAgcHJvYmxlbSBmb3Igb3V0LW9mLXRyZWUgYnVpbGRzIHdoaWNoIGNhdXNlZCAibWFrZSBjbGVhbiIgdG8gZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRmZWNlOTUwMDU1NmJlZDVkODI0NGIxYzE1ZDk3M2NlYzdjMjViZmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTE6NTg6MjYgMjAwOCArMDEwMAoKICAgIGV4YW1wbGVzL01ha2VmaWxlOiBidWlsZCAiaGVsbG9fd29ybGQiIG9uIDh4eCwgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzRlYjAyMjI1OTRmZDIzYWFmZGYxNjhlNjBlODcyODE0ZWVhOGI2MgpBdXRob3I6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgpEYXRlOglNb24gTWFyIDMgMTU6Mjc6MDUgMjAwOCAtMDUwMAoKICAgIFBQQzR4eCAoU2VxdW9pYSk6IEZpeCBFdGhlcm5ldCAicmVtb3RlIGZhdWx0IiBwcm9ibGVtcwoKICAgIEV2ZXJ5IG5vdyBhbmQgdGhlbiBhIFNlcXVvaWEgYm9hcmQgKG9yIGVxdWl2YWxlbnQgaGFyZHdhcmUpIGhhZAogICAgcHJvYmxlbXMgY29ubmVjdGluZyB0byBhIEdpZ2FiaXQgY2FwYWJsZSBuZXR3b3JrIGludGVyZmFjZS4KCiAgICBUaGVyZSB3ZXJlIGRpZmZlcmVuY2VzIGluIHRoZSBQSFkgc2V0dXAgYmV0d2VlbiBMaW51eCBhbmQgVS1Cb290LgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0uIEFwcGFyZW50bHkgInJlbW90ZSBmYXVsdCIgaXMgYmVpbmcgc2V0LAogICAgd2hpY2ggc2lnbmFscyB0byBzb21lIGRldmljZXMgKG9uIHRoZSBvdGhlciBlbmQgb2YgdGhlIGNhYmxlKSB0aGF0IGEKICAgIGZhdWx0IGhhcyBvY2N1cnJlZCwgd2hpbGUgb3RoZXIgZGV2aWNlcyBpZ25vcmUgaXQuIEkgYmVsaWV2ZSB0aGUgUkYgYml0CiAgICB3YXMgY2F1c2luZyB0aGUgaXNzdWUsIGJ1dCBJIHJlbW92ZWQgVDQgYWxzbywgdG8gbWF0Y2ggdXAgd2l0aCBMaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KCmNvbW1pdCA0OTFmYjZkZWE5ZjUyZmRiOWNiNTk5NmU4ZTk3OGI5ZTk2ODUxNzlmCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAzIDA5OjU4OjUyIDIwMDggLTA2MDAKCiAgICBmaXggUUUgZmlybXdhcmUgdXBsb2FkaW5nIGxpbWl0CgogICAgRml4IGEgdHlwbyBpbiBxZV91cGxvYWRfZmlybXdhcmUoKSB0aGF0IHByZXZlbnRlZCB1cGxvYWRpbmcgZmlybXdhcmUgb24KICAgIHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gb25lIFJJU0MgY29yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQyYmE1OGUwYzMwMmIzMzlhM2MyZmFhNjAwNmEwMTNjNmYxODZiN2EKQXV0aG9yOiBCZXJuaGFyZCBOZW1lYyA8Ym5lbWVjQGdhbnNzbG9zZXIuY29tPgpEYXRlOglNb24gTWFyIDMgMTE6NTc6MjMgMjAwOCArMDAwMAoKICAgIEZpeCBlbmRpYW5lc3MgcHJvYmxlbSBpbiBjcmFtZnMgY29kZSAoY3JhbWZzIGlzIGFsd2F5cyBob3N0LWVuZGlhbiBpbiBMaW51eCkKCiAgICBPcmlnaW5hbGx5IHBvaW50ZWQgb3V0IGJ5IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAdGJveC5iaXo+LAogICAgc2VlIGh0dHA6Ly90aHJlYWQuZ21hbmUub3JnL2dtYW5lLmNvbXAuYm9vdC1sb2FkZXJzLnUtYm9vdC8yMjg0NgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlcm5oYXJkIE5lbWVjIDxibmVtZWMgPGF0PiBnYW5zc2xvc2VyLmNvbT4KCmNvbW1pdCA4NGQwYzJmMWUzOWNhZmY1OGJmNzY1YTdhYjdjNzJkYTIzYzI1ZWM4CkF1dGhvcjogS2ltIEIuIEhlaW5vIDxLaW0uSGVpbm9AYmx1ZWdpZ2EuY29tPgpEYXRlOglNb24gTWFyIDMgMTA6Mzk6MTMgMjAwOCArMDIwMAoKICAgIGZpeCBjb3B5IGZyb20gcmFtIHRvIGRhdGFmbGFzaAoKICAgIElmIEkgdHJ5IHRvICJjcC5iIDxyYW0+IDxkYXRhZmxhc2g+IiwgdS1ib290IHNlbGVjdHMgbm9ybWFsIGZsYXNoCiAgICByb3V0aW5lcyBpbnN0ZWFkIG9mIGRhdGFmbGFzaC4gVGhpcyBpcyBiZWNhdXNlIGl0IGNoZWNrcyAiaWYgc291cmNlCiAgICBhZGRyZXNzIGlzIG5vdCBkYXRhZmxhc2giIGluc3RlYWQgb2YgdGFyZ2V0IGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIEIuIEhlaW5vIDxLaW0uSGVpbm9AYmx1ZWdpZ2EuY29tPgoKY29tbWl0IDMyYmYzZDE0M2E4ODhmOGRlYWNmZGNjOTdlODk4ZjZjMDZkMGFlYTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDMgMTI6MTY6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBxdW90aW5nIHByb2JsZW0gKHByZWJvb3Qgc2V0dGluZykgaW4gbWFueSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YjBiMmI2ZmM5ZmUyMmUzODY0YzJhNTczMTZkOTFhMjUwN2VjMjE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzIDEyOjM2OjQ5IDIwMDggKzAxMDAKCiAgICBBRFM1MTIxOiBGaXggZGVmYXVsdCBlbnZpcm9ubWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkxYzgyMDc2YWU0OTJiYjFmOWQ5YzQ3YTQ4MTMxNDYzMWQzMmRjOGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDIgMTY6MTI6MzEgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBGaXggbWlzc2luZyB1bmNvbmZpZyBhbmQgbWtjb25maWcgdXNlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4Y2U0ZTVjMmMwMmNiN2U4YWRkZGY3YjY1MWQzMDUwZDgxY2U0YzFkCkF1dGhvcjogbWljaGFlbCA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVN1biBNYXIgMiAyMzozMzo0NiAyMDA4ICswMTAwCgogICAgRml4IGNoZWNraW5nIGZhdDMyIGNsdXN0ZXIgc2l6ZS4KCiAgICBUaGlzIGZpeGVzIHRoZSBjbHVzdGVyIHNpemUgdGVzdHMgaW4gdGhlIEZBVDMyIGZpbGUgc3lzdGVtLgogICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgVkZBVCBzdXBwb3J0IGRvZXNuJ3Qgd29yayBpZiB0aGUKICAgIHJlZmVycmVkIGNsdXN0ZXIgaGFzIGFuIG9mZnNldCA+IDE2Yml0IHJlcHJlc2VudGF0aW9uLCBjYXVzaW5nCiAgICAiZmF0bG9hZCIgYW5kICJmYXRscyIgY29tbWFuZHMgZXRjLiB0byBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IG1pY2hhZWwgdHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KCmNvbW1pdCA2NjFiYWQ2M2EwNzZhOTZjMzljNjRmMTM2OTE1ZjE0NjcyNWFmOTJiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAyIDIyOjU3OjIzIDIwMDggKzAxMDAKCiAgICBQcmVwYXJlIHYxLjMuMi1yYzIgcmVsZWFzZSBjYW5kaWRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc2OTU3Y2IzZDYyMWJmNjY0MzExOTA4ZTU5NjJlMTUxYzYzM2MyODUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMSAxMjoxMTo0MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBFTUFDOiBGaXggNDA1RVogZmlmbyBzaXplIHNldHVwIGluIEVNQUNfTVIxCgogICAgVGhlIDQwNUVaIG9ubHkgc3VwcG9ydHMgNTEyIGJ5dGVzIG9mIHJ4LS90eC1maWZvIEVNQUMgc2l6ZXMuIEJ1dAogICAgY3VycmVudGx5IDRrLzJrIGlzIGNvbmZpZ3VyZWQuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZS4KCiAgICBUaGFua3MgdG8gVGhvbWFzIEtpbmRsZXIgPHRraW5kbGVyQGxlbm9yZC5kZT4gZm9yIHBvaW50aW5nIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMTg5NzhjOGViNDM4MDNlMjc5NDIzMzkyMmRmNDI0OWZhMjc4YjgzCkF1dGhvcjogV29vZHJ1ZmYsIFJpY2hhcmQgPHItd29vZHJ1ZmYyQHRpLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNzozNDozNSAyMDA4IC0wNjAwCgogICAgRml4IGFsaWdubWVudCBlcnJvciBvbiBBUk0gZm9yIG1vZHVsZXMKCiAgICBGaXggYWxpZ25tZW50IGZhdWx0IG9uIEFSTSB3aGVuIHJ1bm5pbmcgbW9kdWxlcy4gIFdpdGggb3V0IGFuIGV4cGxpY2l0CiAgICBsaW5rZXIgZmlsZSBnY2M0LjIuMSB3aWxsIGhhbGYgd29yZCBhbGlnbiBfX2Jzc19zdGFydCdzIHZhbHVlLiAgVGhlIHdvcmQKICAgIGRlcmVmZXJlbmNlIHdpbGwgY3Jhc2ggaGVsbG9fd29ybGQuCgogICAgc2lnbmVkLW9mZi1ieSBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Cgpjb21taXQgY2UxMTIwZGQ3MDNlNmYxMmM1OWU0ZWJhOTk2MjM1NmEwMzAwYjgzMgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNzo0NTozMSAyMDA4ICswODAwCgogICAgZnM6IEZpeCBleHQyIHJlYWQgaXNzdWUKCiAgICBUaGUgZXh0MiBhbGlnbmVkIHByb2Nlc3Mgd2lsbCBjb3JydXB0IHRoZSBrZXkKICAgIGRhdGEgc3RydWN0LCB0aGUgcGF0Y2ggZml4IHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDEzYzA5ZjdhNTY3NTk1MmEzY2E4OGI2YmM2YzkyNGU2M2FmMzNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAyIDIyOjQ1OjMzIDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogY2xlYW51cCAiY2xlYW4iIHRhcmdldAoKICAgIE1ha2Ugc3VyZSBDRFBBVEggc2V0dGluZ3MgY2Fubm90IGludGVyZmVyZS4KICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZmRhNTg2ZmMxMzczMjQzYzk3OTRiYWJkZTY5NTAwZjYyOTNhOGQ4CkF1dGhvcjogTGkgWWFuZyA8bGVvbGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxMTo0NjowNSAyMDA4ICswODAwCgogICAgYWRkIGNzY29wZSBidWlsZCB0YXJnZXQKCiAgICBBZGQgY3Njb3BlIGJ1aWxkIHRhcmdldCB0byBnZW5lcmF0ZSBjc2NvcGUgZGF0YWJhc2UgZm9yIGNvZGUgYnJvd3NpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTGkgWWFuZyA8bGVvbGlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjU1YWRlZjY1ZTRjZjZiOTI5MDU0YjA0OWVlMTlhZTliNWNjYmUyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxNTowNjozOSAyMDA4IC0wNjAwCgogICAgbmV0OiB1ZWNfcGh5OiBoYW5kbGUgODhlMTExMSByZXYuQjIgZXJyYXR1bSA1LjYKCiAgICBlcnJhdHVtIDUuNiBzdGF0ZXMgdGhlIGF1dG9uZWcgY29tcGxldGlvbiBiaXQgaXMgZnVuY3Rpb25hbCBvbmx5IGlmIHRoZQogICAgYXV0b25lZyBiaXQgaXMgYXNzZXJ0ZWQuCgogICAgVGhpcyBmaXhlcyBhbnkgc2Vjb25kYXJpbHktaXNzdWVkIG5ldHdvcmtpbmcgY29tbWFuZHMgb24gbm9uLWdpZ2FiaXQKICAgIGxpbmtzIG9uIHRoZSBtcGM4MzYwIG1kcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmOTFkYjdmNTgyY2ExN2IxZjE5ZjEwMTg5YzAyNTY5NmYzMzNkMmUKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAyNiAwOTozODoxNCAyMDA4IC0wNzAwCgogICAgTVBDNTEyMWUgQURTIFBDSSBzdXBwb3J0IHRha2UgMwoKICAgIEFkZHMgUENJIHN1cHBvcnQgZm9yIE1QQzUxMjEKCiAgICBUZXN0ZWQgd2l0aCBkcml2ZXJzL25ldC9ydGw4MTM5LmMKCiAgICBTdXBwb3J0IGlzIGNvbmRpdGlvbmFsIHNpbmNlIFBDSSBvbiBvbGQgc2lsaWNvbiBkb2VzIG5vdCB3b3JrLgoKICAgIGFkczUxMjFfUENJX2NvbmZpZyB0dXJucyBvbiBQQ0kKCiAgICBJbiB0aGlzIHZlcnNpb24sIGNvbmRpdGlvbiBjb21waWxhdGlvbiBvZiBQQ0kgY29kZSBoYXMgYmVlbiBtb3ZlZAogICAgZnJvbSBpZmRlZiBpbiBib2FyZC9hZHM1MTIxL3BjaS5jIHRvIGJvYXJkL2FkczUxMjEvTWFrZWZpbGUgYXMKICAgIHN1Z2dlc3RlZCBieSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0YjRkYmVkNDEzM2Y2NTc3MDViN2M1MTkzMjA5ZGE5OTc4MjQzYTcKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMjUgMjM6NTM6MDcgMjAwOCArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxhdGlvbiBvZiBwb3N0L2RyaXZlcnMvbWVtb3J5LmMKCiAgICBGaXggd2FybmluZ3Mgd2hpbGUgY29tcGlsYXRpb24gd2l0aCBuZXcgZ2NjIGluIGVsZGstNC4yCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDRmYWUzNWE1M2IzZTk1ODI1NGQ2NTc0YTFjYzdlMTA4MTFmYzY3MjYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMjUgMjA6NTQ6MDQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gNHh4X2VuZXQuYyBkcml2ZXIKCiAgICBVLUJvb3QgY3Jhc2hlcyBpbiB0aGUgbmV0IGxvb3AgaWYgQ09ORklHXzR4eF9EQ0FDSEUgaXMKICAgIGVuYWJsZWQuIFRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSBlbnN1cmUgdGhhdCAnZXRocm90YXRlJwogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXNuJ3Qgc2V0IHRvICJubyIgYW5kIHRoZW4gcnVuCiAgICAidGZ0cCAyMDAwMDAgbm90X2V4aXN0ZW50X2ZpbGUiLgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBmaXggdGhlIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA2MGVjNjU0YzVlYjgwZDBmZTBjMzhhM2JkNDIxNDAyMTViYzA2NDg0CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglNb24gRmViIDI1IDIwOjA0OjIwIDIwMDggKzAxMDAKCiAgICBQT1NUOiBEaXNhYmxlIGNhY2hlIHdoaWxlIFNQUiBQT1NUCgogICAgQ3VycmVudGx5IChzaW5jZSBjb21taXQgYjJlMjE0MmMpIHUtYm9vdCBjcmFzaGVzIG9uCiAgICBzZXF1b2lhIGJvYXJkIHdoaWxlIFNQUiB0ZXN0IGlmIENPTkZJR180eHhfRENBQ0hFIGlzCiAgICBlbmFibGVkLiBUaGlzIHBhdGNoIGRpc2FibGVzIHRoZSBjYWNoZSB3aGlsZSBTUFIgdGVzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgYzMxM2IyYzZjNTU1ZTdkODllYzU5YmQ1MWM1OWFiMTY0YWQwMTA1ZApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gRmViIDI1IDE3OjUyOjQwIDIwMDggKzAxMDAKCiAgICBUUU01MjAwOiB1c2UgYXV0b21hdGljIGZkdCBtZW1vcnkgZml4dXAgKHBhcnQgMikKCiAgICBDYWxsIGZkdF9maXh1cF9tZW1vcnkoKSBvbiB0aGUgYm9hcmRzIFRRTTUyMDAsIFRRTTUyMDBfQiwgVFFNNTIwMFMsCiAgICBUQjUyMDAgYW5kIFRCNTIwMF9CIHRvIGZpeHVwIHRoZSAvbWVtb3J5IG5vZGUgd2l0aCB0aGUgbWVtb3J5IHZhbHVlcwogICAgZGV0ZWN0ZWQgYnkgVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDQ0Y2VlYzI1M2VhOTQxYjMwMWFiZjRiMDc5ZDUyMzI0ZGVmNjlkOTIKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIEZlYiAyNSAxNToxNzowNSAyMDA4ICswMTAwCgogICAgVFFNNTIwMDogdXNlIGF1dG9tYXRpYyBmZHQgbWVtb3J5IGZpeHVwCgogICAgQ2FsbCBmZHRfZml4dXBfbWVtb3J5KCkgb24gdGhlIGJvYXJkcyBUUU01MjAwLCBUUU01MjAwX0IsIFRRTTUyMDBTLAogICAgVEI1MjAwIGFuZCBUQjUyMDBfQiB0byBmaXh1cCB0aGUgL21lbW9yeSBub2RlIHdpdGggdGhlIG1lbW9yeSB2YWx1ZXMKICAgIGRldGVjdGVkIGJ5IFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBmM2EzMjlhY2IyNjAxN2Q4ZTEwZTljOTNlMWU3MjZjMmE1YWM2MzRhCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBGZWIgMjUgMTM6Mjc6NTIgMjAwOCArMDEwMAoKICAgIFRRTTUyMDA6IGZpeCBidWcgaW4gU0RSQU0gaW5pdGlhbGl6YXRpb24gY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIFNEUkFNIGluaXRpYWxpemF0aW9uIGNvZGUgZm9yIHRoZQogICAgVFFNNTIwMC4gVGhlIGhpX2FkZHIgYml0IGlzIG5vdyBzZXQgY29ycmVjdGx5LiBXaXRob3V0IHRoaXMgcGF0Y2gKICAgIHRoZSBoaV9hZGRyIGJpdCBpcyBhbHdheXMgc2V0IHRvIDEsIGlmIHRoZSBzZWNvbmQgU0RSQU0gYmFuayBpcwogICAgbm90IHBvcHVsYXRlZC4KCiAgICBGb3Igb3RoZXIgTVBDNTIwMCBib2FyZHMgYSBjb3JyZXNwb25kaWcgcGF0Y2ggaGFzIGFscmVhZHkgYmVlbiBhcHBsaWVkCiAgICBzb21lIHRpbWUgYWdvLCBzZWUgY29tbWl0IGE2MzEwOTI4MWFkNDFiMGZiNDg5ZmRjYjkwMTE3MWY3NmJjZGJjMmMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICAtLQogICAgRm9yZ2V0IHRoZSBmaXJzdCBwYXRjaCBwbGVhc2UuIEkgY29uZnVzZWQgZmxhc2ggd2l0aCBTRFJBTSBpbgogICAgdGhlIGNvbW1lbnQgLi4uCgpjb21taXQgMjE3YmY2YjZhMzEzZDljY2I2MTlhNGRiYzA5ZjczZjc3Y2Q0OGRmMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMDA6MDM6MTIgMjAwOCArMDEwMAoKICAgIG14MWZzMi9mbGFzaDogRml4IG11bHRpcGxlIGNvbXBpbGVyIHdhcm5pbmdzCgogICAgInBvaW50ZXIgdGFyZ2V0cyBpbiBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzIgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTU5OWMyOGNlZjU1YmU0MmE4Y2E2ZmE4MDg2YjFhNDRlNTZhODVkMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMDA6MDM6MTEgMjAwOCArMDEwMAoKICAgIGFybS1pbXg6IEZpeCByZWdpc3RlciBkZWZpbml0aW9ucwoKICAgIFN5bmMgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgd2l0aCBsaW51eAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzliY2Y3NWZlY2M1ODg4NmFmNzdkMmE1NzFjZmYyZWFiMzllYWI2ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMDA6MDM6MTAgMjAwOCArMDEwMAoKICAgIGFjdHVhMS9hY3R1YTIvYWN0dWEzOiBGaXggbXVsdGlwbGUgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzCgogICAgLSBhY3R1YTE6CglhY3R1eDEuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgxLmM6OTI6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCgogICAgLSBhY3R1YTI6CglhY3R1eDIuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgyLmM6MTAwOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3MnCglhY3R1eDIuYzo5OTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCWFjdHV4Mi5jOiBJbiBmdW5jdGlvbiAncmVzZXRfcGh5JzoKCWFjdHV4Mi5jOjEzMDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJwoKICAgIC0gYWN0dWEzOgoJYWN0dXgzLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4My5jOjExNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY4ZmE2MzY4YTZhMGMwMjE2NGRhOGUyZjUyZjE4ZDQ1N2M2OTc3YmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTdW4gRmViIDI0IDExOjQ0OjI5IDIwMDggKzA5MDAKCiAgICBSZW1vdmUgdGhlIF9fU1RSSUNUX0FOU0lfXyBjaGVjayBmcm9tIHRoZSBfX3U2NC9fX3M2NCBkZWNsYXJhdGlvbiBvbiAzMmJpdCB0YXJnZXRzLgoKICAgIFRoZSBwcmV2aW91cyBwYXRjaCB3YXMgbGFja2luZyBvZiBpMzg2LCBtaWNyb2JsYXplLCBuaW9zIGFuZCBuaW9zMi4gVGhpcwogICAgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwNWUwN2IxZWEyMjg0NGU5NDZjZmNmN2Q1ZThhMDE5OWQxOGQyYTk1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAyMjoyMjo0NiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBGRFQgYmxvYiB0b3RhbHNpemUgY2FsY3VsYXRpb24gaW4gYm9vdF9yZWxvY2F0ZV9mZHQoKQoKICAgIERvIG5vdCB1c2UgZ2xvYmFsIGZkdCBibG9iIHBvaW50ZXIsIGNhbGN1bGF0ZSBibG9iIHNpemUgZnJvbSByb3V0aW5lCiAgICBhcmd1bWVudCBibG9iIHBvaW50ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkMWNjNTI4NzljODk2NjUwN2RhZDlmYjU3NTQ4MWU2ZDM5ODVlNjRlCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVR1ZSBGZWIgMTIgMDA6NTg6MzEgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogQWRkIGFuZCB1c2UgYSBub2RlIGl0ZXJhdGlvbiBoZWxwZXIgZnVuY3Rpb24uCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGZkdF9uZXh0X25vZGUoKSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCB0bwogICAgaXRlcmF0ZSB0aHJvdWdoIG5vZGVzIG9mIHRoZSB0cmVlIHdoaWxlIGtlZXBpbmcgdHJhY2sgb2YgZGVwdGguICBUaGlzCiAgICBmdW5jdGlvbiBpcyB1c2VkIHRvIHNpbXBsaWZ5IHRoZSBpdGVyYXRpb24gY29kZSBpbiBhIGxvdCBvZiBvdGhlcgogICAgZnVuY3Rpb25zLCBhbmQgaXMgYWxzbyBleHBvcnRlZCBmb3IgdXNlIGJ5IGxpYnJhcnkgdXNlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgOGNmMzA4MDlhODI5MDJhNDcxODY2ZDJmMDc3MjVjZTNiOGEyMjI5MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTY6MDA6MjQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbGliZmR0IHN1cHBvcnQgdG8gbWtpbWFnZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTZlNTMwZjAwZDMxYTg0OTRhMDQyMjc5OWIyYjlhNjkyYTljMGViOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTY6MDA6MjMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgc2hhMS5vIG9iamVjdCB0byBta2ltYWdlIGJpbmFyeSBidWlsZAoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZGY2ZjFiODk1Yzk5Nzk3OGYwM2FmZTA0NTAyZWU3NmI3YmEzNGFiOQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTY6MDA6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggY29tcG9uZW50IGhhbmRsaW5nIGZvciBsZWdhY3kgbXVsdGkgY29tcG9uZW50IGltYWdlcwoKICAgIFVzZSB1aW50MzJfdCB3aGVuIGFjY2Vzc2luZyBzaXplIHRhYmxlIGluIGltYWdlX211bHRpX2NvdW50KCkgYW5kCiAgICBpbWFnZV9tdWx0aV9nZXRpbWcoKSBmb3IgbXVsdGkgY29tcG9uZW50IGltYWdlcy4KCiAgICBBZGQgbWlzc2luZyB1aW1hZ2VfdG9fY3B1KCkgZW5kaWFubmVzcyBjb252ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNTcwYWJiMGFkMTIwZjYwMDJiY2FhM2NmNmYzMmJkNGNhMmUxYjI0OApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTU6NTk6NTkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBTaGFyZSBjb21tb24gdUltYWdlIGNvZGUgYmV0d2VlbiBta2ltYWdlIGFuZCBVLWJvb3QKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGZvbGxvd2luZyBjb21tb24gcm91dGluZXM6CgogICAgMSkgRGVkaWNhdGVkIG1raW1hZ2UgcHJpbnRfaGVhZGVyKCkgaXMgcmVwbGFjZWQgd2l0aCBjb21tb24KICAgIGltYWdlX3ByaW50X2NvbnRlbnRzKCkKICAgIGltYWdlX3ByaW50X2NvbnRlbnRzX25vaW5kZW50KCkKCiAgICAyKSBDb21tb24gb3MvYXJjaC90eXBlL2NvbXAgZmllbGRzIG5hbWUgPC0tPiBpZCB0cmFuc2xhdGlvbiByb3V0aW5lcwogICAgZ2VuaW1nX2dldF9vc19uYW1lKCkKICAgIGdlbmltZ19nZXRfYXJjaF9uYW1lKCkKICAgIGdlbmltZ19nZXRfdHlwZV9uYW1lKCkKICAgIGdlbmltZ19nZXRfY29tcF9uYW1lKCkKICAgIGdlbmltZ19nZXRfb3NfaWQoKQogICAgZ2VuaW1nX2dldF9hcmNoX2lkKCkKICAgIGdlbmltZ19nZXRfdHlwZV9pZCgpCiAgICBnZW5pbWdfZ2V0X2NvbXBfaWQoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOWE0ZGFhZDBhMzVlYjUxNDMwMzdlZWE5Zjc4NmEzZTlkNjcyYmRkNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTQ6NTg6MzQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBVcGRhdGUgbmFtaW5nIGNvbnZlbnRpb24gZm9yIGJvb3RtL3VJbWFnZSByZWxhdGVkIGNvZGUKCiAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGZvbGxvd2luZyBwcmVmaXggY29udmVudGlvbiBmb3IgdGhlCiAgICBpbWFnZSBmb3JtYXQgaGFuZGxpbmcgYW5kIGJvb3RtIHJlbGF0ZWQgY29kZToKCiAgICBnZW5pbWdfCQktIGR1YWwgZm9ybWF0IHNoYXJlZCBjb2RlCiAgICBpbWFnZV8JCS0gbGVnYWN5IHVJbWFnZSBmb3JtYXQgc3BlY2lmaWMgY29kZQogICAgZml0XwkJLSBuZXcgdUltYWdlIGZvcm1hdCBzcGVjaWZpYyBjb2RlCiAgICBib290XwkJLSBib290aW5nIHByb2Nlc3MgcmVsYXRlZCBjb2RlCgogICAgUmVsYXRlZCByb3V0aW5lcyBhcmUgcmVuYW1lZCBhbmQgYSBmZXcgcGllY2VzIG9mIGNvZGUgYXJlIG1vdmVkIGFyb3VuZCBhbmQKICAgIHJlLWdyb3VwZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NWZhMDAyYzQ3MTcxYjczZmI0YzFmMmMyZmU0ZDYzOTFjMTM2Mjc2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo1MSAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIFJlc3BlY3QgYXV0b3N0YXJ0IHNldHRpbmcgaW4gbGludXggYm9vdG0KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDNmMmZhMGQyNzg0NjdiMjIzMmU0ZWIyMzcyZjkwNWMzZmViZmJlYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NTAgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBQcm92aWRlIGFiaWxpdHkgdG8gcmVzdHJpY3QgcmVnaW9uIHVzZWQgZm9yIGJvb3QgaW1hZ2VzCgogICAgQWxsb3cgdGhlIHVzZXIgdG8gc2V0ICdib290bV9sb3cnIGFuZCAnYm9vdG1fc2l6ZScgZW52IHZhcnMgYXMgYSB3YXkKICAgIHRvIHJlc3RyaWN0IHdoYXQgbWVtb3J5IHJhbmdlIGlzIHVzZWQgZm9yIGJvb3RtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlODIyZDdmYzRkZDQ3NTVkNGQwYTIyZjA1ZTMzZjMzZDFhMDQ4MWRhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0OSAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIFVzZSBsbWIgZm9yIGJvb3RtIGFsbG9jYXRpb25zCgogICAgQ29udmVydCBnZW5lcmljIHJhbWRpc2tfaGlnaCgpLCBnZXRfYm9vdF9jbWRsaW5lKCksIGdldF9ib290X2tiZCgpCiAgICBmdW5jdGlvbnMgb3ZlciB0byB1c2luZyBsbWIgZm9yIGFsbG9jYXRpb24gb2YgdGhlIHJhbWRpc2ssIGNvbW1hbmQgbGluZQogICAgYW5kIGtlcm5lbCBiZCBpbmZvLgoKICAgIENvbnZlcnQgUFBDIHNwZWNpZmljIGZkdF9yZWxvY2F0ZSgpIHRvIHVzZSBsbWIgZm9yIGFsbG9jYXRpb24gb2YgdGhlIGRldmljZQogICAgdHJlZS4KCiAgICBQcm92aWRlZCBhIHdlYWsgZnVuY3Rpb24gdGhhdCBib2FyZCBjb2RlIGNhbiBjYWxsIHRvIGRvIGFkZGl0aW9uYWwKICAgIGxtYiByZXNlcnZlcyBpZiBuZWVkZWQuCgogICAgQWxzbyBpbnRyb2R1Y2UgdGhlIGNvbmNlcHQgb2YgYm9vdG1hcF9iYXNlIHRvIHNwZWNpZnkgdGhlIG9mZnNldCBpbgogICAgcGh5c2ljYWwgbWVtb3J5IHRoYXQgdGhlIGJvb3RtYXAgaXMgbG9jYXRlZCBhdC4gIFRoaXMgaXMgdXNlZCBmb3IKICAgIGFsbG9jYXRpb25zIG9mIHRoZSBjbWRsaW5lLCBrZXJuZWwgYmQsIGFuZCBkZXZpY2UgdHJlZSBhcyB0aGV5IHNob3VsZAogICAgYmUgY29udGFpbmVkIHdpdGhpbiBib290bWFwX2Jhc2UgYW5kIGJvb3RtYXBfYmFzZSArIENGR19CT09UTUFQU1ouCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNTYxNGU3OTI2ODYzYmYwMjI1ZWM4NjBkOWIzMTk3NDFhOWM0MDA0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0OCAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBhdXRvc3RhcnQgZmxhZyB0byBib290bV9oZWFkZXJzIHN0cnVjdHVyZQoKICAgIFRoZSBhdXRvc3RhcnQgZW52IHZhcmlhYmxlIHdhcyBkcm9wcGVkIGFzIHBhcnQgb2YgdGhlIGluaXRpYWwgbmV3IHVJbWFnZQogICAgY2xlYW51cC4gIEFkZCBpdCBiYWNrIGhlcmUgc28gdGhlIGFyY2ggc3BlY2lmaWMgY29kZSBjYW4gZGVjaWRlIGlmIGl0CiAgICB3YW50cyB0byByZWFsbHkgYm9vdCBvciBub3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDRlZDY1NTJmNzE1OTgzYmZjN2QyMTJjMTE5OWExZjc5NmYxMTQ0YWQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ3IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gSW50cm9kdWNlIGxtYiBmcm9tIGxpbnV4IGtlcm5lbCBmb3IgbWVtb3J5IG1nbXQgb2YgYm9vdCBpbWFnZXMKCiAgICBJbnRyb2R1Y2UgdGhlIExNQiBsaWIgdXNlZCBvbiBQUEMgaW4gdGhlIGtlcm5lbCBhcyBhIGNsZWFuIHdheSB0byBtYW5hZ2UKICAgIHRoZSBtZW1vcnkgc3BhY2VzIHVzZWQgYnkgdmFyaW91cyBib290IGltYWdlcyBhbmQgc3RydWN0dXJlcy4gIFRoaXMgY29kZQogICAgd2lsbCBhbGxvdyB1cyB0byBzaW1wbGlmeSB0aGUgY29kZSBpbiBib290bSBhbmQgaXRzIHN1cHBvcnQgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDY0OGMyZTdhMTczYjBkN2YxN2JlZjRhZGFhMDYyMzA5MGM5ZTkwNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMjI6MDM6NDcgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGVmZmVjdGl2ZSBhbW91bnQgb2YgbWVtb3J5CgogICAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyB3ZSBsaW1pdGVkIHRoZSBzdGFjayB0byAyNTZNIGJlY2F1c2Ugc29tZSBib2FyZHMKICAgIGNvdWxkIG9ubHkgbWFwIHRoYXQgbXVjaCB2aWEgQkFUUy4JSG93ZXZlciBuZXdlciBib2FyZHMgYXJlIGNhcGFibGUgb2YKICAgIG1hcHBpbmcgbW9yZSBtZW1vcnkgKGZvciBleGFtcGxlIDg1eHggaXMgY2FwYWJsZSBvZiBkb2luZyB1cCB0byAyRykuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI3NGNlYTJiZGRiY2ExMGNkYWQ3ZGFhNTE4OTUxYjc1YzQ0ZWY2YmMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ2IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gcmV3b3JrIGVycm9yIGhhbmRsaW5nIHNvIGNvbW1vbiBmdW5jdGlvbnMgZG9uJ3QgcmVzZXQKCiAgICBDaGFuZ2VkIGltYWdlX2dldF9yYW1kaXNrKCkgdG8ganVzdCByZXR1cm4gTlVMTCBvbiBlcnJvciBhbmQgaGF2ZQogICAgZ2V0X3JhbWRpc2soKSBwcm9wb2dhdGUgdGhhdCBlcnJvciB0byB0aGUgY2FsbGVyLiAgSXQncyBsZWZ0IHRvIHRoZQogICAgY2FsbGVyIHRvIGNhbGwgZG9fcmVzZXQoKSBpZiBpdCB3YW50cyB0by4KCiAgICBBbHNvIG1vdmVkIGNhbGxpbmcgZG9fcmVzZXQoKSBpbiBnZXRfZmR0KCkgYW5kIGZkdF9yZWxvY2F0ZSgpIG9uIHBwYwogICAgdG8gYSBjb21tb24gbG9jYXRpb24uICBJbiB0aGUgZnV0dXJlIHdlIHdpbGwgY2hhbmdlIGdldF9mZHQoKSBhbmQKICAgIGZkdF9yZWxvY2F0ZSgpIHRvIHJldHVybiBzdWNjZXNzL2ZhaWx1cmUgYW5kIG5vdCBjYWxsIGRvX3Jlc2V0KCkgYXQgYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkMmJjMDk1YTYzOTY3MmRlZjExZDVkMDQzYjU2ODhkMGRiZDY5MmVjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0NSAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIHBwYzogUmUtb3JkZXIgcmFtZGlzay9mZHQgaGFuZGxpbmcgc2VxdWVuY2UKCiAgICBEb2luZyB0aGUgZmR0IGJlZm9yZSB0aGUgcmFtZGlzayBhbGxvd3MgdXMgdG8gZ3JvdyB0aGUgZmR0IHcvbyBjb25jZXJuCiAgICBob3dldmVyIGl0IGRvZXMgbWVhbiB3ZSBoYXZlIHRvIGdvIGluIGFuZCBmaXh1cCB0aGUgaW5pdHJkIGluZm8gc2luY2UKICAgIHdlIGRvbid0IGtub3cgd2hlcmUgaXQgd2lsbCBiZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI3OTUzNDkzZWYwMjVmYjY5OGQ2OGM1ZGVlMzliMzZmMDFmNGQ1MzAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ0IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gcHBjOiBEZXRlcm1pbmUgaWYgd2UgYXJlIGJvb3RpbmcgYW4gT0Ygc3R5bGUKCiAgICBJZiB3ZSBhcmUgYm9vdGluIE9GIHN0eWxlIHRoYW4gd2UgY2FuIHNraXAgc2V0dGluZyB1cCBzb21lIHRoaW5ncwogICAgdGhhdCBhcmUgdXNlZCBmb3IgdGhlIG9sZCBib290IG1ldGhvZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYTY2MTJiZGZlN2VmMzdiOTc4N2I2NjgwMGNmMDJhYWRlZDA1ZmJlYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDMgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBEb24ndCBwYXNzIGtkYiB0byByYW1kaXNrX2hpZ2ggc2luY2Ugd2UgbWF5IG5vdCBoYXZlIG9uZQoKICAgIFdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdGhlIGtkYiBwYXJhbSBhcyB3ZSBhcmUganVzdCB1c2luZyBpdCB0byBnZXQKICAgIGJkLT5iaV9tZW1zaXplIHdoaWNoIHdlIGNhbiBnZXQgZnJvbSBnZC0+YmQtPmJpX21lbXNpemUuICBBbHNvLCBpZiB3ZQogICAgYm9vdCB2aWEgT0Ygd2UgbWlnaHQgbm90IGFjdHVhbGx5IGZpbGwgb3V0IGEga2RiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyYjIyZmE0YmFlZTUxZTZiNDY3YzQ0ZWExYmUwZDFlY2Q4NmU4Nzc1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAxNjozMDo0NyAyMDA4IC0wNjAwCgogICAgODV4eDogRG9uJ3QgaWNiaSB3aGVuIHVubG9ja2luZyB0aGUgY2FjaGUKCiAgICBUaGVyZSBpcyBubyByZWFzb24gdG8gaWNiaSB3aGVuIGludmFsaWRhdGluZyB0aGUgdGVtcG9yYXJ5IHN0YWNrIGluCiAgICB0aGUgZC1jYWNoZS4gIEl0cyBpbXBvc3NpYmxlIG9uIGU1MDAgdG8gaGF2ZSB0aGUgaS1jYWNoZSBjb250YWluCiAgICBhbnkgYWRkcmVzc2VzIGluIHRoZSB0ZW1wIHN0YWNrIGFuZCBpdCBjYW4gYmUgcHJvYmxlbWF0aWMgaW4gZ2VuZXJhdGluZwogICAgdHJhbnNhY3Rpb25zIG9uIHRoZSBidXMgdG8gbm9uLXZhbGlkIGFkZHJlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDUzNGVhNmI2Zjg2ZjhiNzVlZjJhYzA2MWVmMTEwYTk4ZjEwM2Q3ZDYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTU6NTA6NTAgMjAwOCAtMDYwMAoKICAgIEZpeCBzb3VyY2UgZm9yIEVDTSBlcnJvciBJVlBSCgogICAgVGhlIHNvdXJjZSB2ZWN0b3IgZm9yIHRoZSBFQ00gd2FzIGJlaW5nIHNldCB0byAyLAogICAgYnV0IHRoYXQncyB3aGF0IHRoZSBzb3VyY2UgdmVjdG9yIGZvciBERFIgd2FzIGJlaW5nCiAgICBzZXQgdG8uICBDaGFuZ2UgaXQgdG8gMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjFmYWU4YjJiNGU0ZTZlNjQ4Nzk2ZTA3ZTIwYWIxM2U5Y2IxODkyMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxNDoyOTo1OCAyMDA4IC0wNjAwCgogICAgSW52YWxpZGF0ZSBJTklUX1JBTSBUTEIgbWFwcGluZ3MKCiAgICBDb21taXQgMGRiMzdkYy4uLiAgKGFuZCBzb21lIG90aGVycykgY2hhbmdlZCB0aGUgSU5JVF9SQU0gVExCCiAgICBtYXBwaW5ncyB0byBiZSB1bmd1YXJkZWQuICBUaGlzIGNvbGxpZGVkIHdpdGggYW4gZXhpc3RpbmcgImJ1ZyIKICAgIHdoZXJlIHRoZSBtYXBwaW5ncyBmb3IgdGhlIElOSVRfUkFNIHdlcmUgYmVpbmcga2VwdCBhcm91bmQuCiAgICBUaGlzIG1lYW50IHRoYXQgc3BlY3VsYXRpdmUgbG9hZHMgdG8gdGhvc2UgYWRkcmVzc2VzIHdlcmUKICAgIHN1Y2NlZWRpbmcgaW4gdGhlIFRMQiwgYW5kIGdvaW5nIG91dCB0byB0aGUgYnVzLCB3aGVyZSB0aGV5CiAgICB3ZXJlIGNhdXNpbmcgYW4gZXhjZXB0aW9uICh0aGVyZSdzIG5vdGhpbmcgYXQgdGhhdCBhZGRyZXNzKS4gVGhlCiAgICBGbGFzaCBjb2RlIHdhcyBjb2luY2lkZW50YWxseSBjYXVzaW5nIHN1Y2ggYSBzcGVjdWxhdGl2ZSBsb2FkLgogICAgUmF0aGVyIHRoYW4gZ28gYmFjayB0byBtYXBwaW5nIHRoZSBJTklUIFJBTSBhcyBndWFyZGVkLCB3ZSBmaXgKICAgIGl0IHNvIHRoYXQgdGhlIGVudHJpZXMgZm9yIHRoZSBJTklUX1JBTSBhcmUgaW52YWxpZGF0ZWQuICBUaHVzCiAgICB0aGUgc3BlY3VsYXRpdmUgbG9hZHMgd2lsbCBmYWlsIGluIHRoZSBUTEIsIGFuZCBoYXZlIG5vIGVmZmVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzQ3Yjc5MzhkM2U1NjFlYjIxNWFhMzg2YzM3ZmI1YWNiNWEzODNjNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjI6NTY6MTcgMjAwOCArMDEwMAoKICAgIHNiYzg1NDg6IEZpeCBSZXZpc2lvbiByZWFkaW5nIGFuZCB1bnVzZWQgdmFyaWFibGUgJ3BhdGgnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0OTVkMTYyMzc0YzQ3MmY0NjQ1NDQ1MzU1MzM4MmFkMDczNWRjNzI1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAyMjo1NjoxNiAyMDA4ICswMTAwCgogICAgc2JjODU0ODogRml4IGNmaSBmbGFzaCBiYW5rIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZWZiZTlkYmIxMjlmODU3ZjI3ODU2OTM2MTEyYzhjMDJmMDE2YmU2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMjoyNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENvcnJlY3QgcmF3IEZEVCBibG9iIGhhbmRsaWcgd2hlbiBDT05GSUdfRklUIGlzIGRpc2FibGVkCgogICAgRHVhbCBmb3JtYXQgaW1hZ2UgY29kZSBtdXN0IHByb3Blcmx5IGhhbmRsZSBhbGwgdGhyZWUgRkRUIHBhc3NpbmcgbWV0aG9kczoKICAgIC0gcmF3IEZEVCBibG9iIHBhc3NlZAogICAgLSBGRFQgYmxvYiBlbWJlZGRlZCBpbiB0aGUgbGVnYWN5IHVJbWFnZQogICAgLSBGRFQgYmxvYiBlbWJlZGRlZCBpbiB0aGUgbmV3IHVJbWFnZQoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBwcm9wZXIgcmF3IEZEVCBoYW5kbGluZyB3aGVuIG5vIEZJVCBpbWFlZyBzdXBwb3J0CiAgICBpcyBjb21waWxlZCBpbi4gVGhpcyBpcyBhIGJpdCB0cmlja3kgYXMgd2UgbXVzdCBkZWN0ZWQgRklUIGZvcm1hdCBldmVuCiAgICB3aGVuIEZJVCB1SW1hZ2UgaGFuZGxpbmcgaXMgbm90IGVuYWJsZWQgYXMgYm90aCBGSVQgdUltYWdlcyBhbmQgcmF3IEZEVAogICAgYmxvYnMgdXNlIHRoYSBzYW1lIGxvdyBsZXZlbCBmb3JtYXQgKGxpYmZkdCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZjA3MzRjZmYwZmI1Mzk3Y2UyZjQ2MDJmNGYzZTVlYzljOGEzNmU4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMjoyNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFBPV0VSUEM6IEFkZCBpbWFnZV9nZXRfZmR0KCkgcm91dGluZQoKICAgIEZEVCBibG9iIG1heSBiZSBwYXNzZWQgZWl0aGVyOiAoMSkgcmF3ICgyKSBvciBlbWJlZGRlZCBpbiB0aGUgbGVnYWN5IHVJbWFnZQogICAgKDMpIG9yIGVtYmVkZGVkIGluIHRoZSBuZXcgdUltYWdlLiBGb3IgdGhlICgyKSBjYXNlIGVtYmVkZGluZyBpbWFnZSBtdXN0IGJlCiAgICB2ZXJpZmllZCBiZWZvcmUgd2UgZ2V0IEZEVCBmcm9tIGl0LiBUaGlzIHBhdGNoIGZhY3RvcnMgb3V0IGxlZ2FjeSBpbWFnZQogICAgc3BlY2lmaWMgdmVyaWZpY2F0aW9uIHJvdXRpbmUgdG8gdGhlIHNlcGFyYXRlIGhlbHBlciByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxZWZkNDM2MDFmOTBkZTIxZWM2YzBlYmI5ODgwODIzZTgyMjkyN2IxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMjowNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBpbWFnZV9nZXRfa2VybmVsKCkgcm91dGluZQoKICAgIExlZ2FjeSBpbWFnZSBzcGVjaWZpYyB2ZXJpZmljYXRpb24gaXMgZmFjdG9yZWQgb3V0IHRvIGEgc2VwYXJhdGUgaGVscGVyCiAgICByb3V0aW5lIHRvIGtlZXAgZ2V0X2tlcm5lbCgpIGdlbmVyaWMgYW5kIHNpbXBsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGE1ZWEzZTYxNjhmZTZhMjc4MGVlYWYyNTdhM2IxOWYzMGRlYzY1OApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDE6MDQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIGltYWdlIHZlcmlmeSBmbGFnIHRvIGJvb3RtX2hlYWRlcnMgc3RydWN0dXJlCgogICAgRG8gbm90IHBhc3MgaW1hZ2UgdmVyaWZpY2F0aW9uIGZsYWcgZGlyZWN0bHkgdG8gcmVsYXRlZCByb3V0aW5lcy4KICAgIFNpbXBsaWZ5IGFyZ3VtZW50IHBhc3NpbmcgYW5kIG1vdmUgaXQgdG8gdGhlIGJvb3RtX2hlYWRlciBzdHJ1Y3R1cmUgd2hpY2gKICAgIGNvbnRhaW5zIGN1cmVudGx5IHByb2Nlc3NlZCBpbWFnZSBzcGVjaWZpYyBkYXRhIGFuZCBpcyBhbHJlYWR5IGJlaW5nIHBhc3NlZAogICAgb24gdGhlIGFyZ3VtZW50IGxpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgyM2FmZTdjZWZlMDBkYWZlZmM2Njk2YzFjYzdhYTgyOGMzOTQyMzQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAwOjQ3IDIwMDggKzAxMDAKCiAgICBbTWFrZWZpbGVdIFNvcnQgQ09CSlMgaW4gbGliXzxhcmNoPiBNYWtlZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDZmMGY5ZGZjNGVlODgwZmJmNDAwYTJlYmUxNDIzODE4MWE2YzNmOTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAwOjQ3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gT3B0aW1pemUgZ2VuX2dldF9pbWFnZSgpIGZsb3cgY29udHJvbAoKICAgIFdoZW4gQ09ORklHX0hBU19EQVRBRkxBU0ggaXMgbm90IGRlZmluZWQgZ2VuX2dldF9pbWFnZSgpIHJvdXRpbmUgaGFzIG5vdGhpbmcKICAgIHRvIGRvLCB1cGRhdGUgaXRzIGNvbnRyb2wgZmxvdyB0byBiZXR0ZXIgcmVmbGVjdCB0aGF0IHNpbXBsZSBjYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkMmNlZDllYjE5ZWM3NGY0YTM1OTk0OWRiZTM1MzQyN2ZhNmQ1NWNhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEZlYiA0IDA4OjI4OjE3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUE9XRVJQQzogU3BsaXQgZ2V0X2ZkdCgpIGludG8gZ2V0IGFuZCByZWxvY2F0ZSByb3V0aW5lcwoKICAgIFBQQyBzcGVjaWZpYyBGRFQgYmxvYiBoYW5kbGluZyBjb2RlIGlzIGRpdmlkZWQgaW50byB0d28gc2VwYXJhdGUgcm91dGluZXM6CgogICAgZ2V0X2ZkdCgpCS0gZmluZCBhbmQgdmVyaWZ5IGEgRkRUIGJsb2IgKGVpdGhlciByYXcgb3IgaW1hZ2UgZW1iZWRkZWQpCiAgICBmZHRfcmVsb2NhdGUoKQktIG1vdmUgRkRUIGJsb2IgdG8gd2l0aGluIEJPT1RNQVAgaWYgbmVlZGVkCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDMzZmE1YzBiZmFmNDY1ZGU4Y2ViMjNmY2Q2YjM5N2Y2OGIzNWE4MTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRmViIDI1IDEzOjEzOjM3IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBGaXggcmVuYW1lZCBHVVIgc3ltYm9scyBpbiBzYmM4NjQxZCBib2FyZC4KCiAgICBCYWNrIGluIGNvbW1pdCBhNTUxY2VlOTlhZDFkMWRhMjBmZDIzYWQyNjVkZTQ3NDQ4ODUyZjU2CiAgICAoODZ4eDogRml4IEdVUiBQQ0kgY29uZmlnIHJlZ2lzdGVycyBwcm9wZXJseSksIHdlIHNob3VsZCBoYXZlCiAgICBjaGFuZ2VkIHRoZSBNUEM4Nnh4X1BPUkJNU1JfSEEgYW5kIE1QQzg2eHhfUE9SREVWU1JfSU9fU0VMCiAgICBzeW1ib2xzIGluIHRoZSBzYmM4NjQxZCBib2FyZCBhcyB3ZWxsLiAgRml4IHRoaXMgb3ZlcnNpZ2h0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRjZDU5NGU2MjNjMzlmNzM5NjRkMTg3ODc3NjNlNDUzM2Y3OTFmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAyNSAxNjo1MDo0OCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggYWNhZGlhX25hbmQgYnVpbGQgcHJvYmxlbQoKICAgIERvbid0IGluY2x1ZGUgdGVzdGRyYW0oKSBvbiBOQU5ELWJvb3RpbmcgdGFyZ2V0IGFjYWRpYV9uYW5kLiBUaGlzIHNhdmVzCiAgICBhIGZldyBieXRlcyBhbmQgbWFrZXMgdGhlIHRhcmdldCBidWlsZCBjbGVhbiBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTRlMDk5ZTY5OGQ0MWU4MTc5ZDA1YzJiMmRiY2Y3MDRhMjM2Zjc0OApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMjQgMjM6MDM6MTIgMjAwOCArMDAwMAoKICAgIG14MWZzMi9mbGFzaDogRml4IG11bHRpcGxlIHBvaW50ZXJ0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDcyNDkwMmM4NDY0ZTYxMDY0MmIzYTE3MDI3OGI5OTcxMDMyNTg4OGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDI0IDIzOjAzOjExIDIwMDggKzAwMDAKCiAgICBhcm0taW14OiBGaXggcmVnaXN0ZXJzIGRlZmluaXRpb24KCiAgICBTeW5jIHJlZ2lzdGVycyBkZWZpbml0aW9uIHdpdGggbGludXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRjZDI4OGI1ODllYTExNzg5NDdjNmUzNjQ0NTNjMzJiM2RlZGU2YjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDI0IDIzOjAzOjEwIDIwMDggKzAwMDAKCiAgICBhY3R1YTEvYWN0dWEyL2FjdHVhMzogRml4IG11bHRpcGxldW51c2VkIHZhcmlhYmxlCgogICAgLSBhY3R1YTE6CglhY3R1eDEuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgxLmM6OTI6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCgogICAgLSBhY3R1YTI6CglhY3R1eDIuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgyLmM6MTAwOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3MnCglhY3R1eDIuYzo5OTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCWFjdHV4Mi5jOiBJbiBmdW5jdGlvbiAncmVzZXRfcGh5JzoKCWFjdHV4Mi5jOjEzMDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJwoKICAgIC0gYWN0dWEzOgoJYWN0dXgzLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4My5jOjExNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQ1OTM0YWQ3NzU2ZjAzOGEzOTNhOWNmYWI3NmE0ZmUzMDZkOWQ5MzAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gRmViIDQgMDg6Mjg6MDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgZHVhbCBmb3JtYXQgdUltYWdlIHN1cHBvcnQgZnJhbWV3b3JrCgogICAgVGhpcyBwYXRjaCBhZGRzIGZyYW1ld29yayBmb3IgZHVhbCBmb3JtYXQgaW1hZ2VzLiBGb3JtYXQgZGV0ZWN0aW9uIGlzIGFkZGVkCiAgICBhbmQgdGhlIGJvb3RtIGNvbnRyb2xsIGZsb3cgaXMgdXBkYXRlZCB0byBpbmNsdWRlIGNhc2VzIGZvciBuZXcgRklUIGZvcm1hdAogICAgdUltYWdlcy4KCiAgICBXaGVuIHRoZSBsZWdhY3kgKGltYWdlX2hlYWRlciBiYXNlZCkgZm9ybWF0IGlzIGRldGVjdGVkIGFwcHJvcHJpYXRlCiAgICBsZWdhY3kgc3BlY2lmaWMgaGFuZGxpbmcgaXMgaW52b2tlZC4gRm9yIHRoZSBuZXcgKEZJVCBiYXNlZCkgZm9ybWF0IHVJbWFnZXMKICAgIGR1YWwgYm9vdCBmcmFtZXdvcmsgaGFzIGEgbWluaWFsIHN1cHBvcnQsIHRoYXQgd2lsbCBvbmx5IHByaW50IG91dCBhCiAgICBjb3JyZXNwb25kaW5nIGRlYnVnIG1lc3NhZ2VzLiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgRklUIHNwZWNpZmljIGhhbmRsaW5nIHdpbGwKICAgIGJlIGFkZGVkIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYjI5NjYxZmMxMTUxMDc3Nzc2NDU0Mjg4MDUxYmM5YTQ4ODM1MWNlOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBGZWIgMjQgMTU6MjE6MzYgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBQcmVwYXJlIHYxLjMuMi1yYzIgcmVsZWFzZSBjYW5kaWRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDAwYjQ4YTQ4NDI0ODk0ZGFhNTg5ZDE2NmQ3MzI3NzgzMGIxYzZhYzQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRmViIDIzIDEyOjE1OjU2IDIwMDggKzAxMDAKCiAgICBFTlY6IHJlbW92ZSBzYXZlZW52IHdoZW4gQ0ZHX0VOVl9JU19OT1dIRVJFIGlzIHNlbGVjdGVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiMDc1ZDc0ZWZiNzBmZjY4YzQ5YTI1MzJmMjZiNTZkNjcwM2I2OWMxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEZlYiAyMyAxNzoyNDoxNiAyMDA4ICswOTAwCgogICAgUmVtb3ZlIHRoZSBfX1NUUklDVF9BTlNJX18gY2hlY2sgZnJvbSB0aGUgX191NjQvX19zNjQgZGVjbGFyYXRpb24gb24gMzJiaXQgdGFyZ2V0cy4KCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBPbGFmIEhlcmluZyBbV2VkLCAxNyBPY3QgMjAwNyAwNjoyNzoxMyArMDAwMCAoMjM6MjcgLTA3MDApXQoKICAgIFJlbW92ZSB0aGUgX19TVFJJQ1RfQU5TSV9fIGNoZWNrIGZyb20gdGhlIF9fdTY0L19fczY0IGRlY2xhcmF0aW9uIG9uCiAgICAzMmJpdCB0YXJnZXRzLgoKICAgIEdDQyBjYW4gYmUgbWFkZSB0byB3YXJuIGFib3V0IHVzYWdlIG9mIGxvbmcgbG9uZyB0eXBlcyB3aXRoIElTTyBDOTAKICAgICgtYW5zaSksIGJ1dCBvbmx5IHdpdGggLXBlZGFudGljLiAgWW91IGNhbiB3cml0ZSB0aGlzIGluIGEgd2F5IHRoYXQgZXZlbgogICAgdGhlbiBpdCBkb2Vzbid0IGNhdXNlIHdhcm5pbmdzLCBuYW1lbHkgYnk6CgogICAgI2lmZGVmIF9fR05VQ19fCiAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19zaWduZWRfXyBsb25nIGxvbmcgX19zNjQ7CiAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OwogICAgI2VuZGlmCgogICAgVGhlIF9fZXh0ZW5zaW9uX18ga2V5d29yZCBpbiBmcm9udCBvZiB0aGlzIHN3aXRjaGVzIG9mZiBhbnkgcGVkYW50aWMKICAgIHdhcm5pbmdzIGZvciB0aGlzIGV4cHJlc3Npb24uCgogICAgU2lnbmVkLW9mZi1ieTogT2xhZiBIZXJpbmcgPG9saEBzdXNlLmRlPgogICAgQ2M6IDxsaW51eC1hcmNoQHZnZXIua2VybmVsLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAyMDhhY2QxMTJlNjUxN2IyMWZjMzBjNDIwMzk2OTAyYjEwMzU2M2FjCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEZlYiAyMyAxNzowNzo1NyAyMDA4ICswOTAwCgogICAgY3B1L21jZjUyeDIvY29uZmlnLm1rOiBNYWtlIG5lZWRsZXNzbHkgZGVmZmVyZWQgZXhwYW5zaW9ucyBpbW1lZGlhdGUuCgogICAgVGhpcyB3aWxsIHJlZHVjZSB0aGUgYnVpbGQgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDQ5NWEwZGRlN2ZhMWIxNGNkYzE1NjA3ZDg2NTAzZWMyYmRjZDAyYzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgRmViIDIzIDE3OjA1OjAwIDIwMDggKzA5MDAKCiAgICBjcHUvcHBjNHh4L2NvbmZpZy5tazogTWFrZSBhIG5lZWRsZXNzbHkgZGVmZmVyZWQgZXhwYW5zaW9uIGltbWVkaWF0ZS4KCiAgICBUaGlzIHdpbGwgcmVkdWNlIHRoZSBidWlsZCB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZTY4MmJhMzk5YTFkNzZmMDlkOGNjN2FmMWU1NzA2NmYxZDM2MGQ5MQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBGZWIgMjMgMTY6NTg6NDEgMjAwOCArMDkwMAoKICAgIGNwdS9taXBzL2NvZmlnbC5tazogTWFrZSBhIG5lZWRsZXNzbHkgZGVmZmVyZWQgZXhwYW5zaW9uIGltbWVkaWF0ZS4KCiAgICBUaGlzIHJlZHVjZXMgdGhlIGJ1aWxkIHRpbWUgYnkgfjEwJS4gSGVyZSdzIHRoZSBndGgyX2NvbmZpZyBleGFtcGxlLgoKCSAgICBCRUZPUkUJIEFGVEVSCiAgICByZWFsICAgIDBtMzEuNDQxcwkgMG0yNy44MzNzCiAgICB1c2VyICAgIDBtMjQuNzY2cwkgMG0yMy4wNDVzCiAgICBzeXMgICAgIDBtMTAuNDI1cwkgMG03LjQ2OHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAyNDA5ZjhjZjU0YzdjZDkxOTgxZjBkZmVjMTM1ZGJmMzg1ODA5MGMKQXV0aG9yOiBNYXJjZWwgTW9vbGVuYWFyIDxtYXJjZWxtQGp1bmlwZXIubmV0PgpEYXRlOglGcmkgRmViIDIyIDEwOjQ4OjA3IDIwMDggLTA4MDAKCiAgICBtYWtlIGRlZmluZTJtay5zZWQgd29yayBvbiBGcmVlQlNECgogICAgSW4gdGhlIHRocmVhZCAiWzEuMy4yLXJjMV0gTVBDODU0OENEUy9NUEM4NTU1Q0RTIGNvbmZpZ3MgZmFpbHMgdG8gbGluayIsCiAgICB0aGUgZGVmaW5lMm1rLnNlZCBzY3JpcHQgd2FzIGlkZW50aWZpZWQgYXMgdGhlIHNvdXJjZSBvZiB0aGUgbGluawogICAgZmFpbHVyZSBvbiBGcmVlQlNELiBUaGUgcHJvYmxlbSBpcyB0aGF0IHNlZCgxKSBkb2VzIG5vdCBhbHdheXMgc3VwcG9ydAogICAgdGhlICcrJyBvcGVyYXRvci4gSXQgaXNuJ3Qgb24gRnJlZUJTRC4gVGhlIGF0dGFjaCBwYXRjaCBpbXBsZW1lbnRzIHRoZQogICAgZXF1aXZhbGVudCwgdXNpbmcgdGhlICcqJyBvcGVyYXRvciBpbnN0ZWFkIGFuZCBzaG91bGQgd29yayBldmVyeXdoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBNb29sZW5hYXIgPG1hcmNlbG1AanVuaXBlci5uZXQ+Cgpjb21taXQgZTUwODRhZjhkZWQ1ODQ1M2NkMDdlYzFhZjhiMGYyOWYzNDEyMmJiYwpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIyIDE3OjIxOjMyIDIwMDggKzAxMDAKCiAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgInJhbWRpc2siIHdpdGggInJhbWRpc2tfc2l6ZSIga2VybmVsIHBhcmFtZXRlci4KCiAgICBUaGUgTGludXggY29tbWl0IGZhYzhiMjA5YjEwODRiYzg1NzQ4YmQ1NGUxM2QwMGMxMjYyYjIyMGYgKCJSZW1vdmUKICAgIGZpbmFsIHRyYWNlcyBvZiBsb25nLWRlcHJlY2F0ZWQgInJhbWRpc2siIGtlcm5lbCBwYXJtIikgbWFrZXMgdGhlc2UKICAgIGNoYW5nZXMgbmVjY2Vzc2FyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBkMDFiODQ3YzVjZDA3MDg5NWM0YmExNzhjODVjZDA2OGE5NWNmN2NkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBGZWIgMjEgMTM6NTg6MTYgMjAwOCAtMDUwMAoKICAgIExNNzUgYnVnIGZpeCBmb3IgbmVnYXRpdmUgdGVtcGVyYXR1cmVzCgogICAgV2hlbiB0aGUgTE03NSB0ZW1wZXJhdHVyZSBzZW5zb3IgbWVhc3VyZXMgYSB0ZW1wZXJhdHVyZSBiZWxvdyAwIEMsIHRoZQogICAgY3VycmVudCBkcml2ZXIgZG9lcyBub3QgcGVyZm9ybSBzaWduIGV4dGVuc2lvbiwgc28gdGhlIHJlc3VsdCByZXR1cm5lZCBpcwogICAgMjU2IEMgdG9vIGhpZ2guICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDVhOTEwYzIyNGIxM2U0MTNiZGE0MTkyMjM3OWFkZDZkNzVjMzJkYTMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMSAxODozMzo0NSAyMDA4ICswMTAwCgogICAgSURTODI0NzogdXBkYXRlIE1BSU5UQUlORVIgZW50cnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzllYWMyYmZiNTkxZjJiMDI4ZWMxNzM1MDQ5ZGM5MWU0MzIwZGU0YQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgRmViIDIxIDE4OjMxOjE1IDIwMDggKzAxMDAKCiAgICBGaXggZGV2aWNlIHRyZWUgZm9yIG1nc3V2ZCBib2FyZC4KCiAgICBSZW5hbWUgdGhlICJzY2MiIG5vZGUgaW4gImV0aGVybmV0IiBmb3IgdGhlIG1nc3V2ZCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyZTcyMTA5NGE3MGE1MjIwNmFmMmUxYmYxMjA4ZDlhNzEzMWY2ZGFkCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgRmViIDIxIDE0OjIzOjQyIDIwMDggKzAxMDAKCiAgICBsd21vbjU6IGVuYWJsZSBoYXJkd2FyZSB3YXRjaGRvZwoKICAgIFNvbWUgYm9hcmRzIChlLmcuIGx3bW9uNSkgbWF5IHVzZSByYXRoZXIgc21hbGwgd2F0Y2hkb2cgaW50ZXJ2YWxzLCBzbwogICAgY2F1c2luZyBpdCB0byByZWJvb3QgdGhlIGJvYXJkIGlmIFUtQm9vdCBkb2VzIGEgbG9uZyBidXN5LXdhaXQgd2l0aAogICAgdWRlbGF5KCkuIFRodXMsIGZvciB0aGVzZSBib2FyZHMgd2UgaGF2ZSB0byByZXN0YXJ0IFdEIG1vcmUKICAgIGZyZXF1ZW50bHkuCgogICAgVGhpcyBwYXRjaCBzcGxpdHMgdGhlIGJ1c3ktd2FpdCB1ZGVsYXkoKSBpbnRvIHNtYWxsZXIsIHByZWRlZmluZWQsCiAgICBpbnRlcnZhbHMsIHNvIHRoYXQgdGhlIHdhdGNoZG9nIHRpbWVyIG1heSBiZSByZXNldHRlZCB3aXRoIHRoZQogICAgY29uZmlndXJhYmxlIChDT05GSUdfV0RfUEVSSU9EKSBpbnRlcnZhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYmM3Nzg4MTI0N2VlNmY5NWQ3YTllYmM0OTlkMjZiOTZiYWUzOGM5ZApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMSAxMjo1MjoyOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBTdXBwb3J0IGZvciBBVEkgUmFkZW9uIDkyMDAgY2FyZCBvbiBzZXF1b2lhCgogICAgQWRkcyBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgQVRJIFJhZGVvbiA5MjAwIGNhcmQKICAgIHN1cHBvcnQgdG8gc2VxdW9pYSBjb25maWcgZmlsZS4gSWYgQ09ORklHX1ZJREVPCiAgICBpcyBlbmFibGVkLCBURVhUX0JBU0Ugc2hvdWxkIGJlIGNoYW5nZWQgdG8gMHhGRkY4MDAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNWE5YWJjYzMxN2NmM2M4YTY5NTU5ZmY4MzA4MWY0ZTVkNzE5ZWRiNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDg6MTg6MDcgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5lcyBmb3IgQVJSQVlfU0laRQoKICAgIEEgZmV3IGR1cGxpY2F0ZSBvZiB0aGUgQVJSQVlfU0laRSBtYWNybyBzbmVha2VkIGluIHNpbmNlIHdlIHB1dAogICAgdGhlIGRlZmluZSBpbiBjb21tb24uaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgxZDkzZTVjNGI4M2Q4YjZkY2VlNjlkZTZmNGExNGNjZjZmNzExNGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gRmViIDE4IDA4OjA5OjM3IDIwMDggLTA2MDAKCiAgICBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGVmZmVjdGl2ZSBhbW91bnQgb2YgbWVtb3J5CgogICAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyB3ZSBsaW1pdGVkIHRoZSBzdGFjayB0byAyNTZNIGJlY2F1c2Ugc29tZSBib2FyZHMKICAgIGNvdWxkIG9ubHkgbWFwIHRoYXQgbXVjaCB2aWEgQkFUUy4JSG93ZXZlciBuZXdlciBib2FyZHMgYXJlIGNhcGFibGUgb2YKICAgIG1hcHBpbmcgbW9yZSBtZW1vcnkgKGZvciBleGFtcGxlIDg1eHggaXMgY2FwYWJsZSBvZiBkb2luZyB1cCB0byAyRykuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3NTVjMzVmNTRiYTdlYjc2ODdhYTc5MzVlMDRhMDJhMDFlZjFiMjdiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDE4IDA1OjI0OjEzIDIwMDggLTA1MDAKCiAgICBpbmNsdWRlIGF1dG9jb25mLm1rIGJlZm9yZSBhbnkgb3RoZXIgLm1rIGZpbGVzCgogICAgVGhpcyBidW1wcyB0aGUgYXV0b2NvbmYubWsgaW5jbHVkZSBzdGVwIGFib3ZlIGJvYXJkL2NwdS9hcmNoL2V0Yy4uLiBzbyB0aGF0CiAgICB0aG9zZSAubWsgZmlsZXMgY2FuIGhhdmUgbWFrZSBpZiBzdGF0ZW1lbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMTZmZTc3NzUyZWVlMDk5YjlmYjYxZWQ3MzQ2MGU1MWNjOTRiMzdiYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNToxMDowNyAyMDA4IC0wNTAwCgogICAgZXJyb3IgY2hlY2sgYXV0b2NvbmYubWsgZ2VuZXJhdGlvbgoKICAgIElmIGFueSBvZiB0aGUgc3RlcHMgZm9yIGdlbmVyYXRpbmcgYXV0b2NvbmYubWsgZmFpbCBjdXJyZW50bHksIHRoZXkgZ28KICAgIHVubm90aWNlZC4JVG8gZml4LCB3ZSBjYW4gc2ltcGx5IGFkZCAnc2V0IC1lJyB0byB0aGUgbG9uZyBsaXN0IG9mIGNvbW1hbmRzLgogICAgVGhpcyBpcyBzaW1wbGVyIGFuZCBtb3JlIHJvYnVzdCB0aGFuIHBsYWNpbmcgJ3x8IGV4aXQgJCQ/JyBhZnRlciBldmVyeSBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwMTk4OTVhOGRlZTcxYTlmMDBkYTA1YzAzZTM3OWY0NWQ1ODFiMGZlCkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTggMDg6MDM6NTEgMjAwOCArMDEwMAoKICAgIEZpeCBidWcgaW4gZGVwZW5kZW5jeSBjaGVja2luZwoKICAgIEJ5IGFkZGluZyBWRVJTSU9OX0ZJTEUgdG8gdGhlIFBIT05ZIHRhcmdldHMgdGhlIHNjcmlwdAogICAgL3Rvb2xzL3NldGxvY2FsdmVyc2lvbiBpcyBhbHdheXMgY2FsbGVkIGFuZCB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaAogICAgaXMgcmVwbGFjZWQgb25seSBpZiB0aGUgc2NyaXB0IGZpbmQgYSBtb2RpZmllZCBzb3VyY2UgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA5OGJhMTQ0Y2NjOTEyZWVlOTBkZDQyNjk5ZjAyM2M0OTdjZTc3NGM2CkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMTQ6MzU6NDMgMjAwOCArMDkwMAoKICAgIEZpeCBHUE1DIENTMiBtZW1vcnkgc2V0dXAgYXQgYXBvbGxvbgoKICAgIEl0IGRpc2FibGVzIHRoZSBjdXJyZW50IG1hcCBmaXJzdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgZTg0NWUwN2UxZTZlNjRmNDBlMzU2ODg0MzlkM2NkY2YwMWNmZmY0ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjM6NTI6NDYgMjAwOCArMDEwMAoKICAgIHVsaTUyNng6IEZpeCBtdWx0aXBsZSBkaWZmZXIgaW4gc2lnbmVkbmVzcyBhbmQgcGFyZW50aGVzZXMgYXJvdW5kIGNvbXBhcmlzb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGJlZWNjZjdhNWRjNTQxNWMyMDJlMDEzMmEzM2M1OGZjMzE2YzJhNjIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE2OjU4OjA0IDIwMDggKzAxMDAKCiAgICBNSVBTOiBGaXggQ0ZHX05PX0ZMQVNIIHN1cHBvcnQKCiAgICAtIEZpeCBmbGFzaF9pbml0IGNhbGwgd2hlbiBDRkdfTk9fRkxBU0ggaXMgdXNlZAogICAgLSBSZW1vdmUgbm8gbW9yZSBuZWVkZWQgZmxhc2guYyBmb3IgcWVtdS1taXBzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlZGZlZDFkOTFkZjJiMjY3MGE4MTJjYTlkMWExZjlmYWFlN2RiYTQ3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRmViIDE2IDAyOjQwOjE4IDIwMDggLTA1MDAKCiAgICBlYXN5bG9nbzogY2xlYW4gdXAgc29tZSBtb3JlIGFuZCBhZGQgLXIgKHJnYikgc3VwcG9ydAoKICAgIE1pY2hhZWwgSGVubmVyaWNoIGFkZGVkIHN1cHBvcnQgZm9yIG91dHB1dHRpbmcgYW4gaW1hZ2UgaW4gUkdCIGZvcm1hdCByYXRoZXIKICAgIHRoYW4gZm9yY2luZyBZVVlWIGFsbCB0aGUgdGltZS4gIFRoaXMgbWFrZXMgb2J2aW91cyBzZW5zZSBpZiB0aGUgZGlzcGxheSB5b3UKICAgIGhhdmUgdGFrZXMgUkdCIGlucHV0IHJhdGhlciB0aGFuIFlVWVYuCgogICAgUmF0aGVyIHRoYW4gaGFjayBpbiBzdXBwb3J0IGZvciBvcHRpb25zLCBJJ3ZlIGNvbnZlcnRlZCBpdCB0byB1c2UgZ2V0b3B0IGFuZAogICAgY2xlYW5lZCB1cCB0aGUgYXJndW1lbnQgcGFyc2luZyBpbiB0aGUgcHJvY2Vzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEhlbm5lcmljaCA8bWljaGFlbC5oZW5uZXJpY2hAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBmNjVjOTgxMjljY2FkYTNmN2NhZjk3ZDgwMzk1YTk1Yjg0ZTkxMWRlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRmViIDE2IDAyOjEyOjM3IDIwMDggLTA1MDAKCiAgICBNYWtlZmlsZTogYWRkIHRhcmdldCBmb3IgJChMRFNDUklQVCkKCiAgICBJZiB0aGUgJChMRFNDUklQVCkgZG9lcyBub3QgZXhpc3QgKG5vcm1hbGx5IGl0J3MgYm9hcmQvJChCT0FSRCkvdS1ib290LmxkcyksCiAgICB0aGVuIGNoYW5nZSBpbnRvIHRoZSBib2FyZCBkaXJlY3RvcnkgYW5kIHRyeSBhbmQgY3JlYXRlIGl0LiAgVGhpcyBhbGxvd3MgeW91CiAgICB0byBnZW5lcmF0ZSB0aGUgbGlua2VyIHNjcmlwdCBvbiB0aGUgZmx5IGJhc2VkIHVwb24gYm9hcmQgZGVmaW5lcyAobGlrZSB0aGUKICAgIEJsYWNrZmluIGJvYXJkcyBkbykuCgogICAgVGhlcmUgc2hvdWxkIGJlIG5vIHJlZ3Jlc3Npb25zIGR1ZSB0byB0aGlzIGNoYW5nZSBhcyB0aGUgbm9ybWFsIGNhc2UgaXMgdG8KICAgIGFscmVhZHkgaGF2ZSBhIHUtYm9vdC5sZHMgZmlsZS4gIElmIHRoYXQncyB0aGUgY2FzZSwgdGhlbiB0aGVyZSdzIG5vdGhpbmcgdG8KICAgIGdlbmVyYXRlLCBhbmQgc28gbWFrZSB3aWxsIGFsd2F5cyBleGl0LiAgVGhlIGZpeCBoZXJlIGlzIHRoYXQgaWYgdGhlIGxpbmtlcgogICAgc2NyaXB0IGRvZXMgbm90IGV4aXN0LCB0aGUgaW1wbGljaXQgcnVsZXMgdGFrZSBvdmVyIGFuZCBhdHRlbXB0IHRvIGd1ZXNzIGhvdwogICAgdG8gZ2VuZXJhdGUgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDU1ODNjYmY3MzY0NzRlZjc1NGUxMjhhNTRmYjc4NjMyZjU3YjQ4ZmQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjI3OjQ5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGVycm9uZW91cyB1c2Ugb2YgaW1hZ2VfZ2V0X21hZ2ljKCkgaW4gZmRjL3VzYiBjbWRzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyMjQyZjUzNjk4MjJiYzc3ODBkYjk1YzQ3OTg1YmI0MDhlYTkxNTdiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyNzo0MSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbmFtZSBhbmQgbW92ZSBwcmludF9pbWFnZV9oZHIoKSByb3V0aW5lCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmNTA0MzNkNjcwZWMyZWU5ZTk2YWJhYzY3Y2RjNmU1ZTA2MWE4MTBkCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyMDoyMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBmaXRfcGFyc2VfY29uZigpIGFuZCBmaXRfcGFyc2Vfc3ViaW1hZ2UoKSByb3V0aW5lcwoKICAgIEludHJvZHVjaW5nIHJvdXRpbmVzIGZvciBwYXJzaW5nIG5ldyB1SW1hZ2UgZm9ybWF0IGJvb3RtIGFyZ3VtZW50czoKICAgIFs8YWRkcj5dIzxjb25mPgkJLSBjb25maWd1cmF0aW9uIHNwZWNpZmljYXRpb24KICAgIFs8YWRkcj5dOjxzdWJpbWc+CS0gc3ViaW1hZ2Ugc3BlY2lmaWNhdGlvbgoKICAgIE5ldyBmb3JtYXQgaW1hZ2VzIGNhbiBjb250YWluIG11bHRpcGxlIHN1YmltYWdlcyBvZiB0aGUgc2FtZSB0eXBlLiBGb3IgZXhhbXBsZQogICAgYSBzaW5nbGUgbmV3IGZvcm1hdCBpbWFnZSBmaWxlIGNhbiBjb250YWluIHRocmVlIGtlcm5lbHMsIHR3byByYW1kaXNrcyBhbmQgYQogICAgY291cGxlIG9mIEZEVCBibG9icy4gU3ViaW1hZ2UgYW5kIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhdGlvbnMgYXJlIGV4dGVuc2lvbnMKICAgIHRvIGJvb3RtIChhbmQgb3RoZXIgaW1hZ2UtcmVsYXRlZCBjb21tYW5kcykgYXJndW1lbnRzJyBzeW50YXggdGhhdCBhbGxvdyB0bwogICAgc3BlY2lmeSB3aGljaCBwYXJ0aWN1bGFyIHN1YmltYWdlIHNob3VsZCBiZSBvcGVyYXRlZCBvbi4KCiAgICBTdWJpbWFnZSBzcGVjaWZpY2F0aW9uIGlzIHVzZWQgdG8gZGVub3RlIGEgcGFydGljdWxhciBzdWJpbWFnZS4gQ29uZmlndXJhdGlvbnMKICAgIGFyZSBhIGJpdCBtb3JlIGNvbXBsZXggLS0gdGhleSBhcmUgdXNlZCB0byBkZWZpbmUgYSBwYXJ0aWN1YWxyIGJvb3Rpbmcgc2V0dXAsCiAgICBmb3IgZXhhbXBsZSBhIChrZXJuZWwsIGZkdCBibG9iKSBwYWlyLCBvciBhIChrZXJuZWwsIHJhbWRpc2ssIGZkdCBibG9iKSB0dXBsZSwKICAgIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZmZjg4OGExOTk3ZmY3ZGU5YjI5ZTI0MDUwZmM0YTBmZDQwM2JhMTYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjIwOjE5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGdlbl9nZXRfaW1hZ2UoKSByb3V0aW5lCgogICAgVGhpcyByb3V0aW5lIGFzc3VyZXMgdGhhdCBpbWFnZSAod2hldGhlciBsZWdhY3kgb3IgRklUKSBpcyBub3QKICAgIGluIGEgc3BlY2lhbCBkYXRhZmxhc2ggc3RvcmFnZS4KCiAgICBJZiBpbWFnZSBhZGRyZXNzIGlzIGEgZGF0YWZsYXNoIGFkZHJlc3MgaW1hZ2UgaXMgbW92ZWQgdG8gc3lzdGVtIFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc1ZDNlOGZiZDkzYzE0ZDk5MjlkMDI0Yzc1YWYyZDc0MmM3NmRiNzAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjIwOjE4IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUHVsbCBpbiBsaWJmZHQgaWYgQ09ORklHX0ZJVCBpcyBlbmFibGVkCgogICAgTmV3IHVJbWFnZSBmb3JtYXQgKEZsYXR0ZW5lZCBJbWFnZSBUcmVlKSByZXF1aXJlcyBsaWJmZHQKICAgIGZ1bmN0aW9uYWxpdHksIHByaW50IG91dCBlcnJvciBtZXNzYWdlIGlmIENPTkZJR19PRl9MSUJGRFQKICAgIGlzIG5vdCBkZWZpbmVkLgoKICAgIE5ldyB1SW1hZ2Ugc3VwcG9ydCBpcyBlbmFibGVkIGJ5IGRlZmluaW5nIENPTkZJR19GSVQgKGFuZCBDT05GSUdfT0ZfTElCRkRUKS4KICAgIFRoaXMgY29tbWl0IHR1cm5zIGl0IG9uIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYmE2MzlkYTU2MDRhNjRiM2VkODg0YTJjYmIxYzU0MTRhOWZhNzI4CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAyMzoxNjozNSAyMDA4ICswMTAwCgogICAgQ0ZJOiBEbyBub3QgdXNlIHVuaW5pdGlhbGl6ZWQgY21kX3Jlc2V0CgogICAgRG8gbm90IHVzZSB1bmluaXRpYWxpemVkIGNtZF9yZXNldDsgaXNzdWUgYm90aCBBTUQgYW5kIEludGVsIHJlc2V0CiAgICBjb21tYW5kcyBpbnN0ZWFkCgogICAgRnJvbSBhIHNob3J0IHRlc3QsIGl0IGxvb2tzIGxpa2UgQU1ELXN0eWxlIGZsYXNoIHJvbXMgdHJlYXQgKmFueSogdW5rbm93bgogICAgY29tbWFuZCB3cml0ZSBhcyBhIHJlc2V0LCBhdCBsZWFzdCB3aGVuIGluIENGSSBRdWVyeSBtb2RlLCBzbyBpc3N1aW5nIHRoZQogICAgSW50ZWwgcmVzZXQgY29tbWFuZCB0byBBTUQtc3R5bGUgZmxhc2hzIHNlZW1zIHNhZmUgKGZyb20gdGhlIHNtYWxsIHNhbXBsZSBJCiAgICBoYXZlKSwgcGx1cyB0aGUgMy1jeWNsZSBtYWdpYyBzZXF1ZW5jZSBzaG91bGQga2ljayB0aGUgc3RhdGUgbWFjaGluZSBpbnRvCiAgICB0aGUgcmlnaHQgc3RhdGUgZXZlbiB3aXRob3V0IGEgcmVzZXQgY29tbWFuZC4gU2luY2UgdGhlIEFNRC1zdHlsZSBmbGFzaHMKICAgIHJlcXVpcmUgdGhlIHVubG9jayBzZXF1ZW5jZSBmb3IgcmVhbCBvcGVyYXRpb24sIEkgY2hvc2UgdG8gdHJ5IHRoZSBBTUQgcmVzZXQKICAgIGNvbW1hbmQgZmlyc3QsIHNvIHRoYXQgSW50ZWwgZmxhc2hzIGRvIG5vIHNlZSBhbiBpbnZhbGlkIGNvbW1hbmQgcHJpb3IgdG8KICAgIHRoZSBDRkkgcXVlcnkuCgogICAgSSBoYXZlIHRlc3RlZCB0aGUgcGF0Y2ggb24gQU0yOUxWMzIwLXN0eWxlIGZsYXNocyBmcm9tIEZ1aml0c3UgYW5kIE1hY3Jvbml4LAogICAgcGx1cyBJbnRlbCBTdHJhdGFGbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU3YTg1ZjI2ODMwYzlmMmU3ODUwNjQyMWMyZDUxOWEyOTY1YmM3YTEKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDExOjU2OjQ0IDIwMDggKzAxMDAKCiAgICBBUEk6IEFkZCAoYykgYW5kIGxpY2Vuc2luZyBub3RpY2UgdG8gdGhlIHB1YmxpYyBBUEkgaGVhZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgOTI4ZDFkNzdmODYyM2MxMjBkODc2M2UyMGUxY2E1OGRmOWM1YzRjNgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxMTowNjowNyAyMDA4ICswMTAwCgogICAgRml4IENQVSBQT1NUIHRlc3QgZmFpbHVyZQoKICAgIFRoZSBDUFUgUE9TVCB0ZXN0IGNvZGUgKHJ1biBmcm9tIGNwdV9wb3N0X2V4ZWNfMzEoKSkgZG9lc24ndCBmb2xsb3cgdGhlCiAgICBBQkkgY2FyZWZ1bGx5LCBhdCBsZWFzdCB0aGUgQ1IzLCBDUjQsIGFuZCBDUjUgZmllbGRzIG9mIENSIGFyZSBjbG9iYmVyZWQKICAgIGJ5IGl0LiBUaGUgZ2NjLTQuMiB3aXRoIGl0cyBtb3JlIGFnZ3Jlc3NpdmUgb3B0aW1pemF0aW9uIGV4cG9zZXMgdGhpcyBmYWN0LgogICAgVGhpcyBwYXRjaCBqdXN0IHNhdmVzIHRoZSBDUiB2YWx1ZSBiZWZvcmUgcnVubmluZyB0aGUgdGVzdCBjb2RlLCBzbyBhbGxvd2luZwogICAgaXQgdG8gZG8gYW55dGhpbmcgaXQgd2FudHMgd2l0aCBDUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICAtLQoKY29tbWl0IGQ1OTA4YjA5Mzk1NTQxNWYzZDM0MDcwNjM3OGI5OTFmOTExYWY2NzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIwIDE1OjI2OjUxIDIwMDggLTA2MDAKCiAgICA4NjEwSFBDRDogRG9jdW1lbnQgdGhlIGZsYXNoYmFuayBzZWxlY3Rpb24gc3dpdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTUxY2VlOTlhZDFkMWRhMjBmZDIzYWQyNjVkZTQ3NDQ4ODUyZjU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyMCAxNDoyMjoyNiAyMDA4IC0wNjAwCgogICAgODZ4eDogRml4IEdVUiBQQ0kgY29uZmlnIHJlZ2lzdGVycyBwcm9wZXJseS4KCiAgICBCYWNrIGluIGNvbW1pdCA5NzVhMDgzYTVlZjc4NWM0MTRiMzVmOWM1YjhhZTI1YjI2YjQxNTI0IHdoZXJlCiAgICBJIHRyaWVkIHRvICI4NjEwSFBDRDogRml4IHR5cG9zIGluIHR3byBQQ0kgc2V0dXAgcmVnaXN0ZXJzIiwgSQogICAgYm90Y2hlZCBpdCBkdWUgdG8gbm90IHJlYWxpemluZyB0aGF0IDg2MTAgYW5kIDg2NDEgaGFkIGRpZmZlcmVudAogICAgR2xvYmFsIFV0aWxpdHkgUmVnaXN0ZXIgZGVmaW50aW9ucywgb25lIG9mIHdoaWNoIHdhcyBsaWtlIDg1eHgsCiAgICBhbmQgdGhlIG90aGVyIHdhc24ndC4gIENvcnJlY3QgdGhpcyBwcm9ibGVtIGJ5IGludHJvZHVjaW5nIHR3bwogICAgc3ltYm9scywgb25lIGZvciBlYWNoIDg2eHggU29DLCBidXQgbmVpdGhlciBvZiB3aGljaCBpcyBuYW1lZAogICAgYW55dGhpbmcgbGlrZSA4NXh4LgoKICAgIE15IGJhZC4gIExvdmVseSBXZWRuZXNkYXkgd2l0aCBnaXQgYmlzZWN0LglZb3Uga25vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiMDZlYjk2MWJkZmZjODcyOGIzOGMyNDI0NzNkODAyZTgzYWIyYjQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIwIDEyOjI0OjExIDIwMDggLTA2MDAKCiAgICA4NjEwSFBDRDogRG9uJ3QgdXNlIFZJREVPL0NGQl9DT05TT0xFIGJ5IGRlZmF1bHQuCgogICAgV2l0aG91dCBhbiBhY3R1YWwgc3VwcG9ydGVkIHZpZGVvIGNhcmQgaG9va2VkIHVwLCBlbmFibGluZwogICAgdGhlIENPTkZJR19WSURFTyBieSBkZWZhdWx0IGp1c3QgbWFrZXMgaXQgbG9vayBicm9rZW4gYnkKICAgIHJvdXRpbmcgYWxsIGNvbnNvbGUgb3V0cHV0IHRvIHRoZSB2aWRlbyBjYXJkLiAgIERvbid0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQyNjRlZmY0MzEyZjIzMDc3NmI5MTNlZGFkZTdjZWI3NWYxYjFlMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAxNTowODoxNSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEZpeCBtaXNzaW5nIGNvZGUgZmxhc2ggc2l6ZSBmb3IgTTU0ODVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBNYWhhbiA8a21haGFuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1NGY5MjYzZTRlMTFlMzRiMWU3MGMxNjBiYzQ2N2VmMWQ4ZWM1OWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMTU6MDQ6NDIgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBGaXggNTI4MiBhbmQgNTI3MSBpbnRlcnJ1cHQgbWFzayBiaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3NWEwODNhNWVmNzg1YzQxNGIzNWY5YzViOGFlMjViMjZiNDE1MjQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDE5IDEyOjMxOjA4IDIwMDggLTA2MDAKCiAgICA4NjEwSFBDRDogRml4IHR5cG9zIGluIHR3byBQQ0kgc2V0dXAgcmVnaXN0ZXJzLgoKICAgIFRoZSB0d28gc3ltYm9scyBNUEM4Nnh4X1BPUkRFVlNSX0lPX1NFTCBhbmQgTVBDODZ4eF9QT1JCTVNSX0hBCiAgICB3ZXJlIGVycm9uZW91c2x5IHByZXNlbnQgYXMgODV4eCBuYW1lcyBhbmQgdmFsdWVzLCBsZWZ0b3ZlciBmcm9tCiAgICB0aGUgY2xvbmUgd2Fycy4gIEZpeCB0aGlzIGJ5IHJlbW92aW5nIHRoZSA4NXh4IGNydWZ0IGZyb20gdGhlCiAgICA4Nnh4IGNvZGViYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTNmNTQzM2Y3MDBkNGRhOWY2ZmRmMmE0YmI4MDMxMDEzM2E3YzE3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMTggMTQ6MDE6NTYgMjAwOCAtMDYwMAoKICAgIDg2eHg6IENvbnZlcnQgc2JjODY0MWQgdG8gdXNlIGxpYmZkdC4KCiAgICBUaGlzIGlzIHRoZSBwcm9wZXIgZml4IGZvciBhIG1pc3NpbmcgY2xvc2luZyBicmFjZSBpbiB0aGUgZnVuY3Rpb24KICAgIGZ0X2NwdV9zZXR1cCgpIG5vdGljZWQgYnkgam9lLmhhbW1hbiA8YXQ+IGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tLgogICAgVGhlIGZ0X2NwdV9zZXR1cCgpIGZ1bmN0aW9uIGluIG1wYzg2NDFocGNuLmMgc2hvdWxkIGhhdmUgYmVlbgogICAgcmVtb3ZlZCBlYXJsaWVyIGFzIGl0IHdhcyB1bmRlciB0aGUgb2Jzb2xldGUgQ09ORklHX09GX0ZMQVRfVFJFRSwKICAgIGJ1dCB3YXMgbWlzc2VkLiAgT25seSwgdGhlIHNiYzg2NDFkIHdhcyBub21pbmFsbHkgc3RpbGwgdXNpbmcgaXQuCiAgICBJdCBhbGwgZ290IHJpcHBlZCBvdXQsIGFuZCB0aGUgZnVuY2FsaXR5IHRoYXQgd2FzIGluIGZ0X2JvYXJkX3NldHVwKCkKICAgIHdhcyByZWZhY3RvcmVkIHRvIHJlbW92ZSB0aGUgQ1BVIHBvcnRpb25zIGludG8gdGhlIG5ldyBmaWxlCiAgICBjcHUvbXBjODZ4eC9mZHQuYyBpbnN0ZWFkLglNYWtlIHNiYzg2NDFkIHVzZSB0aGlzIG5vdy4KCiAgICBCYXNlZCBsb29zZWx5IG9uIGFuIG9yaWdpbmFsIHBhdGNoIGZyb20gam9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDRlZmRkYzg3YzUwYzg0Zjg1ZGFkNWMzMzFjNjM0YTZjZTgzMGE4MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjM6MzU6MzEgMjAwOCArMDEwMAoKICAgIG1wYzg2eHg6IEZpeCB1bnVzZWQgdmFyaWFibGUgJ2NvbmZpZycgYW5kICdpbW1hcCcKCiAgICBhbmQgcmVtb3ZlIHVzZWxlc3MgQ09ORklHX0REUl9JTlRFUkxFQVZFCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4M2QxYjM4NzY2OTVjNGYyMWZhZmYyYjczMWQ5ZWY4M2YzOGVkMjA4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAyMzowMzozNiAyMDA4ICswMTAwCgogICAgbXBjODZ4eDogRml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9ucyAnaW5pdF9sYXdzJyBhbmQgJ2Rpc2FibGVfbGF3JwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYjZmMjljODRjMjA4YTA5MWY5NWExMGNiYzk4NTJkNzI5NjU5YmEyMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMTQ6MTU6MzEgMjAwOCArMDEwMAoKICAgIHMzYzI0eDA6IEZpeCB1bnVzZWQgdmFyaWFibGUgJ2knIGluIGZ1bmN0aW9uICdzZXJpYWxfaW5pdF9kZXYnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwOTM3YjhkODY5ZmRiNDJkNmFkNGZlMzEyOTU4NjM5YmQ2MmM5NzNmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAxNDoxNTozMiAyMDA4ICswMTAwCgogICAgcHhhOiBmaXggYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUKCiAgICBmaXggbW1jX2JyZWFkIGZ1bmN0aW9uIHByb3RvdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjRkNzkyMDYzZmZmOTBiODExODE3OWIwOTJmZWVlMDlmZTVjYWUxMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMTQ6MTU6MzAgMjAwOCArMDEwMAoKICAgIGF0OTFjYXA5YWRrOiBmaXggaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2V0aF9pbml0JwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzc1YzQzNTNkYjhmOTAwZjdlYzc3MmUyNmZhYjExNmVjMDBmN2QzYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBGZWIgMTcgMTU6NDM6NDQgMjAwOCArMDEwMAoKICAgIFJlbW92ZSBmaWxlcyBhZGRlZCBieSBtaXN0YWtlLCB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjczODY1NGQzYzg0YTMwZjJiZmQ5YThkNzY1MmZmMjA4MDdjODkwYwpBdXRob3I6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgpEYXRlOglXZWQgRmViIDYgMTE6MTA6MTEgMjAwOCAtMDUwMAoKICAgIFBQQzQ0MEVQeDogT3B0aW9uYWxseSBlbmFibGUgc2Vjb25kIEkyQyBidXMKCiAgICBUaGUgb3B0aW9uIENPTkZJR19JMkNfTVVMVElfQlVTIGRvZXMgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBTZXF1b2lhLCB0aGUKICAgIFBQQzQ0MEVQeCByZWZlcmVuY2UgcGxhdGZvcm0sIGJlY2F1c2UgSUlDMSBpcyBuZXZlciBlbmFibGVkLiBBZGQgU2VxdW9pYSBib2FyZAogICAgY29kZSB0byB0dXJuIG9uIElJQzEgaWYgQ09ORklHX0kyQ19NVUxUSV9CVVMgaXMgc2VsZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBOdXNzIDxtaWtlQHRlcmFzY2FsYS5jb20+CiAgICBDYzogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVmNWI0ZjIyMWMyMmQwNTc3MDg3ODUxMzk1MTc0NWYyMzZiNWI0M2YKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUdWUgRmViIDUgMTA6MjY6NDQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiBDbGVhbnVwIGNvbmZpZ3MKCiAgICAtIGhjdTQuaDogUmVtb3ZlZCBkZWZpbmUgb2YgQ09ORklHX1BQQzQwNUdQcgogICAgLSBDb3JyZWN0ZWQgcGh5IGFkZHJlc3NlcwogICAgLSBGaXggYm9vdCB2YXJpYWJsZXMKICAgIC0gUmVzcGVjdCBsaW5lIGxlbmd0aCBvZiA4MCBjaGFycwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNzQ5NzMxMjZkMWJlNjNhYzc1YmRjMTkyZjQ2MjM0ZGNhM2E3YzQyMQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVR1ZSBGZWIgNSAxMTozMToyOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBIQ1U0LzUuIENsZWFudXBzCgogICAgLSBGaXggc29tZSBjb2Rpbmcgc3R5bGUgdmlvbGF0aW9ucy4KICAgIC0gVXNlIGluL291dF91MTYvMzIgd2hlcmUgYXBwcm9wcmlhdGUuCiAgICAtIFVzZSByZWdpc3RlciBuYW1lcyBmcm9tIHBwYzQwNS5oLgogICAgLSBGaXggdHJhY2UgdXNlYWdlIGZvciBMYXV0ZXJiYWNoLgogICAgLSBSZW1vdmUgb2Jzb2xldGUgZ2VuZXJhdGlvbiBIQ1UyLgogICAgLSBSZW5hbWVkIGZpeGVkX2hjdTRfc2RyYW0gdG8gaW5pdF9wcGM0MDVfc2RyYW0uCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA4Y2MxMGQwNmI4MzNlZDkxN2ExOWFkMzU4YzhlYmJlZDhiYzE5NTU1CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVHVlIEZlYiA1IDEwOjI2OjQxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFBQQzQwNUdQciBmaXggbWlzc2luZyByZWdpc3RlciBkZWZpbml0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMjE0Mzk4ZDljYjIyMjY4ZDlkNGY3NTYzMzU5ZWRjYTBmNzgyOTdhMgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglGcmkgSmFuIDE4IDIxOjQ5OjA1IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IEJlYXV0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIFNlcXVvaWEgYW5kIEtvcmF0IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDMwYzZhMjQxZTg4NDk5ZjUzNmU4NmQzMjU3NTllMjliYTAwZmY2N2YKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTUgMjA6MDk6MDEgMjAwOCArMDEwMAoKICAgIFdpcGUgb3V0IGFzc2VtYmxlciB3YXJuaW5ncyB3aGlsZSBjb21waWxpbmcgeDg2IGJpb3NlbXUKCiAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIGdldCByaWQgb2Ygc29tZSBhc3NlbWJsZXIgd2FybmluZ3MgYWJvdXQKICAgIGNoYW5nZWQgLmdvdDIgc2VjdGlvbiB0eXBlIHdoaWxlIGNvbXBpbGluZyB4ODYgYmlvcyBlbXVsYXRvcgogICAgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNjdhNDM4OWUzOWFkODUzZDY1YjcyZTJiN2NhZDE1YzdlODI5MTE0NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTUgMDA6NTc6MDkgMjAwOCArMDEwMAoKICAgIFByZXBhcmUgdjEuMy4yLXJjMSByZWxlYXNlIGNhbmRpZGF0ZQoKY29tbWl0IGYzM2U5NjUzYzljMDk4Njg5OTVkNzg4NTExZDU3Mzc3MWMyMDlmZTUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTUgMDA6MTM6MjAgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxlIHdhcm5pbmcgb24gbGliX3BwYy9ib2FyZC5jCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGU1YzZmOWY4YmVjNGRmZjk2MDM0MTkxNjFlM2ExNWNjOGFkNWQ1ZjQKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMTg6MjI6MDQgMjAwOCArMDEwMAoKICAgIEFkZCBSYWRlb24gTW9iaWxpdHkgOTIwMCBwY2kgZGV2aWNlIGlkIHRvIHRoZSByYWRlb24gZHJpdmVyCgogICAgVGhpcyBwYXRjaCBleHRlbmRzIFBDSSBkZXZpY2UgaWQgdGFibGUgb2YgdGhlCiAgICByYWRlb24gZHJpdmVyIHNvIHRoYXQgdGhlIGRyaXZlciB3aWxsIGFsc28gc3VwcG9ydAogICAgUmFkZW9uIE1vYmlsaXR5IDkyMDAgKE05KykgYmFzZWQgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAxYjg2MDdlMWY3MTQzNTQ4YzYwNjJjMjgzNzE0NDllYzY5NTg4YzAwCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDE0IDE4OjE5OjUwIDIwMDggKzAxMDAKCiAgICBFeHRlbmQgQVRJIFJhZGVvbiBkcml2ZXIgdG8gc3VwcG9ydCBtb3JlIHZpZGVvIG1vZGVzCgogICAgQWRkcyBBVEkgUmFkZW9uIDkyMDAgc3VwcG9ydCBmb3IgMTI4MHgxMDI0LCAxMDI0eDc2OCwKICAgIDgwMHg2MDAsIDY0MHg0ODAgYXQgMjQsIDE2IGFuZCA4IGJwcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNDEyNDM4MmRlMDI5ZDM2MTE2MmE0YjhjZWNjNzczZWI4ZjI2ZTJhOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTAgMTc6MDU6MjAgMjAwOCArMDEwMAoKICAgIHhzZW5naW5lOiBmaXggdHlwbyBhbmQgZmV3IGNvZGluZyBzdHlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmY0YWJlZTc4OWI2ZDliZTNlYzRiOTdhZDQ4ZjUwOTM1NTU1OWU5ZQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglGcmkgRmViIDggMjE6MjU6NTggMjAwOCArMDEwMAoKICAgIEZpeCB3cm9uZyBtZW1vcnkgbGltaXQgY2FsY3VsYXRpb24gaW4gbWVtb3J5LXRlc3QKCiAgICBJZiB0aGUgbGVuZ3RoIG9mIHRoZSBtZW1vcnkgYWRkcmVzcyByYW5nZSBwYXNzZWQgdG8gdGhlICJtdGVzdCIgY29tbWFuZCBpcwogICAgbm90IG9mIHRoZSBmb3JtIDJeeCAtIDEsIG5vdCBhbGwgYWRkcmVzcyBsaW5lcyBhcmUgdGVzdGVkLiBUaGlzIGJ1ZyBpcwogICAgaW5oZXJpdGVkIGZyb20gdGhlIG9yaWdpbmFsIHNvZnR3YXJlIGF0CiAgICBodHRwOi8vd3d3Lm5ldHJpbm8uY29tL0VtYmVkZGVkLVN5c3RlbXMvSG93LVRvL01lbW9yeS1UZXN0LVN1aXRlLUMuIEZpeAogICAgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KCmNvbW1pdCA3ZTMwZjVlYWM3ZjA3MDgyYTdjYTc3YjdkOTFiOTQ0YThkMGFmNmRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNSAwMDoxMTozOSAyMDA4ICswMTAwCgogICAgQ29kaW5nIFNUeWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNjkyMWUzZGMzMzEyOTNjODczZWM0ZDEwOWZkNTUxN2E0MmE5MGIzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgRmViIDUgMTM6MzA6NDMgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggcmVnaXN0ZXIgYWRkcmVzcyBvZiBTSDc3MjIKCiAgICBUaGUgYWRkcmVzcyBvZiBTSDc3MjIgaXMgd3JvbmcgYnkgb2xkIGRvY3VtZW50LgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDBlYzdhMDYxZmIxYzI3N2Y2YWZkNzNkNjFkZDcxYmQyMWU3ZWY3YjIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxNzo0NDoyMyAyMDA4IC0wNTAwCgogICAgb25seSB1cGRhdGUgdmVyc2lvbiBoZWFkZXIgYXMgbmVlZGVkCgogICAgQ29uc3RhbnRseSByZWJ1aWxkaW5nIHRoZSB2ZXJzaW9uIGhlYWRlciB3aWxsIGZvcmNlIHVzZWxlc3MgcmVsaW5raW5nLCBzbyB3ZQogICAgc2ltcGx5IG5lZWQgdG8gY29tcGFyZSB0aGUgbmV3IGhlYWRlciB3aXRoIHRoZSBleGlzdGluZyBvbmUgYmVmb3JlIHVwZGF0aW5nCiAgICBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMjA4NDQ3ZjhlOTUzZjM0NzQyNWViOTJjOGUyOGQ1OWU2ZDkxMTM2MwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEphbiAyOCAwNTo1NjoxOSAyMDA4IC0wNTAwCgogICAgRG8gbm90IHNwZWNpZnkgYSBDUk9TU19DT01QSUxFIGRlZmF1bHQgd2hlbiBleGVjdXRpbmcgc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxZjc4MGFhNmYxN2E1ZDc5NzkxZDY5ZWMxZDJmNjZkNzZhYzQ1ZDhlCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+CkRhdGU6CVdlZCBGZWIgMTMgMTE6MTk6MTkgMjAwOCArMDEwMAoKICAgIEZpeCByZXR1cm4gdmFsdWUgb2YgbXRlc3Qgd2hlbiBDRkdfQUxUX01FTVRFU1Qgc2V0CgogICAgRml4IGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGZyb20gYSBub24tdm9pZCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KCmNvbW1pdCA5NDNhZmEyMjljZjViZjcwZWY5MTdjN2ViNmJkMGRiNTlhMWJhNjAyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE0OjM1OjI2IDIwMDggLTA2MDAKCiAgICA4NXh4LCA4Nnh4OiBEZXRlcm1pbmUgSTJDIGNsb2NrIGZyZXF1ZW5jaWVzIGFuZCBzdG9yZSBpbiBnbG9iYWxfZGF0YQoKICAgIFVwZGF0ZSBnbG9iYWxfZGF0YSB0byBkZWZpbmUgaTJjMV9jbGsgYW5kIGkyYzJfY2xrIHRvIDg1eHggYW5kIDg2eHguCgogICAgVXBkYXRlIHRoZSBnZXRfY2xvY2tzKCkgZnVuY3Rpb24gaW4gODV4eCBhbmQgODZ4eCB0byBkZXRlcm1pbmUgdGhlIEkyQwogICAgY2xvY2sgZnJlcXVlbmN5IGFuZCBzdG9yZSBpdCBpbiBnZC0+aTJjMV9jbGsgYW5kIGdkLT5pMmMyX2Nsay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5MzFiM2E5YzNiZGZhYWVhYTcxZTU3YTYwMjZlZWM3MjYwMDViMDgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDE0IDIzOjE4OjAxIDIwMDggKzAxMDAKCiAgICBUUU04MzR4OiBjbGVhbiB1cCBjb25maWd1cmF0aW9uCgogICAgR2V0IGJvYXJkIG5hbWUgY29uc2lzdGVudCB3aXRoIExpbnV4IGFuZCBlbHNld2hlcmU7CiAgICBnZXQgcmlkIG9mIGxvY2FsIG5ldHdvcmsgZGVmaW5pdGlvbnMgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzhjYzA5YzU1YjFkN2YyMzM3ODkwNTJjNmZjNDYyZTUzNzc2NjlhOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBGZWIgMTQgMDg6MDI6MTIgMjAwOCArMDEwMAoKICAgIFRGVFA6IGZpeCBzZWFyY2ggb2YgJzonIGluIEJvb3RGaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYmM5ZWZhZGExNzAwOTZjNmIyNzNmMTkxNjVlMzI5MzZkMzMwZDgwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAyMjo0Njo1NSAyMDA4ICswMTAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNzY3MGY2YzFlNTJhZTZkMmE0M2ZmNzVhOGJjZmE3YTVjODZlNDdiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAyMjo0MzoyMiAyMDA4ICswMTAwCgogICAgUFBDOiBVc2UgcjIgaW5zdGVhZCBvZiByMjkgYXMgZ2xvYmFsIGRhdGEgcG9pbnRlcgoKICAgIFIyOSB3YXMgYW4gdW5sdWNreSBjaG9pY2UgYXMgd2l0aCByZWNlbnQgdG9vbGNoYWlucyAoZ2NjLTQuMi54KSBnY2MKICAgIHdpbGwgcmVmdXNlIHRvIHVzZSBsb2FkL3N0b3JlIG11bHRpcGxlIGluc25zOyBpbnN0ZWFkLCBpdCBpc3N1ZXMgYQogICAgbGlzdCBvZiBzaW1wbGUgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMgdXBvbiBmdW5jdGlvbiBlbnRyeSBhbmQgZXhpdCwKICAgIHJlc3VsdGluZyBpbiBiaWdnZXIgY29kZSBzaXplLCB3aGljaCBpbiB0dXJuIG1ha2VzIHRoZSBidWlsZCBmb3IgYQogICAgZmV3IGJvYXJkcyBmYWlsLgoKICAgIFVzZSByMiBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2MyMzRlZmE2OTNiYzU5OTA2YzJiZTU1Yzc5MThlY2JiNTUzOTJlYQpBdXRob3I6IFV3ZSBLbGVpbmUtS8O2bmlnIDxVd2UuS2xlaW5lLUtvZW5pZ0BkaWdpLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAwOTowODo0OSAyMDA4ICswMTAwCgogICAgQVJNOiBtYWtlIHRoZSBtYWNoaWQgY29uZmlndXJhYmxlIHZpYSB0aGUgZW52aXJvbm1lbnQKCiAgICBJZiB0aGUgdmFyaWFibGUgIm1hY2hpZCIgZXhpc3RzLCBsZXQgZG9fYm9vdG1fbGludXggdXNlIHRoYXQgaW5zdGVhZAogICAgb2YgYmQtPmJpX2FyY2hfbnVtYmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUtS/ZuaWcgPFV3ZS5LbGVpbmUtS29lbmlnQGRpZ2kuY29tPgoKY29tbWl0IGRkMjQwNTg0MDdjNWFkZDQ1Y2M2MGFlYzZjNzU3ZGRjMWExN2UxYjAKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJV2VkIEphbiAyMyAxNjozNDo0NiAyMDA4ICswMjAwCgogICAgVXNlICNpZmRlZiBDT05GSUdfRlNMRE1BRkVDCgogICAgTUNEX3Rhc2tzLmMgbGFja3MgW3N1YmplY3RdIHNvIGNvbXBpbGF0aW9uIG9mIG1pcHMgdGFyZ2V0cyAoYW5kIG1vcmUsIHByb2JhYmx5KQogICAgZmFpbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCAyNmM3YmFiODFlMDhkYzdiZDY5NmM0OGY3NTM0MjhhODI5NjI5YmQ4CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEphbiAxOSAxMDoyNTo1OSAyMDA4ICswOTAwCgogICAgY29tbW9uL21paXBoeXV0aWwuYzogQ2xlYW51cCBNSUlfREVCVUcgYW5kIGRlYnVnKCkKCiAgICBDdXJyZW50IE1JSV9ERUJVRyBpcyBjb25mdXNpbmcgaW4gdHdvIHdheXMuIE9uZSBpcyB1c2VsZXNzIGRlZmluZS10aGVuLQogICAgdW5kZWYgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4gVGhlIG90aGVyIGlzIHRoZXJlIGlzIG9ubHkgb25lIGRlYnVnKCkgaW4KICAgIHRoaXMgZmlsZSwgYW5kIHRoYXQgZG9lc24ndCBzZWVtIHdvcnRod2hpbGUgdG8gYm90aGVyIGhhdmluZyBNSUlfREVCVUcuCiAgICBXaGlsZSB0aGVyZSBhcmUgbWFueSB1c2VmdWwgcHJpbnRmKCkvcHV0cygpIGRlYnVnIGNvZGVzLCBidXQgdGhleSBhcmUgZm9yCiAgICBERUJVRywgbm90IGZvciBNSUlfREVCVUcuCgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBwdXQgdGhlbSBhbGwgdG9nZXRoZXIgaW50byBNSUlfREVCVUcgYW5kIGRlYnVnKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA3NTFiOWI1MTg5ZjMyNzRiMDNjODA5MTcyNjMxMzE2ZDZiMDAyYzgyCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMTY6NDM6MjUgMjAwOCArMDkwMAoKICAgIE9uZU5BTkQgSW5pdGlhbCBQcm9ncmFtIExvYWRlciAoSVBMKSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBPbmVOQU5EIGJvb3Qgd2l0aGluIFUtQm9vdC4KICAgIEJlZm9yZSB0aGlzIHdvcmssIHdlIHVzZWQgYW5vdGhlciBPbmVOQU5EIElQTCBjYWxsZWQgWC1Mb2FkZXIgYmFzZWQKICAgIG9uIG9wZW4gc291cmNlLiBXaXRoIHRoaXMgd29yaywgd2UgY2FuIGJ1aWxkIHRoZSBvbmVib290LmJpbiBpbWFnZQogICAgd2l0aG91dCBvdGhlciBwcm9ncmFtLgoKICAgIFRoZSBidWlsZCBzZXF1ZW5jZSBpcyBzaW1wbGUuCiAgICBGaXJzdCwgaXQgY29tcGlsZXMgdGhlIHUtYm9vdC5iaW4KICAgIFNlY29uZCwgaXQgY29tcGlsZXMgT25lTkFORCBJUEwKICAgIEZpbmFsbHksIGl0IGJlY29tZXMgdGhlIG9uZWJvb3QuYmluIGZyb20gT25lTkFORCBJUEwgYW5kIHUtYm9vdC5iaW4KICAgIFRoZSBtZWNoYW5pc20gaXMgc2ltaWxhciB3aXRoIE5BTkQgYm9vdCBleGNlcHQgaXQgYm9vdHMgZnJvbSBpdHNlbGYuCgogICAgQW5vdGhlciB0aGluZyBpcyB0aGF0IHlvdSBjYW4gb25seSB1c2UgdGhlIE9uZU5BTkQgSVBMIG9ubHkgdG8gd29yawogICAgb3RoZXIgYm9vdGxvYWRlciBzdWNoIGFzIFJlZEJvb3QgYW5kIHNvIG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgMjFmNmY5NjM2ZjBlOTc4Mzk3NTQ4NzUxMzQ3NDI1ZmJmOGQ0MmJiMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxMzowNjo1OSAyMDA4IC0wNjAwCgogICAgRml4IENPTkZJR19NTUMgdXNhZ2UgaW4gZmF0IGNvZGUKCiAgICBBICNpZiBzdGF0ZW1lbnQgaW4gZmF0LmMgZGVwZW5kZWQgb24gQ09ORklHX01NQywgaW5zdGVhZCBvZgogICAgZGVmaW5lZChDT05GSUdfTU1DKS4gIFRoaXMgbWVhbnQgQ09ORklHX01NQyBuZWVkZWQgdG8gYmUgZGVmaW5lZAogICAgYXMgIjEiIHJhdGhlciB0aGFuIGp1c3QgZGVmaW5lZC4gIE5vdyBpdCdzIGJldHRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjU3ZDdkMzY0Y2UxODllMzliMGE2NDMzOGQyZjgwMTJjMDc0YTJiZApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTI6NTI6MzEgMjAwOCArMDEwMAoKICAgIHBwYzogUmVmYWN0b3IgY2FjaGUgcm91dGluZXMsIHNvIHRoZXJlIGlzIG9ubHkgb25lIGNvbW1vbiBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzZjJhYzhmOTI4Yzc2Y2JkMjM3NDQzN2IyZDA3OWY4YjQzMjRhYWJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNTo1NTowMiAyMDA4IC0wNjAwCgogICAgODZ4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gc3lzX2Vwcm9tLmMKCiAgICBzeXNfZWVwcm9tLmM6ODI6OTogd2FybmluZzogdW5rbm93biBlc2NhcGUgc2VxdWVuY2UgJ1wvJwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjUyMzAxMDcwMjU3MzNlODllMjhmZDVlNWNmZDkxNmQ0OTUzYzI4YQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW4gYXQ+CkRhdGU6CUZyaSBGZWIgMjIgMTE6NDA6NTAgMjAwOCArMDAwMAoKICAgIE1vdmUgQVQ5MVJNOTIwMERLIGJvYXJkIHN1cHBvcnQgdW5kZXIgYm9hcmQvYXRtZWwKCiAgICBXZSBhbHJlYWR5IGhhdmUgYSB2ZW5kb3Igc3ViZGlyIGZvciBBdG1lbCwgc28gd2Ugc2hvdWxkIHVzZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuIDxhdD4gYXRtZWwuY29tPgoKY29tbWl0IDZkMDk0M2E2YmU5OTk3N2Q2ZDg1M2Q1MTc0OWU5OTYzZDY4ZWIxOTIKQXV0aG9yOiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAwOTowNjo1MiAyMDA4ICswMDAwCgogICAgQVJNOiBjbGVhbnVwIGR1cGxpY2F0ZWQgZXhjZXB0aW9uIGhhbmRsaW5nY29kZQoKICAgIE1vdmUgZHVwbGljYXRlZCBleGNlcHRpb24gaGFuZGxpbmcgY29kZSBpbnRvIGxpYl9hcm0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+Cgpjb21taXQgZWE4ZDk4OWY0ZWY4MjAzZTFjMDI5MWU2MjQzNWE4YzYyZTNjZmIyOQpBdXRob3I6IFRpbW8gVHV1bmFpbmVuIDx0aW1vLnR1dW5haW5lbkBzeXNhcnQuZmk+CkRhdGU6CUZyaSBGZWIgMSAxMDowOTowMyAyMDA4ICswMDAwCgogICAgU3VwcG9ydCBmb3IgQXJ0aWxhIE0tNTAxIHN0YXJ0ZXIga2l0CgogICAgS2ltbW8gTGVwcGFsYSAvIFN5c2FydCBhbmQKICAgIFRpbW8gVHV1bmFpbmVuIC8gU3lzYXJ0Cgpjb21taXQgOTYwNGI2ZTUzZGRhZTRmZTAwYTQ4OGNiY2Q2YjBlNmNiMzQ0YmNjYwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CU1vbiBGZWIgMTEgMTA6NTA6MTkgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQKCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICByZWFkX2RhdGFmbGFzaCgpIHRha2VzIGEgc2lnbmVkIGNoYXIgcG9pbnRlciBhcyBhIHBhcmFtZXRlci4gU2lsZW5jZSBhCiAgICBmZXcgd2FybmluZ3MgZHVlcyB0byBpbmNvcnJlY3QgcGFyYW1ldGVyIHR5cGVzIGluIGVudl9kYXRhZmxhc2guYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDY0ZThhMDZhZjY4Y2RhMTc0YThhMDZkMGE2MWZjZTVlNWJiMTg5ZDcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgRmViIDcgMDk6NDI6NTcgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBtb3ZlIGJvYXJkIGZpbGVzIHRvIEF0bWVsIHZlbmRvciBkaXJlY3RvcnkuCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IG1vdmUgYXQ5MWNhcDlhZGsgYm9hcmQgZmlsZXMgdG8gQXRtZWwgdmVuZG9yIGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDcyNjNlZjE5MWI4N2RhOTQ3NjhmNzYyYzcwOTNiZWRlYjcwZGI5OGYKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbiBhdD4KRGF0ZToJVGh1IEphbiAzIDIxOjE1OjU2IDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogTUFDQiBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW4gPGF0PiBwb3BpZXMubmV0PgogICAgQWNrZWQtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW4gPGF0PiBhdG1lbC5jb20+Cgpjb21taXQgNmFmY2FiZjExZDczMjE4NTBmNGZlYWFkZmVlODQxNDg4YWNlNTRjNQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBGZWIgNyAxNjozNzo1NCAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IGJvYXJkLyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgZmVmYjZjMTA5MjhjYWE5ZTcxMzM1Y2FkNjRkY2I2NWM4M2ZjZThhYgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuIGF0PgpEYXRlOglXZWQgSmFuIDMwIDIxOjE1OjU0IDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogY3B1LyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuIDxhdD4gcG9waWVzLm5ldD4KCmNvbW1pdCBmYTUwNmE5MjZjZWMzNDg4MDUxNDM1NzZjOTQxZjhlNjFiMzMzY2MwCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IEphbiAzMSAyMToxNTo1MyAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IGluY2x1ZGUvIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCAyMGIxOTdjNmYyNzk5YWYzOTlhNjhmOTZhMWFmZjU0M2E3NTYyMWI4CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJU3VuIEphbiAyMCAxOTo0OToyMSAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IGJ1aWxkIGludGVncmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBkNDlmZTRiZWQ1YjY5ZWM5MTA5MDlkMWJkNjJkYTIzZWNkODgwMWZkCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJU3VuIEphbiAyMCAyMTowNzowMCAyMDA4ICswMDAwCgogICAgSW1wcm92ZSBEYXRhRmxhc2ggQ1MgZGVmaW5pdGlvbi4KCiAgICBVc2UgYSBzdHJ1Y3R1cmUgaW5zdGVhZCBvZiB0aGUgZXJyb3IgcHJvbmUgdW5uYW1lZCBhcnJheSB0bwogICAgZGVmaW5lIHRoZSBwb3NzaWJsZSBkYXRhZmxhc2ggYmFua3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBhNmNkZDIxYjU2MDE0MjA4NzA2MjM4NzEyYTg1M2E5ZTlhMGEyMjkwCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJU2F0IEphbiAxOSAyMTowOTozNSAyMDA4ICswMDAwCgogICAgRml4IGFybTkyNmVqcyBjb21waWxlIHdoZW4gU0tJUF9MT1dMRVZFTF9JTklUIGlzIG9uCgogICAgRml4IGFybTkyNmVqcyBjb21waWxlIHdoZW4gU0tJUF9MT1dMRVZFTF9JTklUIGlzIG9uLgoKICAgIGNwdS9hcm05MjZlanMvc3RhcnQubzogSW4gZnVuY3Rpb24gYGNwdV9pbml0X2NyaXQnOgogICAgLi4uL2NwdS9hcm05MjZlanMvc3RhcnQuUzoyMjc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGxvd2xldmVsX2luaXQnCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBlYTY4NmY1MmU0NWIzZGYyOTM4ODY2ZDNmNWE5OGJiMjU1NmRmZTJiCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIEZlYiAxIDE2OjUwOjI0IDIwMDggKzAwMDAKCiAgICBGaXggdGltZXIgb3ZlcmZsb3cgaW4gRGFWaW5jaQogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgZjRlN2NiZmNiMGZjYmMzMjVhMmJjZmVhN2UwMGUzZGQzN2Y5Mzg0NgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBGZWIgMSAxNjo0OTowOCAyMDA4ICswMDAwCgogICAgVXBkYXRlIGJvYXJkIE5ldFN0YXIKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCmNvbW1pdCBiN2Y2MTkzZTc2NjUxZTFmZDYwNmU0NmViMTE5MTViNTNjYjY2MThiCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVHVlIEZlYiA1IDEwOjI2OjQyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gRml4IG1ha2UgTz0uLi94eAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMjllMzUwMGNiYzQzYzg5ZWZmNmU3MjBjYTgzZTM3NWRlZWVjZDliMwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUdWUgSmFuIDIyIDA4OjUxOjU5IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IEFkZCBDT05GSUdfNHh4X0RDQUNIRSBjb21waWxlIHN3aXRjaCB0byBEZW5hbGktY29yZSBTUEQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGZlODkxZWNmNGQxODdlOWQxMWRkZTg2OWVkNDYyM2FmNTJiNTQ0NTEKQXV0aG9yOiBIaXJvc2hpIEl0byA8aXRvQG1sYi5jby5qcD4KRGF0ZToJVGh1IEphbiAzMSAxODozNTowNCAyMDA4ICswOTAwCgogICAgTkZTIFRpbWVvdXQgd2l0aCBsYXJnZSBmaWxlcy4KCiAgICBSZXRyeSB0byBzZW5kIE5GUyBwYWNrZXQgYmVmb3JlIHJlYWNoaW5nIHRpbWVvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGlyb3NoaSBJdG8gPGl0b0BtbGIuY28uanA+Cgpjb21taXQgODhmNzI1MjdmNWI4OWMwOTA1YWQ1YzM2Y2MyZWY4ZDI5ZGQ2YmJmMApBdXRob3I6IEpvaGFubmVzIFN0ZXplbmJhY2ggPGpzQHNpZzIxLm5ldD4KRGF0ZToJVHVlIEphbiAyOSAwMDoxMToyNSAyMDA4ICswMTAwCgogICAgQWRkIGRlcGVuZGVuY2llcyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgd2l0aCBwYXJhbGxlbCBtYWtlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaGFubmVzIFN0ZXplbmJhY2ggPGpzQHNpZzIxLm5ldD4KCmNvbW1pdCA2ZDFiNmY5Zjg5YzgxNWVhY2E0NGFjZmY4ZTczZWNlNzE4MWY2MWI2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gSmFuIDI4IDA1OjQ2OjAxIDIwMDggLTA1MDAKCiAgICBNYXJrIGJvYXJkX2luaXRfW2ZyXSBhcyBub3JldHVybgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxNjFiMmFmNGQ3YjQ4ZmQ2MDJjZTMzM2MzNTVhNGRmMDMzNzg5MmJiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gSmFuIDI4IDA1OjI4OjUwIDIwMDggLTA1MDAKCiAgICBPbmx5IHVzZSBURVhUX0JBU0UgaWYgZGVmaW5lZCBieSB0aGUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMWI3Njk4ODE3NTAwMzBmMTA3NDM4MDhiOWQ2MDEzZTExZjU1OTM1MApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBKYW4gMjUgMDc6NTQ6NDcgMjAwOCArMDEwMAoKICAgIEZpeCByZW1haW5pbmcgQ09ORklHX0NPTU1BTkRTCgogICAgdXBkYXRlIGNvbW1lbnRzCiAgICBGaXggY29kaW5nIHN0eWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYzlkNDJlNmIwYjgzZDUwNzMzNWEyOTFlM2VhOTkyNDAwMzhmNGI5CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEphbiAyMSAxNjo0NjowMCAyMDA4ICswMTAwCgogICAgQWRkICp+IHRvIC5naXRpZ25vcmUKCiAgICBPbmUgc2hvdWxkIG5ldmVyIGFkZCBhIGJhY2t1cCBmaWxlIGVuZGluZyBpbiB3aXRoIH4gdG8gdGhlIGdpdCByZXBvc2l0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgM2NmYjBjNTFiMmJiNWVkZTU0ZWNhODVhY2U1YjFiYTEyYmUzMTRiMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDA6MDI6MTAgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5lcyBmb3IgQVJSQVlfU0laRQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzc3Y2U0NzRiMWM1N2IxM2U5ZDM2ZDk4MzBmMTQ3OTY2YzE0MzY5NApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CU1vbiBKYW4gMTQgMjI6MDg6MTQgMjAwOCArMDEwMAoKICAgIEZpeCBpbmNvcnJlY3QgYWRkcmVzcyB0ZXN0IGluIEFUOTFGX0RhdGFmbGFzaFNlbGVjdCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgZDlhZDExNWJiZjdiYjA4NDJkZTdkYmQyNTAyYjdlNDMwZjgzY2MzZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMTMgMTU6MDk6NTggMjAwOCAtMDYwMAoKICAgIEZpeCBidWlsZGluZyBvZiBmZHRfc3VwcG9ydC5jIGlmIERFQlVHIHNldAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgY2NkNmUxNDY0ZTUzOTZiYzFhOWFlYmY3MDc3ZGRmNDM0MmVhZmUwMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTIgMTQ6NTM6MjggMjAwOCAtMDYwMAoKICAgIEFkZCBDRkdfTVBDODZ4eF9ERFJfQUREUiBhbmQgQ0ZHX01QQzg2eHhfRERSMl9BRERSIHN5bWJvbHMKCiAgICBUaGVzZSByZXBsYWNlIGRpcmVjdCBzdHJ1Y3R1cmUgcmVmZXJlbmNlcyBmb3IgSU1NUiBzZWN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2Mjc3NmJlOGRjYTQwOTdjYTAzZDRmOTQxNWYwOGQ0ODg3YjQ1ZDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgRmViIDEyIDAwOjQ1OjA2IDIwMDggKzAxMDAKCiAgICBHZXQgcmlkIG9mICIjdW5kZWYgREVCVUciIGZyb20gYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzNiZjFlMmRlNzg2MmJjZGJkNWE5Zjk5M2IzZTg0YjY3YzhlYTljOApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTc6MDk6NDEgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSAjdW5kZWYgREVCVUcgZnJvbSBNUEM4M3h4IGJvYXJkIGhlYWRlciBmaWxlcwoKICAgIFJlbW92ZSB0aGUgIiN1bmRlZiBERUJVRyIgbGluZSBmcm9tIGFsbCBGcmVlc2NhbGUgODN4eCBib2FyZCBoZWFkZXIgZmlsZXMuCiAgICBUaGUgaW5jbHVzaW9uIG9mIHRoaXMgbGluZSBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGVuYWJsZSBkZWJ1ZyBjb2RlIGluCiAgICBvdGhlciBzb3VyY2UgZmlsZXMsIGJlY2F1c2UgIiNkZWZpbmUgREVCVUciIHR5cGljYWxseSBuZWVkcyB0byBiZSBkZWZpbmVkCiAgICBiZWZvcmUgYW55IGhlYWRlciBmaWxlcyBhcmUgaW5jbHVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTAxOGNlMmUwODZlOWNhZjM1YjkxNGQ2NzViODJiYzQ4ODhmMDc3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwODoyNTo0NSAyMDA4IC0wNjAwCgogICAgUUU6IE1vdmUgRkRUIHN1cHBvcnQgaW50byBhIGNvbW1vbiBmaWxlCgogICAgTW92ZSB0aGUgZmxhdCBkZXZpY2UgdHJlZSBzZXR1cCBmb3IgUUUgcmVsYXRlZCBkZXZpY2VzIGludG8KICAgIGEgY29tbW9uIGZpbGUgc2hhcmVkIGJldHdlZW4gODN4eCAmIDg1eHggcGxhdGZvcm1zIHRoYXQgaGF2ZSBRRSdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWNmNzQ2YzMwMzcxMDMyOWY4MDQwZDljNjJlZTM1NDMxM2UzZTkxZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTk6MDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIGtlcm5lbCBkYXRhIGZpbmQgY29kZSB0byBnZXRfa2VybmVsKCkgcm91dGluZQoKICAgIFZlcmlmaWNhdGlvbiBvZiB0aGUga2VybmVsIGltYWdlIChpbiBvbGQgZm9ybWF0KSBhbmQgZmluZGluZyBrZXJuZWwKICAgIGRhdGEgaXMgbW92ZWQgdG8gYSBkZWRpY2F0ZWQgcm91dGluZS4gVGhlIHJvdXRpbmUgd2lsbCBhbHNvIGhvbGQKICAgIHN1cHBvcnQgZm9yLCB0byBiZSBhZGRlZCwgbmV3IGltYWdlIGZvcm1hdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdiMzI1NDU0ZmQyMzFkNDI3M2RlM2ZlMzczODUwZjc3N2ZiMDg2YmYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU4OjIwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBGRFQgaGFuZGxpbmcgaW4gUFBDIGRvX2Jvb3RfbGludXgoKQoKICAgIE1vdmUgRkRUIGJsb2IgZmluZGluZyBhbmQgcmVsb2NhdGlvbiB0byBhIGRlZGljYXRlZAogICAgZ2V0X2ZkdCgpIHJvdXRpbmUuIEl0IGluY3JlYXNlcyBjb2RlIHJlYWRhYmlsaXR5IGFuZAogICAgd2lsbCBtYWtlIGFkZGluZyBzdXBwb3J0IGZvciBuZXcgdUltYWdlIGZvcm1hdCBlYXNpZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiNmIwZmU2NDYwYjcwNjNhYzYwYjlhMzUzMWVmMjEwYWVkYjMxNDUxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1ODoxMyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENsZWFudXAgZG9fYm90bV9saW51eCgpIGJvb3QgYWxsb2NhdGlvbnMKCiAgICBUaGlzIHBhdGNoIG1vdmVzIGNvbW1vbiBwcmUtYm9vdCBhbGxvY2F0aW9uIHN0ZXBzIHNoYXJlZCBiZXR3ZWVuIFBQQwogICAgYW5kIE02OEsgdG8gYSBoZWxwZXIgcm91dGluZXM6CgogICAgY29tbW9uOgogICAgLSBnZXRfYm9vdF9zcF9saW1pdCgpCiAgICAtIGdldF9ib290X2NtbGluZSgpCiAgICAtIGdldF9ib290X2tiZCgpCgogICAgcGxhdGZvcm06CiAgICAtIHNldF9jbG9ja3NfaW5fbWh6KCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGNlYWVkMmIxZTU0ZWJmMTRkNjAwZTAyZmVmMDE2YzhkZjVjYzRkNDAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU3OjE3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSByYW1kaXNrIGxvYWRpbmcgdG8gYSBjb21tb24gcm91dGluZQoKICAgIFJhbWRpc2sgbG9hZGluZyBjb2RlLCBpbmNsdWRpbmcgaW5pdHJkX2hpZ2ggdmFyaWFibGUgaGFuZGxpbmcsCiAgICB3YXMgZHVwbGljYXRlZCBmb3IgUFBDIGFuZCBNNjhLIHBsYXRmb3Jtcy4gVGhpcyBwYXRjaCBjcmVhdGVzCiAgICBjb21tb24gaGVscGVyIHJvdXRpbmUgdGhhdCBpcyBiZWluZyBjYWxsZWQgZnJvbSBib3RoIHBsYXRmb3JtCiAgICBkb19ib290bV9saW51eCgpIHJvdXRpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNjhkNGYwNWU2YjIzODNhNDQyZmI3MWY4MGYyYTlmYmIzZDhkZWY2OApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTU6NTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW1vdmVkIGRlYWQgcmFtZGlzayBjb2RlIG9uIG1pY3JvYmxhemUgYXJjaGl0ZWN0dXJlcwoKICAgIE1pY3JvYmxhemUgZG9fYm9vdG1fbGludXgoKSBpbmNsdWRlcyByYW1kaXNrIHByb2Nlc3NpbmcgY29kZSBidXQKICAgIHRoZSByYW1kaXNrIGRvZXMgbm90IGdldCB1c2VkIGFueXdoZXJlIGxhdGVyIG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNWFkMDNlYjM4NTRjMTYyNjg0MjIyYTcxOGI0NGMwNzE2ZWEwZGIwMwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTU6MzkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGYWN0b3Igb3V0IGNvbW1vbiBpbWFnZV9nZXRfcmFtZGlzaygpIHJvdXRpbmUKCiAgICBBcmNoaXRlY3R1cmUgc3BlY2lmaWMgZG9fYm9vdG1fbGludXgoKSByb3V0aW5lcyBzaGFyZSBjb21tb24KICAgIHJhbWRpc2sgaW1hZ2UgcHJvY2Vzc2luZyBjb2RlLiBNb3ZlIHRoaXMgY29kZSB0byBhIGNvbW1vbgogICAgaGVscGVyIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkM2M1ZWI2ZGQxZjRlZDNjMzM4ODM4NmNmMWQxYmY4MmFhNTFkNTZiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowOCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgRkRUIGVycm9yIHByaW50aW5nIHRvIGNvbW1vbiBmZHRfZXJyb3IoKSByb3V0aW5lCgogICAgRkRUIGVycm9yIGhhbmRsaW5nIGluIFBQQyBkb19ib290bV9saW51eCgpIHNoYXJlcyB0aGUgc2FtZSBtZXNzYWdlIGZvcm1hdC4KICAgIFRoaXMgcGF0Y2ggbW92ZXMgZXJyb3IgbWVzc2FnZSBwcmludGluZyB0byBhIGhlbHBlciBmZHRfZXJyb3IoKSByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA0MmI3M2U4ZWUwMGQ0ODAwNDc5MWRlYTY0YjgwOTNmYjk3NGM1N2UxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZhY3RvciBvdXQgY29tbW9uIHJvdXRpbmVzIGZvciBnZXR0aW5nIG9zL2FyY2gvdHlwZS9jb21wIG5hbWVzCgogICAgTW92ZSBudW1lcmljLWlkIHRvIG5hbWUgdHJhbnNsYXRpb24gZm9yIGltYWdlIG9zL2FyY2gvdHlwZS9jb21wIGhlYWRlcgogICAgZmllbGRzIHRvIGEgaGVscGVyIHJvdXRpbmVzOiBpbWFnZV9nZXRfb3NfbmFtZSgpLCBpbWFnZV9nZXRfYXJjaF9uYW1lKCksCiAgICBpbWFnZV9nZXRfdHlwZV9uYW1lKCksIGltYWdlX2dldF9jb21wX25hbWUoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGU5OWMyNjY5NGEzODQyMjFkMzM2ZjY0NDhjMDZhNTc0NzljMGJhYTQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlIHN0YW5kYWxvbmUgYXBwbGljYXRpb25zIGhhbmRsaW5nIGZyb20gYm9vb3RtCgogICAgU3RhbmRhbG9uZSBhcHBsaWNhdGlvbnMgYXJlIHN1cHBvc2VkIHRvIGJlIHJ1biB1c2luZyB0aGUgImdvIiBjb21tYW5kLgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHN0YW5kYWxvbmUgaW1hZ2VzIGhhbmRsaW5nIGZyb20gdGhlIGRvX2Jvb3RtKCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0YTJhZDVmZjY0MDA2OTg0MzNkZDcyMDNkMzQ5MzljM2M5Y2M5YmZmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZSBPRl9GTEFUX1RSRUUgc3VwcG9ydCBmcm9tIFBQQyBib290bSBjb2RlCgogICAgU3VwcG9ydCBmb3IgT0ZfRkxBVF9UUkVFIGlzIHRvIGJlIG9ic29sZXRlZCBpbiB0aGUgbmVhciBmdXR1cmUsCiAgICByZW1vdmUgcmVsYXRlZCBjb2RlIGZyb20gdGhlIGJvb3RtIHJvdXRpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgODI4NTBmM2QzMmEyNjYxODY4ZWM2ODc2YmVkN2EyMmM1NWNlZjcxOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBVc2UgaW1hZ2UgQVBJIGluIFNIIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZQoKICAgIEludHJvZHVjZSBpbWFnZSBoYW5kbGluZyBBUEkgZm9yIGxhdGVseSBhZGRlZCBIaXRhY2hpIFNIIGFyY2hpdGVjdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDRhOTk1ZWRlYzFhYzE2M2Q5MzI2ZDE0M2ZmZTJiNDdlNzU0MzQwN2YKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVuYW1lIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBib290bSBjb2RlIGZpbGVzCgogICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIGRvX2Jvb3RtX2xpbnV4KCkgYW5kIG90aGVyIGJvb3RtIGhlbHBlciByb3V0aW5lcyBpcwogICAgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGNvZGUuIEFzIHN1Y2ggaXQgcmVzaWRlcyBpbiBsaWJfPGFyY2g+IGRpcmVjdG9yaWVzCiAgICBpbiBmaWxlcyBuYW1lZCA8YXJjaD5fbGludXguYwoKICAgIFRoaXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBmaWxlcyB0byBhIG1vcmUgY2xlYXIgYW5kIGFjY3VyYXRlCiAgICBsaWJfPGFyY2g+L2Jvb3RtLmMgZm9ybS4KCiAgICBMaXN0IG9mIHRoZSByZW5hbWVkIGZpbGVzOgogICAgICAgbGliX2FybS9hcm1saW51eC5jIC0+IGxpYl9hcm0vYm9vdG0uYwogICAgICAgbGliX2F2cjMyL2F2cjMyX2xpbnV4LmMgLT4gbGliX2F2cjMyL2Jvb3RtLmMKICAgICAgIGxpYl9ibGFja2Zpbi9iZjUzM19saW51eC5jIC0+IGxpYl9ibGFja2Zpbi9ib290bS5jCiAgICAgICBsaWJfaTM4Ni9pMzg2X2xpbnV4LmMgLT4gbGliX2kzODYvYm9vdG0uYwogICAgICAgbGliX202OGsvbTY4a19saW51eC5jIC0+IGxpYl9tNjhrL2Jvb3RtLmMKICAgICAgIGxpYl9taWNyb2JsYXplL21pY3JvYmxhemVfbGludXguYyAtPiBsaWJfbWljcm9ibGF6ZS9ib290bS5jCiAgICAgICBsaWJfbWlwcy9taXBzX2xpbnV4LmMgLT4gbGliX21pcHMvYm9vdG0uYwogICAgICAgbGliX25pb3Mvbmlvc19saW51eC5jIC0+IGxpYl9uaW9zL2Jvb3RtLmMKICAgICAgIGxpYl9uaW9zMi9uaW9zX2xpbnV4LmMgLT4gbGliX25pb3MyL2Jvb3RtLmMKICAgICAgIGxpYl9wcGMvcHBjX2xpbnV4LmMgLT4gbGliX3BwYy9ib290bS5jCiAgICAgICBsaWJfc2gvc2hfbGludXguYyAtPiBsaWJfc2gvYm9vdG0uYwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNzU4MjQzOGMyODViZjBjZWY4MjkwOWQwZjIzMmRlNjRlYzU2N2E4YQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZXR1cm4gZXJyb3Igb24gaW1hZ2UgbW92ZS91bmNvbXByZXNzIG92ZXJ3cml0ZXMKCiAgICBDaGVjayBmb3Igb3ZlcndyaXRlcyBkdXJpbmcgaW1hZ2UgbW92ZS91bmNvbXByZXNzLCByZXR1cm4gd2l0aCBlcnJvcgogICAgd2hlbiB0aGUgb3JpZ2luYWwgaW1hZ2UgZ2V0cyBjb3JydXB0ZWQuIFJlcG9ydCBjbGVhciBtZXNzYWdlIHRvIHRoZSB1c2VyCiAgICBhbmQgcHJldmVudCBmdXJ0aGVyIHRyb3VibGVzIHdoZW4gcG9pbnRlciB0byB0aGUgY29ycnVwdGVkIGltYWdlcyBpcyBwYXNzZWQKICAgIHRvIGRvX2Jvb3RtX2xpbnV4IHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmMTNlN2IyZTk5M2M2MWZlZDFmNjA3OTYyNTAxZTA1MTk0MGQ2ZTgwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjEyOjE3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBpbWFnZSBoZWFkZXIgcG9pbnRlciB1c2UgaW4gYm9vdG0gY29kZQoKICAgIC0gdXNlIHNpbmdsZSBpbWFnZSBoZWFkZXIgcG9pbnRlciBpbnN0ZWFkIG9mIGEgc2V0IG9mIGF1eGlsbGlhcnkgdmFyaWFibGVzLgogICAgLSBhZGQgbXVsdGkgY29tcG9uZW50IGltYWdlIGhlbHBlciByb3V0aW5lczogZ2V0IGNvbXBvbmVudCBzaXplL2RhdGEgYWRkcmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMWVlMTE4MGI2ZTkzZTU2ZDAyODJhYzhkOTQzZTQ0OGU5ZDBlYWIyMApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxNzoxMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENsZWFudXAgY21kX2Jvb3RtLmMKCiAgICAtIHNvcnQgYW5kIGNsZWFudXAgaGVhZGVycywgZGVjbGFyYXRpb25zLCBldGMuCiAgICAtIGdyb3VwIHJlbGF0ZWQgcm91dGluZXMKICAgIC0gY2xlYW51cCBpbmRlbnRhdGlvbiwgd2hpdGUgc3BhY2VzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhZjEzY2RiYzAxZWFmODg4ODA5NzhiZmI0ZjYwM2UwMTI4MThiYTI0CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQ1IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG1lbW1vdmVfd2QoKSBjb21tb24gcm91dGluZQoKICAgIE1vdmUgY29tbW9uLCB3YXRjaGRvZyBzZW5zaWJsZSBtZW1tb3ZlIGNvZGUgdG8gYSBoZWxwZXIgbWVtbW1vdmVfd2QoKSByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOTU4ZmM0OGFiZGRlYWI1MTNlYTQ4NDdlMzRmMjJhMmU5ZmU2N2ZlMQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBGRFQgaGVhZGVyIHZlcmlmaWNhdGlvbiBpbiBQUEMgZG9fYm9vdF9saW51eCgpIHJvdXRpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDE1MTU4OTcxZjQ5MjU1Y2NlZjU0ZjA5NzlhOTQyY2ZkM2RlMmFlNTIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggdUltYWdlIGhlYWRlciBwb2ludGVyIHVzZSBpbiBpMzg2IGRvX2Jvb3RtX2xpbnV4KCkKCiAgICBVc2UgaW1hZ2UgaGVhZGVyIGNvcHkgaW5zdGVhZCBvZiBhIChwb3NzaWJseSBjb3JydXB0ZWQpIHBvaW50ZXIgdG8KICAgIGEgaW5pdGlhbCBpbWFnZSBsb2NhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI2MWRjZjQ2MjRiMjVmM2M1NTFlZmNmODYzNGU5MTk0ZmFiYmE5YzMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW1vdmUgSTM4NiB1SW1hZ2UgZmFrZV9oZWFkZXIoKSByb3V0aW5lCgogICAgSTM4NiB0YXJnZXRzIGFyZSBub3QgdXNpbmcgYSB1SW1hZ2UgZm9ybWF0LCBpbnN0ZWFkIGZha2UgaGVhZGVyCiAgICBpcyBhZGRlZCB0byByYW0gaW1hZ2UgYmVmb3JlIGl0IGlzIGZ1cnRoZXIgcHJvY2Vzc2VkIGJ5IGJvb3RtLgoKICAgIFJlbW92ZSB0aGlzIGZpeHVwIGFuZCBmb3JjZSBwcm9wZXIgdUltYWdlIHVzZSBmb3IgSTM4Ni4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDU1OTMxNmZhZjdlYWUwNjE0YzkxZDc3ZjUwOWI1N2Q2YzRjMDkxYmEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIENIVU5LU1ogZGVmaW5pdGlvbiB0byBpbWFnZS5oCgogICAgQ0hVTktTWiBkZWZpbmVkIGZvciBQUEMgYW5kIE02OEsgaXMgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIG9mIDY0SywKICAgIG1vdmUgdGhpcyBkZWZpbml0aW9uIHRvIGEgY29tbW9uIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDMyMTM1OWYyMDgyM2UwYjhjNWFkMzhiNjRkMDA3YTZjNDhjZGExNmUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIGd1bnppcCgpIGNvbW1vbiBjb2RlIHRvIGNvbW1vbi9ndW56aXAuYwoKICAgIE1vdmUgZ3VuemlwKCksIHphbGxvYygpIGFuZCB6ZnJlZSgpIHRvIGEgc2VwYXJhdGUgZmlsZS4KICAgIFNoYXJlIHphbGxvYygpIGFuZCB6ZnJlZSgpIHdpdGggY3JhbWZzIHVuY29tcHJlc3Mgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ0NWQ1YTE4YjZiMzY2ODhmMjM2NTYyM2Y5ZDU1MDU2NmM2NjRiNWIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIE9GL0ZEVCAjaWYvI2VsaWYvI2VuZGlmIHVzZSBpbiBkb19ib290bV9saW51eCgpCgogICAgTWFrZSBDT05GSUdfT0ZfTElCRkRUIGFuZCBDT05GSUdfT0ZfRkxBVF9UUkVFIHVzZSBtb3JlCiAgICByZWFkYWJsZSBpbiBQUEMgdmFyaWFudCBvZiBkb19ib290bV9saW51eCgpIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1ZDNjYzU1ZWNiYWUyNzdlMDhmNWZmNzcxZGEyMGIxZDZhMzZlYzM2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBQUEMgZG9fYm9vdG1fbGludXgoKSB0byBsaWJfcHBjL3BwY19saW51eC5jCgogICAgUFBDIGltcGxlbWVudGF0aW9uIG9mIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZSBpcyBtb3ZlZCB0bwogICAgYSBkZWRpY2F0ZWQgZmlsZSBsaWJfcHBjL3BwY19saW51eC5jCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiOTdhMmEwYTIxZjI3OWQ2NmRlOGE5YmRiZmUyMTkyMDk2OGJjYjFjCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjE0OjA5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRGVmaW5lIGEgQVBJIGZvciBpbWFnZSBoYW5kbGluZyBvcGVyYXRpb25zCgogICAgLSBBZGQgaW5saW5lIGhlbHBlciBtYWNyb3MgZm9yIGJhc2ljIGhlYWRlciBwcm9jZXNzaW5nCiAgICAtIE1vdmUgY29tbW9uIG5vbiBpbmxpbmUgY29kZSBjb21tb24vaW1hZ2UuYwogICAgLSBSZXBsYWNlIGRpcmVjdCBoZWFkZXIgYWNjZXNzIHdpdGggdGhlIEFQSSByb3V0aW5lcwogICAgLSBSZW5hbWUgSUhfQ1BVXyogdG8gSUhfQVJDSF8qCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlZDI5YmM0ZTgxNDJiNDZiNjI2ZjY3NTI0MjA3YjM2ZTQzZDlhYWQ2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoxOTo1OCAyMDA4ICswMTAwCgogICAgQWRkIG1pc3NpbmcgY21kX3hpbWcubyB0byBjb21tb24vTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDM3ZTNjNjJmYTA3YTgyM2U3NTY5Yzg3MmUzYTkzOTVkMjI3ZWQ4ZTMKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEphbiAyOCAxMDoxNTowMiAyMDA4ICswMTAwCgogICAgQURTNTEyMWU6IEREUjIgaW5pdC90aW1pbmcgdXBkYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgYWM5MTUyODMwZDdmZGViYWNlOGEyNjBiNzczN2VmMjg3MGMyMWNhMApBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMwIDEzOjM2OjU3IDIwMDggLTA3MDAKCiAgICBEZXZpY2UgdHJlZSB1cGRhdGVzCgogICAgQ2hhbmdlcyB0byBtYXRjaCA1MTIxIGRldmljZSB0cmVlIGdvaW5nIG1haW5saW5lIGluIDIuNi4yNS4KCiAgICBDaGFuZ2UgT0ZfU09DIGZyb20gInNvYzUxMjEiIHRvIHBsYWluICJzb2MiLgogICAgUmVtb3ZlIHVubmVlZGVkICJyZWYtZnJlcXVlbmN5IiBmaXh1cHMuCiAgICBSZW1vdmUgImFkZHJlc3MiIGVuZXRhZGRyIGZpeHVwLgoKICAgIEFkZCBidXMtZnJlcXVlbmN5IGZpeHVwIGZvciBvbGQgT0ZfU09DIHNvIG9sZAogICAga2VybmVscyB3aXRoIG9sZCBkZXZpY2UgdHJlZXMgd2lsbCB3b3JrIHdpdGggbmV3CiAgICB1LWJvb3Qgd2l0aCA2Nk1IeiBJUFMgY2xvY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZTU1ZDE4ZGYzZmYyZWE2MTQ2MjRlNzQ3OTNkZTdjNDM1MjBlMGU3CkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMTM6MzY6NTYgMjAwOCAtMDcwMAoKICAgIENoYW5nZSBJUFMgZnJlcSB0byA2Nk1IegoKICAgIFJlY29tbWVuZGVkIGZyZXF1ZW5jeSBpcyA2Nk1IegogICAgQ2hhbmdlIGRpdmlkZXIgZnJvbSA0IHRvIDMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2Q5Y2I2MmY5ZDhiNzhkNmMzYWY1ZDFlOWI1YTNkNjhhM2Q3Mzk3NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMjI6Mzg6NTUgMjAwOCArMDEwMAoKICAgIHhzZW5naW5lOiByZW5hbWUgYm9hcmRfcG9zdF9pbml0IHRvIGJvYXJkX2xhdGVfaW5pdAoKICAgIG1pc3NpbmcgbWlncmF0aW9uIGZyb20gIkNsZWFudXAgb2Ygc29tZSBpbml0IGZ1bmN0aW9ucyIKICAgIGluIGM4MzdkY2IxYTMxNjc0NTA5MjU2N2JmZTRmYjI2NmQwOTQxODg0ZmYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDhkYWZhODc0NzZiMGQ3MTcwZTIxOWMyZjVlMzg0MmM4MzNhOTE4MDcKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJU2F0IEphbiAxMiAyMzozNTozMyAyMDA4IC0wNTAwCgogICAgQWRkIGF0dHJpYnV0ZSBQT1NUX1BSRVJFTCB0byBFQ0MgbWVtb3J5IFBPU1QKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBlZDJjZjU0OGNhYzgwY2QzY2Y4MTU0ZGNmZTdiMjY4NWJlZjQ1OTM4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwODoyNTo0NSAyMDA4IC0wNjAwCgogICAgUUU6IE1vdmUgRkRUIHN1cHBvcnQgaW50byBhIGNvbW1vbiBmaWxlCgogICAgTW92ZSB0aGUgZmxhdCBkZXZpY2UgdHJlZSBzZXR1cCBmb3IgUUUgcmVsYXRlZCBkZXZpY2VzIGludG8KICAgIGEgY29tbW9uIGZpbGUgc2hhcmVkIGJldHdlZW4gODN4eCAmIDg1eHggcGxhdGZvcm1zIHRoYXQgaGF2ZSBRRSdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDM4ZGE1Mzc5NDNjZDM2MzU2YjlkM2Q5ZDliNjA1MzM1NTRiODFkOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE3OjIwOjE0IDIwMDggKzAxMDAKCiAgICBBVlIzMjogTWFrZSBTRFJBTSByZWZyZXNoIHJhdGUgY29uZmlndXJhYmxlCgogICAgVGhlIGV4aXN0aW5nIGNvZGUgYXNzdW1lcyB0aGUgU0RSQU0gcm93IHJlZnJlc2ggcGVyaW9kIHNob3VsZCBhbHdheXMKICAgIGJlIDE1LjYgdXMuIFRoaXMgaXMgbm90IGFsd2F5cyB0cnVlLCBhbmQgaW5kZWVkIG9uIHRoZSBBVE5HVzEwMCwgdGhlCiAgICByZWZyZXNoIHJhdGUgc2hvdWxkIHJlYWxseSBiZSA3LjgxIHVzLgoKICAgIEFkZCBhIHJlZnJlc2hfcGVyaW9kIG1lbWJlciB0byBzdHJ1Y3Qgc2RyYW1faW5mbyBhbmQgaW5pdGlhbGl6ZSBpdAogICAgcHJvcGVybHkgZm9yIGJvdGggQVRTVEsxMDAwIGFuZCBBVE5HVzEwMC4gT3V0LW9mLXRyZWUgYm9hcmRzIHdpbGwKICAgIHBhbmljKCkgdW50aWwgdGhlIHJlZnJlc2hfcGVyaW9kIG1lbWJlciBpcyB1cGRhdGVkIHByb3Blcmx5LgoKICAgIEJpZyB0aGFua3MgdG8gR2VyaGFyZCBCZXJnaG9mZXIgZm9yIHBvaW50aW5nIG91dCB0aGlzIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDYxMTUxY2NjYjY2MGNkYjA2YTA3ZmIyODNkZTYwODk5MTNkN2JkZTAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IEFwciAxOSAxMDoxMDoxMSAyMDA3ICswMjAwCgogICAgQVRTVEsxMDAwOiBGaXggcG90ZW50aWFsIGZsYXNoIHByb2dyYW1taW5nIGJ1ZwoKICAgIFRoZSAobm93IG9ic29sZXRlKSBhdG5ndzEwMCBmbGFzaCBwcm9ncmFtbWluZyBjb2RlIHdhcyBoYXZpbmcgcHJvYmxlbXMKICAgIHByb2dyYW1taW5nIHRoZSBvbmJvYXJkIGF0NDlidjY0MiBjaGlwLiBUaGUgYXRzdGsxMDAwIGZsYXNoCiAgICBwcm9ncmFtbWluZyBjb2RlIG1heSBoYXZlIHRoZSBzYW1lIGJ1Zywgc28gaW1wb3J0IGZpeCBmb3IgdGhpcyBwcm9ibGVtCiAgICBmcm9tIHRoZSBBVlIzMiBMaW51eCBCU1AuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjJlMWQ1YjY0NDY5ZjEwZGZjY2UyN2Y3YjBhZmQ5MzU2ODRhOGUxMQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDIyIDE3OjA0OjEzIDIwMDcgKzAxMDAKCiAgICBBVFNUSzEwMDQ6IEZpeCBjb21tZW50IGFib3V0IGRlZmF1bHQgbG9hZCBhZGRyZXNzCgogICAgVGhlIGRlZmF1bHQgbG9hZCBhZGRyZXNzIGlzIFNEUkFNICsgMk1CLCBub3QgU0RSQU0gKyA0TUIuIFRoZSBsYXR0ZXIKICAgIHdvdWxkbid0IGhhdmUgd29ya2VkIGFueXdheSBzaW5jZSB0aGUgYm9hcmQgY2FuIG9ubHkgYWNjZXNzIDRNQiBvZgogICAgU0RSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgODI2OWFiNTM2MDhkOGRiMmFhMDY5NjljMzM3YWIwYjA1MTgyMTFlNQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDIyIDE3OjAxOjI0IDIwMDcgKzAxMDAKCiAgICBBVFNUSzEwMDI6IFVzZSBTRFJBTSArIDRNQiBhcyBkZWZhdWx0IGxvYWQgYWRkcmVzcwoKICAgIE1hbnkgcGVvcGxlIHJ1biBpbnRvIHByb2JsZW1zIHdoZW4gdGhleSBjb21waWxlIGEgYmlnIGtlcm5lbCBhbmQgbG9hZAogICAgdGhlIHVJbWFnZSBhdCB0aGUgZGVmYXVsdCBTRFJBTSArIDJNQiBhZGRyZXNzIGFzIHRoZSBrZXJuZWwgd2lsbAogICAgb3ZlcndyaXRlIHRoZSB1SW1hZ2UgYXMgaXQgaXMgYmVpbmcgdW5wYWNrZWQuIEluY3JlYXNlIHRoZSBkZWZhdWx0CiAgICBsb2FkIGFkZHJlc3Mgc28gdGhhdCB3ZSBjYW4gbG9hZCBhIDRNQiBrZXJuZWwgaW1hZ2Ugd2l0aG91dCBhbnkKICAgIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJiY2FjYzJkODQxYjc3ZjNkMmQzOTEwZGI3MjIwMDM3NDI3MjdlOWYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAyMiAxNjo1MTozOSAyMDA3ICswMTAwCgogICAgQVROR1cxMDA6IEZpeCBkZWZhdWx0IG10ZXN0IHJhbmdlCgogICAgTGV0IG10ZXN0IGNvdmVyIHRoZSB3aG9sZSBTRFJBTSBleGNlcHQgdGhlIGxhc3QgbWVnYWJ5dGUsIHdoaWNoIGlzCiAgICB3aGVyZSB1LWJvb3QgbGl2ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTg1NmE2YjMxMDRlMGJjMjEwYjA4NjhkZmU2OTFjNTJiZjAzYzIyNwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEphbiAyMiAxNTozMTo1NiAyMDA4ICswOTAwCgogICAgc2g6IEZpeCByZWdpc3RlciBhZGRyZXNzIG9mIFNINzcyMi4KCiAgICBUaGUgYWRkcmVzcyBvZiBTSDc3MjIgaXMgd3JvbmcgYnkgb2xkIGRvY3VtZW50LgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMwOTQyYjE4YjY2ZjM1ZjJjZWVkYWIzOWFmMTBlOWVjY2FhOTQzY2MKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgbmV3IGNvbW1hbmQgZm9yIGRpc3BsYXlpbmcgc3RyaW5ncyBhdCBzcGVjaWZpZWQgbWVtb3J5IGxvY2F0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNThkOGI0OGUyNWIwYzg2NmQxNjdjYzU3N2YxMThmNTI4Y2Q5ZTBhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIHJld3JpdGUvY2xlYW51cCBCbGFja2ZpbiBSVEMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk0YTkxZTI0OGI3MWMzZmY5NTFmYzI3Y2ZmNjkwOWU4MmNhMzdkMTUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgZ2VuZXJhdGUgdS1ib290LmxkciBmb3IgQmxhY2tmaW4gdGFyZ2V0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNzc5ZjdhNTk1MzA0MzYwNDBmMTU3Zjc4NDFkYjdhYjc5NjU0MmRmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIHNjcnViIHVudXNlZCBzeW1ib2xzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGNjMjk3N2FjYzNiYmJiNzg1MGYxNjY0NWRkMTA4MWY5NTMzNTg2OGQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgbW92ZSBCbGFja2ZpbiBjcHUgb2JqZWN0IGxpc3QgdG8gcmVzcGVjdGl2ZSBjcHUgZGlyZWN0b3JpZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZDBiMDFhMjQ2ZDBhMzUxYmM3ZGNlMWQwYzljZjZhZWJkZjZkNzUwNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBpbnRlcmZhY2UgdG8gQmxhY2tmaW4gb24tY2hpcCBPbmUtVGltZS1Qcm9ncmFtbWFibGUgbWVtb3J5CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDRjNzI3Yzc3ZTQzODcyZDNhMWQxZjc2YTk0OWZjYjNmMjZhMzg3ODgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NiAyMDA4IC0wNTAwCgogICAgYWRkIHN1cHBvcnQgZm9yIG1lbW9yeSBjb21tYW5kcyB3aXRoIEJsYWNrZmluIEwxIGluc3RydWN0aW9uIG1lbW9yeQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2YjkwOTdlNWU3NDkwYWE3YjgyOGM2ZjFhMWM3YTBlODc1ZGY4NDY0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTYgMjAwOCAtMDUwMAoKICAgIHVzZSBDIGNvZGUgcmF0aGVyIHRoYW4gaW5saW5lIGFzc2VtYmx5CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk3YzI2ZTAwNmQyZmE2ZDRlMTU2MDkzM2VlNmYzODVkOGI4OTA4YjkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NiAyMDA4IC0wNTAwCgogICAgYWRkIEJsYWNrZmluLXNwZWNpZmljIHJlZ2luZm8gY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwODU4YjgzNWU3ZWE1MDFlYTA4NGQzNGNlZjc1OTMyZjA5ODM0MmJiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIGFkZCBzdXBwb3J0IGZvciBCbGFja2ZpbiBzeW1ib2wgcHJlZml4ZXMgdG8gZXhhbXBsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGRjNDhkNzFhNGJlNzUzZWE5Zjg0OTU2Y2QzMzYwMGRlMzVmYWQwNApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU1IDIwMDggLTA1MDAKCiAgICBhZGQgQmxhY2tmaW4tc3BlY2lmaWMgYmRpbmZvIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDAwMzYxM2UzYzdkZjNiODRiMmNiOTJlNzk3ZDc3ZjQ2ZjE1YTQzYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU1IDIwMDggLTA1MDAKCiAgICBtb3ZlIC1mZml4ZWQtUDUgdG8gYmxhY2tmaW5fY29uZmlnLm1rIGFuZCBkcm9wIHVudXNlZCAtRF9fQkxBQ0tGSU5fXwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2MGZhNzJkNjU2MTBjN2VmMzNlMWQ2ZGI4NTg5NzlkMDVmZjBkZjU4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIHVuaWZ5IHRoZSBCbGFja2ZpbiBib2FyZCB0YXJnZXRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ0ZDc3MzA4NTNlNWQ2NzVmNzZlYzY2NjgwN2RhMzAyOGM5MWQ1OTIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgcHVudCBCbGFja2ZpbiBWRFNQIGhlYWRlcnMgYW5kIGltcG9ydCBzYW5pdGl6ZWQvYXV0by1nZW5lcmF0ZWQgb25lcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2Y2ZjY2U2NzY3MWEzNDI1MjI5ZDY2MjAzMzg2ZmEzY2JkMGNjM2JkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTQgMjAwOCAtMDUwMAoKICAgIGFsd2F5cyBwdWxsIGluIGFzbS9ibGFja2Zpbi5oIGZvciBCbGFja2ZpbiBwb3J0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiZjUzOTc0YzJkZGFlNjc4ZDc2NjBmMmI1Y2NmZWIwNzMyYjZmNWRjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTQgMjAwOCAtMDUwMAoKICAgIGFkZCBtaXNzaW5nIF9fcmF3IHZlcnNpb25zIG9mIEJsYWNrZmluIHJlYWQvd3JpdGUgaW8gZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDI0ZTAyZDBmZDNhY2M1MGU3M2UxYTNjZGQ1NjdmMGE3Nzk0NmYxNWQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWRkIHRoZSBkZWZhdWx0IEJsYWNrZmluIGxvZ28gdXNlZCBieSBCbGFja2ZpbiBib2FyZHMgd2l0aCBzcGxhc2ggc2NyZWVucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA0YzU4ZWI1NTUyMjIwZTQyNWM4YWY2YWM4ZDI4MzkyNDRhMmY1N2IxCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTQgMjAwOCAtMDUwMAoKICAgIGFkZCBzb21lIG1vcmUgQmxhY2tmaW4gZG9jcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAzMmE5ZjVmMjE2MGEwMzRlYTg3ZWE2NTFiMjMzZWY3YzYzNWU1NWNmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTQgMjAwOCAtMDUwMAoKICAgIG1ha2Ugc21jOTExMTFfZWVwcm9tIG1hbmFnbWVudCBzaW1wbGVyIGJ5IGRlcGVuZGluZyBvbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlIHJhdGhlciB0aGFuIGEgaGFyZGNvZGVkIGxpc3Qgb2YgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQwODdiYzg4Y2ViZWM3NWM0MzJhN2ZlOWY2YWZiNTQ1YjA5MTk4MzEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgZml4IGJ1aWxkaW5nIG9uIEJsYWNrZmluIGFzIHRoZSBhc3NlbWJsZXIgc3VwcG9ydHMgdGhlIC5zZXQgc3ludGF4LCBub3QgdGhlID0gc3ludGF4LCBmb3IgYXNzaWduaW5nIHN5bWJvbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjQ1MjY0ZWU4NWNiZDkyMDIwNjQwYTMyZTAyZmI0MzRmZDU1NzEwOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjUzIDIwMDggLTA1MDAKCiAgICBhZGQgZ2l0aWdub3JlcyBmb3IgQmxhY2tmaW4gcGllY2VzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGE5MzkwN2M0M2Y4NDdmMDc2ZGQwZTM0ZWUzYjY5YjVlOGU2ZDBkMjkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgSmFuIDE4IDAxOjE0OjAzIDIwMDggKzAxMDAKCiAgICBURlRQOiBhZGQgaG9zdCBpcCBhZGRyIHN1cHBvcnQKCiAgICBhbGxvdyB0byB1c2UgYSBkaWZmZXJlbnQgc2VydmVyIGFzIHNldCBpbiBzZXJ2ZXJpcAogICAgYWRkIENPTkZJR19URlRQX0ZJTEVfTkFNRV9NQVhfTEVOIHRvIGNvbmZpZ3VyZSB0aGUgZmlsZSBuYW1lIGxlbmd0aAogICAgaWYgbm90IGRlZmluZWQgdGhlIG1heCBsZW5ndGggd2lsbCBiZSBhdCAxMjgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU1NmI0YjQ5NGNkOTJkZWY1Nzc5NjlmOTY3ODM5NWFhMjJkMzRjOWYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTQ6MzU6MjYgMjAwOCAtMDYwMAoKICAgIDg1eHgsODZ4eDogRGV0ZXJtaW5lIEkyQyBjbG9jayBmcmVxdWVuY2llcyBhbmQgc3RvcmUgaW4gZ2xvYmFsX2RhdGEKCiAgICBVcGRhdGUgZ2xvYmFsX2RhdGEgdG8gZGVmaW5lIGkyYzFfY2xrIGFuZCBpMmMyX2NsayB0byA4NXh4IGFuZCA4Nnh4LgoKICAgIFVwZGF0ZSB0aGUgZ2V0X2Nsb2NrcygpIGZ1bmN0aW9uIGluIDg1eHggYW5kIDg2eHggdG8gZGV0ZXJtaW5lIHRoZSBJMkMKICAgIGNsb2NrIGZyZXF1ZW5jeSBhbmQgc3RvcmUgaXQgaW4gZ2QtPmkyYzFfY2xrIGFuZCBnZC0+aTJjMl9jbGsuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZWM4YmIxNWVlMzY4ZWE1NGQ0OGQ2NDg2Nzc2N2E3MDRkOWFiNGMyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyNyAxMDo1Njo1NCAyMDA3ICswMTAwCgogICAgT01BUDU5MTI6IGZpeCBGSUZPIGhhbmRsaW5nIGluIFVBUlQgZHJpdmVyCgogICAgQWNjb3JkaW5nIHRvIHRoZSBPTUFQNTkxMiBTZXJpYWwgSW50ZXJmYWNlcyBSZWZlcmVuY2UgR3VpZGUgKHNlZQogICAgaHR0cDovL2ZvY3VzLnRpLmNvbS9saXQvdWcvc3BydTc2MGMvc3BydTc2MGMucGRmLCBwYWdlIDE1MCksIHRoZQogICAgRklGT19FTiBlbmFibGUgYml0IGluIHRoZSBGSUZPIENvbnRyb2wgUmVnaXN0ZXIgKEZDUikgY2FuIG9ubHkgYmUKICAgIGNoYW5nZWQgd2hlbiB0aGUgYmF1ZCBjbG9jayBpcyBub3QgcnVubmluZywgaS4gZS4gd2hlbiBib3RoIERMTCBhbmQKICAgIERMSCBhcmUgc2V0IHRvIDAuCgogICAgVGh1cyBtYWtlIHN1cmUgdGhhdCBETEwgYW5kIERMSCBhcmUgMCB3aGVuIHdyaXRpbmcgdGhlIEZDUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE2MTU4Nzc4YjVmNTJmMjAxZTk1ZGVkMmQyZDkwODRiMGVkNTY3MGQKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE1OjEwOjUyIDIwMDcgKzAxMDAKCiAgICBBUk06IFMzQzI0eDAgU29DIE5BTkQgY29udHJvbGxlciBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIE5BTkQgc3VwcG9ydCB0byB0aGUgUzNDMjR4MCBTb0MgY29kZSBpbiB1LWJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGE3YzE4NWVkM2Q5ZjhlYmQ4NWNmYzI4NmUxZmZlZTcyZTQ4MDMxNjMKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjI0OjQwIDIwMDcgKzAxMDAKCiAgICBBUk06IHMzYzI0eHg6IE11bHRpcGxlIHNlcmlhbCBwb3J0IHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgQ09ORklHX1NFUklBTF9NVUxUSSBvbiBzM2MyNHgwIENQVSdzCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBhMjVmNzJmMWY3M2ExMWRlNjgyNTFmYjg4Yzg5OTkxZTIwMmU2OGZhCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDoxNjo1NyAyMDA3ICswMTAwCgogICAgQVJNOiBhcm05MjB0OiBBbGxvdyB1c2Ugb2YgJ2dkJyBwb2ludGVyIGZyb20gSVJRCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdXMgdG8gdXNlIHRoZSAnZ2QnIHBvaW50ZXIgKGFuZCB0aHVzIGVudmlyb25tZW50CiAgICBhbmQgZXZlcnl0aGluZyBlbHNlIGFzc29jaWF0ZWQgd2l0aCBpdCkgZnJvbSBpbnRlcnJ1cHQgY29udGV4dCBvbgogICAgYXJtOTIwdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGJlMTliZDVjZDBmNDU0YjYzMjk4ODQ0YTBiNTM3N2UwMjliMmNhYWQKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjE5OjM4IDIwMDcgKzAxMDAKCiAgICBBUk06IGFybTkyMC9zM2MyNHh4OiBJUlEgZGVtdWxpdHBsZXhlciBjYWxsYmFjawoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIElSUSBkZW11bHRpcGxleGVyIGNhbGxiYWNrIHRvIHRoZSBhcm05MjAgY3B1IGNvcmUgY29kZSwKICAgIHBsdXMgYSBzdHViIGltcGxlbWVudGF0aW9uIG9mIGl0IGZvciB0aGUgUzNDMjQxMC4KCiAgICBUaGUgcHVycG9zZSBpcyB0byBhbGxvdyBhcm05MjB0IGltcGxlbWVudGF0aW9ucyBzdWNoIGFzIHRoZSBzM2MyNHgwIHRvCiAgICBpbXBsZW1lbnQgaW50ZXJydXB0IGhhbmRsZXJzIGluIHUtYm9vdCB3aXRob3V0IGhhdmluZyB0byB0b3VjaCBjb3JlCiAgICBhcm05MjB0IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBhNDFkYmJkOThkMjAxZDhhZWEzMWI1ZDIxZGY0NzQyYzIwY2Q3ZWRhCkF1dGhvcjogSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglUdWUgRGVjIDE4IDE2OjAzOjA3IDIwMDcgLTA4MDAKCiAgICBBUk06IERpc3BsYXkgRXRoZXJuZXQgaW5mbyBpbiBkb19iZGluZm8gb25seSBpZiBDT05GSUdfQ01EX05FVCBpcyBkZWZpbmVkCgogICAgQWRkIGlmZGVmIHRvIGJkaW5mbyBjb21tYW5kIHRvIGRpc3BsYXkgZXRoZXJuZXQgaW5mb3JtYXRpb24KICAgIG9ubHkgaWYgQ09ORklHX0NNRF9ORVQgaXMgZGVmaW5lZCBmb3IgYXJtIG1vZHVsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSyBSIEd1cnVyYWphIEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCBmN2FkNzliNmY5ZjBmNDU0MzdiNjJlMTliNDUzNTZjYzJhYWY0ODg0CkF1dGhvcjogSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglUdWUgRGVjIDE4IDE2OjAwOjU0IDIwMDcgLTA4MDAKCiAgICBBUk06IGFkZCBJMkMgaW5pdCBmdW5jdGlvbiBjYWxsIGluIGxpYl9hcm0vYm9hcmQuYwoKICAgIEFkZHMgSTJDIGluaXQgZnVuYyBjYWxsIHRvIGluaXQgc2VxdWVuY2UgZm9yIEFSTSBib2FyZHMuIFRoaXMgaXMKICAgIHByZXNlbnQgaW4gcHBjLGJsYWNrZmluIGFuZCBvdGhlciBwcm9jZXNzb3IgaW5pdCBzZXF1ZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLIFIgR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IGZmMDJmMTM5ODA0ZjNjYjYxNDE0ZjdiYmNiZmRhYTAyNzllM2VmYWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMSAwOTozODoyOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggbmRmYyBIVyBFQ0MgYnl0ZSBvcmRlcgoKICAgIFRoZSBjdXJyZW50IG5kZmMgSFcgRUNDIGltcGxlbWVudGF0aW9uIHN3YXBzIHRoZSBmaXJzdCB0d28gRUNDIGJ5dGVzLgogICAgQnV0IHRoZSA0eHggTkRGQyBhbHJlYWR5IHVzZXMgdGhlIFNNQyAoU21hcnQgTWVkaWEgQ2FyZCkgRUNDIG9yZGVyaW5nLAogICAgc28gdGhpcyBzd2FwcGluZyBpbiB0aGUgSFcgRUNDIGRyaXZlciBpcyBib2d1cy4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzCiAgICBwcm9ibGVtIGFuZCBub3cgcmVhbGx5IHVzZXMgdGhlIFNNQyBFQ0MgYnl0ZSBvcmRlci4KCiAgICBUaGFua3MgdG8gU2VhbiBNYWNMZW5uYW4gZm9yIHBvaW50aW5nIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMWQxNDI5YjQ5YjBlZTU4YzgwZjhjN2IyOWMxZWJhZjhiZTdmNWYxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMwIDE1OjM1OjUwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBHUElPIGNvbmZpZ3VyYXRpb24gZm9yIHBjczQ0MGVwCgogICAgVGhlIFNSRDBfUEZDMCByZWdpc3RlciB3YXMgbm90IGNvbmZpZ3VyZWQgY29ycmVjdGx5IHRvIGVuYWJsZSB0aGUgR1BJTydzCiAgICA0OS02MyBmb3IgR1BJTy4gVGhleSBoYXZlIGJlZW4gY29uZmlndXJlZCBhcyB0cmFjZSBzaWduYWxzLiBUaGlzIHBhdGNoCiAgICBmaXhlcyB0aGlzIGJ5IGNsZWFyaW5nIHRoZSBjb3JyZXNwb25kaW5nIGJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjhkNzdkOTY4YmZlMDMxNmRlYjViZjE1YzE3ZjU3ZDVmZjJjODgyMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMCAxNDo0ODoyOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIGluaXQtcmFtIGJpZ2dlciB0aGFuIDRrIG9uIDQ0MCBwbGF0Zm9ybXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGZlZGZkZGY5NzQ2MWI4ODY2OGI5YWVjNzc0ZGZiN2EwYzZkYzM2OApBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJRnJpIERlYyA3IDAwOjQyOjMyIDIwMDcgKzAxMDAKCiAgICBBUk06IEJvYXJkIHZvaWNlYmx1ZSB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Cgpjb21taXQgMmM1MjYwZjcxMTE2OGQ1ZWU5MWM3MGRkYmI3ZDg5NzAxM2VlZmM0NgpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJVGh1IERlYyA2IDIzOjI0OjU3IDIwMDcgKzAxMDAKCiAgICBBUk06IEFUOTFSTTkyMDAgYmFzZWQgYm9hcmRzIGNvbmZpZyBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKICAgIFJlbW92ZSBub3doZXJlIHVzZWQgc3RydWN0IGJkX2luZm9fZXh0LCByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZXMsIGZpeAogICAgaW5kZW50YXRpb24uCgpjb21taXQgNDgxZjI4YjFkYjVjZDIxZGViNTVmNjkzOTliYTI0MGUxMDdhZjRjNwpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJVGh1IERlYyA2IDIyOjU5OjE2IDIwMDcgKzAxMDAKCiAgICBBUk06IEZpeCBhdDkxcm05MjAwZGsgYmFzZSBhZGRyZXNzCgogICAgU29tZXdoZXJlIGR1cmluZyBkZXZlbG9wbWVudCBvZiBVLUJvb3QtMS4xLjMgQ09ORklHX0JPT1RCSU5GVU5DIHdhcwogICAgcmVuYW1lZCBpbnRvIENPTkZJR19JTklUX0NSSVRJQ0FMIHdoaWNoIHdhcyAwNCBBcHIgMjAwNSByZXBsYWNlZAogICAgd2l0aCBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUIGFuZCBDT05GSUdfU0tJUF9SRUxPQ0FURV9VQk9PVC4KICAgIEhvd2V2ZXIgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVCBoYXMgb3Bvc2l0ZSBtZWFuaW5nIHRvCiAgICBDT05GSUdfQk9PVEJJTkZVTkMsIHNvIGZpeCBjb25maWd1cmF0aW9uIHRvIHJlZmxlY3QgdGhpcyBmYWN0LgogICAgSSdtIHNlbmRpbmcgdGhpcyBwYXRjaCA0dGggKCEpIHRpbWUgaW4gaG9wZSBpdCBwcm9kdWNlcyBhdCBsZWFzdCBzb21lCiAgICByZWFjdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CgogICAgRml4IGF0OTFybTkyMDBkayBiYXNlIGFuZCBlbnZpcm9ubWVudCBhZGRyZXNzLgoKY29tbWl0IGM5NTIxOWZhZTJhN2FkZDdkYWEyZjkxYWVkY2E2NWIxNjk4NDY1YzcKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyMCAxMDo0MDoyNCAyMDA3ICswMTAwCgogICAgTU1DIGZvciBQWEEgMjdYIChyZXN1Ym1pdCkKCiAgICBNTUMgc3VwcG9ydCBmb3IgWF9TY2FsZSBQWEEgaXMgYnJva2VuIGFuZCBkb2VzIG5vdCB3b3JrLgogICAgTWFpbmx5LCB0aGUgbW1jX2luaXQoKSBmdW5jdGlvbiBjYW5ub3QgcmVjb2duaXplIGN1cnJlbnQgU0QvTU1DIGNhcmRzLgogICAgVGhlcmUgd2VyZSBhbHJlYWR5IHNvbWUgcGF0Y2hlcyBhcm91bmQgdGhlIHdvcmxkIGJ1dCBub25lIG9mIHRoZW0gd2FzCiAgICBtZXJnZWQgaW50byB0aGUgb2ZmaWNpYWwgdS1ib290IHRyZWUuCgogICAgVGhpcyBwYXRjaCBtYWtlcyBvcmRlciBmaXhpbmcgdGhpcyBpc3N1ZS4gUmVzdWJtaXQgYWZ0ZXIgY29kZSBjbGVhbnVwLgoKICAgIEFwcGxpZWQgYW5kIHRlc3RlZCBvbiBQWEEgMjcwIChUcml6ZXBzSVYgbW9kdWxlKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA5NmJiZmExZTY2MjVjZTIzYTE1MDkzNjg2M2IzZWNmNGM4NTNlYjMzCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjAgMTA6Mzc6MDQgMjAwNyArMDEwMAoKICAgIEZpeCBnY2MgaXNzdWVzIGluIHB4YS1yZWdzLmgKCiAgICBGaXggZ2NjNCBpc3N1ZS4gV2l0aCBzb21lIHRvb2xjaGFpbiwgYSBwcmV2aW91cyBwYXRjaCB0aGF0IGZpeGVzIGdjYzQKICAgIGlzc3VlcyBnZW5lcmF0ZXMgd3JvbmcgY29kZS4KICAgIChQcm9ibGVtIHdhcyByZXBvcnRlZCB3aXRoIGdjYy00LjAuMi1nbGliYy0yLjMuNi9hcm0tc29mdGZsb2F0LWxpbnV4LWdudSkuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtIGFuZCBzb2x2ZXMgdGhlIGdjYy00IGlzc3VlcyBhcyB0aGUgbGludXgKICAgIGtlcm5lbCBkb2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IEl2YW5vdiA8aXZhZG1pdHJ5QGdtYWlsLmNvbT4KCmNvbW1pdCA3MDQ3YjM4ODg3NmU3YjkwNWIyZWM0ZWRiODAxMDU0M2UzNjQxYjg1CkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglUdWUgSmFuIDI5IDA4OjQ1OjAzIDIwMDggKzAxMDAKCiAgICBUUU04MzR4OiBlbmFibGUgREhDUAoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTg3NzAwNGQ0NGNhN2RiYzFlNjE4YWRkM2VlYjFkYTdjODRlNGJlYwpBdXRob3I6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KRGF0ZToJVHVlIEphbiAyOSAwODo0NTowMiAyMDA4ICswMTAwCgogICAgVFFNODM0eDogc3VwcG9ydCBmb3IgU3BhbnNpb24gTi10eXBlIEZsYXNoZXMgKHNlY3RvciBzaXplID0gMjU2IEtpQiBhdCAyeDE2IEJpdCkuCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OTMxYWIxNzYwMjViMDNjZmMzMjBiM2ZkMWVjYTQzMmE4OGVkNTYwCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU2F0IEphbiAyNiAyMzo0MToxOSAyMDA4IC0wNTAwCgogICAgRml4IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIG1weDh4eHhfc3BpIGRyaXZlcgoKICAgIFRoaXMgZHJpdmVyIHNob3VsZCBvbmx5IGNvbXBpbGUgaWYgQ09ORklHX01QQzhYWFhfU1BJIGlzIHNldAoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzZjczMmQzZDM4ODBmZWI1MzFmNDhhZjI0N2MwMjViZjAxNDYyYjAKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDI5IDE3OjAwOjM0IDIwMDggKzAxMDAKCiAgICBBUEk6IFByb3ZpZGUgZHVtbXkgaGFsdCgpIGluIHRoZSBnbHVlIGxheWVyLgoKICAgIFRoaXMgZml4ZXMgYSBkZW1vIGFwcCBsaW5rIGZhaWx1cmUgb24gcGxhdGZvcm1zIGNvbmZpZ3VyZWQgd2l0aCBDT05GSUdfUEFOSUNfSEFORy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IDBkYzFmYzIyYWY4NmQxNjk5MzM4OGQ5ZWQ5NjMwZGJhYTJkNTE4MjYKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDI5IDE2OjU3OjM4IDIwMDggKzAxMDAKCiAgICBBUEk6IENvbnZlcnQgY29uZGl0aW9uYWwgYnVpbGRpbmcgdG8gdGhlIG5ldyBzY2hlbWUuCgogICAgVGhpcyBmaXhlcyBhIGJ1aWxkIGJyZWFrYWdlIHdpdGggQ09ORklHX0FQSSBlbmFibGVkLCB3aGljaCBhcHBlYXJlZCBhZnRlcgogICAgdGhlIHJlY2VudCBjaGFuZ2VzIGluIHRoZSBVLUJvb3QgYnVpbGQgc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgOThiNzQyNDg5YzA5NzgwYmU2YTgzMmVlYWE0ZTVlZmY4MjQ3OTJiYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMjUgMDk6NTY6MTcgMjAwOCArMDEwMAoKICAgIGlua2E0eDA6IHJlbW92ZSBkZWFkIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRmOTNmOGIxYTRkMzViNmQzMDI4NDIxMzJlZGJhOTIwZWY4ZjYyYWEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowNiAyMDA4IC0wNjAwCgogICAgODZ4eDogQWRkIHJlZ2luZm8gY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkY2ViY2I2Mzg3MTVhNjI3OGRhOTNiNTUzZDUwMTZmOTk4MjM4MTYKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowNSAyMDA4IC0wNjAwCgogICAgODZ4eDogQWRkIHByaW50X2xhd3MgZnVuY3Rpb24gdG8gZnNsX2xhdy5jCgogICAgVGhpcyBjYW4gYmUgdXNlZCBmb3IgZGVidWcsIGFuZCB3aWxsIGJlIHVzZWQgYnkgYm9hcmQgY29kZQogICAgdG8gaGVscCBpbXBsZW1lbnQgcmVnaW5mby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5Y2QzMjQyNmYyNmEwNTY3YmI2MWYzMzllZGQ4M2M2YTJjZTliZmMzCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDQgMjAwOCAtMDYwMAoKICAgIDg2eHg6IFJlbW92ZSBvbGQtc3R5bGUgbGF3IHNldHVwIGNvZGUKCiAgICBUaGlzIGluY2x1ZGVzIG1wYzg2MTBocGNkLCBtcGM4NjQxaHBjbiwgYW5kIHNiYzg2NDFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcxM2Q4MTg2NjQ5ZGFlODc0NjEzZDQ5NWIwY2VjYWEwMzlhOThiMzAKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowMyAyMDA4IC0wNjAwCgogICAgODZ4eDogQ29udmVydCBzYmM4NjQxZCB0byB1c2UgbmV3IGxhdyBzZXR1cCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzMTk3NmY2MzY0YjkzODMzZTk4OWY1N2U5ZjFlMDIzZTBiZThjNGMKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowMiAyMDA4IC0wNjAwCgogICAgODZ4eDogQ29udmVydCBtcGM4NjEwaHBjZCB0byBuZXcgbGF3IHNldHVwIG1ldGhvZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OTMzYjkxZjhhNDllNDM2NjgxZjE2M2RmMzE3M2JlYjkxY2FjNDRhCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDEgMjAwOCAtMDYwMAoKICAgIDg2eHg6IFN1cHBvcnQgbmV3IGxhdyBzZXR1cCBtZXRob2QgYW5kIGNvbnZlcnQgbXBjODY0MQoKICAgIEFkZHMgdGhlIHN1cHBvcnQgY29kZSBpbiBjcHUvbXBjODZ4eCBmb3IgdGhlIG5ldyBsYXcgc2V0dXAgY29kZQogICAgcmVjZW50bHkgY3JlYXRlZCBmc2xfbGF3LmMsIGFuZCBjaGFuZ2VzIHRoZSBNUEM4NjQxSFBDTiBjb25maWcKICAgIHRvIHVzZSB0aGlzIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWE0MWY3Y2U5YzA4NmUyMDhjMGVhYmY1MjU2NWEyMzdhZjJhMmJkMQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjAwIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBSZWFycmFuZ2UgdGhlIHNlcXVlbmNlIGluIHN0YXJ0LlMKCiAgICAqIHNwbGl0IHRoZSBCQVQgaW5pdGlhbGl6YXRpb24gc28gdGhhdCBvbmx5IDIgQkFUcyAoZm9yIHRoZSBib290IHBhZ2UKICAgIGFuZCBzdGFjaykgYXJlIHByb2dyYW1tZWQgdmVyeSBlYXJseSBvbi4gIFRoZSByZXN0IGFyZSBpbml0aWFsaXplZCBsYXRlci4KICAgICogTW92ZSBvdGhlciBCQVQgc2V0dXAsICBjY3NyYmFyIHNldHVwLCBhbmQgbGF3IHNldHVwIGxhdGVyIGluIHRoZSBjb2RlCiAgICBhZnRlciB0cmFuc2xhdGlvbiBoYXMgYmVlbiBlbmFibGVkLgoKICAgIFRoZXNlIGNoYW5nZXMgd2lsbCBmYWNpbGl0YXRlIHRoZSBtb3Zpbmcgb2YgbGF3IGFuZCBCQVQgaW5pdGlhbGl6YXRpb24KICAgIHRvIEMgY29kZSwgYW5kIHdpbGwgYWlkIHdpdGggMzYtYml0IHBoeXNpY2FsIGFkZHJlc3Npbmcgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzM2RhYzAzYjFiNWQ2MWU0ZmVkN2JhZDQ0NWJhNDBiNGM5N2ZlYmEwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMyAxNDo0MTozNyAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIENsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg2NWYwZjk3NTRiOTUxODNjYWQzOTVkZTdlOGNiODVkZjBjNmVhMWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIzIDE0OjMxOjE3IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgQ2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2ZlNWNhNzc5NzZhZmRiZTdlY2I4NmUzOWZkNzUwNWJkZTYzNmFjZQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxOCAxMDowNzowNCAyMDA4ICswODAwCgogICAgbXBjODN4eDogQ29ycmVjdCB0aGUgc3RydWN0IHNwaTh4eHggaW4gbXBjOHh4eF9zcGkuaAoKICAgIFRoZSBjb21taXQgMDRhOWUxMTgwYWM3NmE3YmFjYzE1YTZmY2Q5NWFkODM5ZDY1YmRkYgogICAgY2F1c2UgdGhlIDgzeHggaW1tYXAgYnJva2VuLCBzbyB0aGUgRE1BIGFuZCBQQ0kgd2lsbAogICAgYmUgZmFpbGVkLgoKICAgIFRoZSBwYXRjaCBmaXggdGhlIHN0cnVjdCBzcGk4eHh4IGFuZCBybSBzdHJ1Y3Qgc3BpODN4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YjQ0Mzk0NDQyODZlMGZjZDAxNTk2ZGY1MDRlNmNhODk3YWQzZTVhCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBBcHIgMTQgMTc6MTE6NDkgMjAwNyArMDIwMAoKICAgIEFWUjMyOiBBVE5HVzEwMCBib2FyZCBzdXBwb3J0CgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBBVE5HVzEwMCBOZXR3b3JrIEdhdGV3YXkgcmVmZXJlbmNlIGRlc2lnbiwKICAgIGluY2x1ZGluZyBmbGFzaCwgZXRoZXJuZXQgYW5kIE1NQyBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGUwMDY5MjdhMGI5YTU0ZThlZTc2ODVkOGFjNzQ4YWFhZDY4MDE4NjIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAxODoxNTozMSAyMDA3ICswMTAwCgogICAgQVZSMzI6IEluaXRpYWxpemUgaXBhZGRyLCBsb2FkYWRkciBhbmQgYm9vdGZpbGUgYXQgc3RhcnR1cAoKICAgIEkgZG9uJ3Qga25vdyB3aHkgdGhlIHJlbGV2YW50IGxheWVycyBjYW4ndCBkbyB0aGlzIGJ5IGl0c2VsZiwgYnV0IHRoaXMKICAgIGlzIHdoYXQgcHBjIGRvZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNzk5ODkxZWY3YjFiMzQzMjAzMmVjMjM0NjZkZjZiNjY1YTc5N2ZhNApBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CUZyaSBKYW4gMTggMDA6MDQ6MjggMjAwOCArMDEwMAoKICAgIEFkZCBBY1R1eCBib2FyZCBzdXBwb3J0CgogICAgSGksCgogICAgVGhlIHBhdGNoIGFkZHMgNCBib2FyZHMsIGNhbGxlZCBBY1R1eC0xIC4uIEFjVHV4LTQuIFRoaXMgcGF0Y2ggY29udGFpbnMgdGhlCiAgICBmaWxlcyB0aGF0CiAgICBjb250YWluIGNoYW5nZXMgZm9yIG11bHRpcGxlIGJvYXJkcywgdGhlIGJvYXJkLXNwZWNpZmljIGZpbGVzIGZvbGxvdyBhcwogICAgc2VwYXJhdGUgcGF0Y2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IDY2YTQzNDRhNGQ5MTBhMTExMjVkZjc3Njg4OTlhZDUyOTcxOTg1NWUKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglXZWQgSmFuIDE2IDE5OjUzOjIzIDIwMDggKzAxMDAKCiAgICBhZGQgQWNUdXgtNCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCBiYzI0MzQ1ZTQxMDFhNWM5OTZkNmI0OGNlNDk3YjA5YzUzMDI1ZGM2CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxOTo1MTo1NSAyMDA4ICswMTAwCgogICAgYWRkIEFjVHV4LTMgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgYWViZjAwZmM0ZDEzNDNiMjQ3MTUzNzM4OTNmN2IyMGJmNDYyZDFlOQpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTk6NTE6MTQgMjAwOCArMDEwMAoKICAgIGFkZCBBY1R1eC0yIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IGVhOTllOGYwNWI3MjQwZmQ2NTc3MzllMjg2NjY0NjY0YWUxNjBhYmUKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglXZWQgSmFuIDE2IDE5OjUwOjM3IDIwMDggKzAxMDAKCiAgICBhZGQgQWNUdXgtMSBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCAzZDlmM2JmYjdhMzNlZmU4ZTQxZTAxYjAyNTU2M2NkNzEyYzU3ZDY0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxOToyMDowOCAyMDA4ICswMTAwCgogICAgQVJNOiByZW1vdmUgdXNlbGVzcyBmdW5jdGlvbiBib2FyZF9wb3N0X2luaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk2YmQ0NjI5NDIwMjJlNDU2OWI1ODJjMDcyYTBlZDI2ZGUxY2QxOWIKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglUaHUgSmFuIDEwIDE0OjU5OjQ2IDIwMDggKzAxMDAKCiAgICBJWFA6IGVuYWJsZSBSVFMKCiAgICBlbmFibGVzIHRoZSBSVFMgc2lnbmFsIHdpdGggQ09ORklHX1NFUklBTF9SVFNfQUNUSVZFLgogICAgTm8gaGFuZHNoYWtpbmcgaXMgZG9uZSwgYnV0IHRoZSBhY3RpdmUgUlRTIHNpZ25hbCBhbGxvd3MgdG8KICAgIGNvbm5lY3QgdG8gdGhlIHRhcmdldCB1c2luZyBhIFBDIHdoaWNoIGlzIHVzaW5nIFJUUy9DVFMKICAgIGhhbmRzaGFrZSwgYW5kIGRvZXMgbm8gaGFybSBpZiB0aGUgUEMgaXMgc2V0IHRvIGlnbm9yZSBSVFMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCBhMWNmMDI3YTA4ZjlkYzFjMGU3Njk0OTllNmY0ZmJkZGNmOWNhYjkzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEphbiA3IDA4OjQxOjM0IDIwMDggKzAxMDAKCiAgICBJWFA6IGFkZCBkeW5hbWljIG1pY3JvY29kZSBhZGRyCgogICAgYWxsb3cgdG8gbG9hZCB0aGUgbWljcm9kZSBmcm9tIGZsYXNoIG9yIHJhbSBieSBkb3dubG9hZCBpdCB0aHJvdWdoCiAgICB0aGUgc2VyaWFsIG9yIG90aGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzZWJjYzQ2MTVkZDM5OTI2Y2NmNjFmMWQ1ZjM1MTAyNjJlZjY1NjQKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglTYXQgTm92IDEwIDE1OjQ0OjEyIDIwMDcgKzAxMDAKCiAgICBsb2FkIGl4cDQyeCBOUEUgZmlybXdhcmUgZnJvbSBzZXBhcmF0ZSBmbGFzaCBibG9jaywgcmVtb3ZlIGRlYWQgY29kZQoKICAgIEhpLAoKICAgIHRoZSBmb2xsb3dpbmcgcGF0Y2ggYWRkcyBzdXBwb3J0IHRvIG1vdmUgdGhlIElYUDQyWCBOUEUgZmlybXdhcmUgdG8gYQogICAgc2VwYXJhdGUgZmxhc2ggYmxvY2ssIHdob3NlIHN0YXJ0IGFkZHJlc3MgaXMgZGVmaW5lZCBpbgogICAgQ09ORklHX0lYUDRYWF9OUEVfRVhUX1VDT0RFX0JBU0UuIFVzaW5nIHRoYXQsIGl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkCiAgICBOUEUtZW5hYmxlZCB1LWJvb3Qgd2l0aG91dCBjb3B5cmlnaHQgcHJvYmxlbXMgZHVlIHRvIHRoZSBOUEUgZmlybXdhcmUuCgogICAgSSBob3BlIHRoZSBwYXRjaCBhcHBsaWVzLCBJIGdldCB3aGl0ZXNwYWNlLXJlbGF0ZWQgZGlmZmVyZW5jZXMgaW4gdGhlIE5QRQogICAgZmlsZXMgZHVlIHRvIHRyYWlsaW5nIHdoaXRlc3BhY2UgaW4gdGhlIG9yaWdpbmFsIHZlcnNpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU3YTEyNzIwMWViM2Q4Y2MxOTE3MGEwMDhlMGJkN2FmNjA4YmQ3MmYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTQ6MTU6NDYgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1NDd4Xzh4IC0gQWRkIE01NDc1RVZCIGFuZCBNNTQ4NUVWQiBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFlZTExMTEzNWQ4NjYwYTE2NGQ0ZjZiZjdkNjZiMDMyZWE1MzVjZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDowMjo0OSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjU0N3hfOHggLSBBZGQgTTU0N3hFVkIgYW5kIE01NDh4RVZCIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzc3ZDFhYmQ5Nzk2ZjFjMmUxNDg0MTdjYzEwNjU3ZTg0N2QzMThjZQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDowMDoyNSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IEZFQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzJmNTZhZGMwYjI1ZDQzODc1YWQwNjdiYWU2YmUxYmNlYTg2Yjc5ZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzo1NDowOSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IGRtYSBjb2RlIGFuZCBoZWFkZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZTA5ZmM0OWI1NmVhM2M0NDI3OTRiNmJlOWI3ZGI0Yjk5ZGZkYzg3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjUyOjAzIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggZG1hIGNvZGUgLSAyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTE4NjVlYTg0NGU3MTU0ZmQzMGM3ZTI4NjBkYTRlZWQ0YTEyYWQxZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzo0ODo1MiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IGRtYSBjb2RlIC0gMQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ2MjFmYzNmZTdjZDY1Yjc4YjNjYmQzMWY2NWM5ZjdmNzJiMjJiZDMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6Mzk6NDQgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCByZWxhdGVkIGhlYWRlciBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NzBjMDE4NmFlY2FiMWI3NDdiMmQ0NGQwZTFkM2MxYWM0Y2IyN2Y1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjM3OjM0IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggY3B1IGFyY2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMjc1NmY0YjU0YWJhMGUwNTIzYjgxZGQxNDU2NjY4MjljZjdmZDU5CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjQ3OjIzIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjUyMjd4IGNwdSBhbmQgTTUyMjc3RVZCIHN1cHBvcnQtMwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM4NzU4MTAyNzk5NGMxNDgxMzFiMmYxMWFhNzU1MDFmNzgyZWMxOWEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6NDY6MTkgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTIyN3ggY3B1IGFuZCBNQ0Y1MjI3N0VWQiBzdXBwb3J0LTIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNTUyYWY3MGVjYWIxMWI5ZjNkY2VmZjc1MjhlZDE1ZmFmNjc4YjlkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjQzOjMzIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjUyMjd4IGNwdSBhbmQgTTUyMjc3RVZCIHN1cHBvcnQtMQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM5N2I3YjgxYTFmMTAwODc5OGFlMTIwNjkxMzUwOGNjODljYjNhN2QKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MzU6NDQgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBGaXggQ0ZJIEZsYXNoIGxvdyBsZXZlbCBSZWFkL1dyaXRlIG1hY3JvCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWE1ZjFmOWRjODE1YTc2ZjZkZmZiNTgwNzk4NTk5YzAyOGZlN2ZlYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzoyMzowOCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTM3M0VWQiBwbGF0Zm9ybSBzdXBwb3J0IC0gMgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhYzU1OWQ0YWEzNThmNjNiNDhjNjJiNTY0MjI0YzA2ZmVlYjRlMzYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MTk6NTQgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUzNzNFVkIgcGxhdGZvcm0gc3VwcG9ydCAtIDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMjBkNjE5OTFmYTMxOTBlZTQxNzY1NjAxZWQwMTdiNmI1ZmY3YjJiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjE3OjAzIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIEZsZXhCdXMgQ1MgZm9yIE1DRjUzMngKCiAgICBEZWZpbml0aW9uIHVwZGF0ZSBhbmQgY2hhbmdlIGZyb20gMTZiaXQgdG8gMzJiaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZTcyYWQwNjQ0Yjk0MDgxN2E4OWEzNTkwY2UwZDdiOTljMDVjMzk2CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjExOjQ3IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogUENJIGFuZCBtaXNjIHVwZGF0ZXMgZm9yIE1DRjU0NDV4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDJiMTY0OTM0ODBhYzNkNGE2MGFkN2Q4MzViMGRjMjdkMmU5OWNlZQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzowNjo1NSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjU0NDV4IGhlYWRlciBmaWxlcyBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDlhYWU2MjYwOTkzYTkzZjdmY2YxM2FiZmY4NWE2MDFmNGY1MGVhNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNjo1OTo0MiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMnggaGVhZGVyIGZpbGVzIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YWY3NzUxZDA0N2U3NGIyZWM1ODQwMGY5N2I4NzljNTY0NDZiM2U4CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE1OjMwOjE1IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIG1vZHVsZXMgaGVhZGVyIGZpbGVzCgogICAgQWRkIENGIHNwZWNpZmljIG1vZHVsZXMgaGVhZGVyIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI5NTZhY2Q1ZWY5M2E0OTgzMzdmOGFjMmVjNmFlNmE3N2Q0OTFkYzUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDE3IDEyOjQ4OjAwIDIwMDggLTA2MDAKCiAgICBjb2RpbmdzdHlsZSBjbGVhbnVwIGZvciBzcGkgZHJpdmVyCgogICAgLi5hbmQgcm0gdW51c2VkIENPTkZJR19GU0xfU1BJIGRlZmluZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDU5ZmVmZmI0MmM5ZjE3NDExNmRiN2E4MmEzMTFkZjk4OTgzZGZjZQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTc6MTI6MTIgMjAwOCAtMDUwMAoKICAgIEZTTDogRml4IGNvbW1vbiBFRVBST01fZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgoKICAgIC0gRml4IEVFUFJPTV9kYXRhIHN0cnVjdHVyZSBkZWZpbml0aW9uIGFjY29yZGluZyB0byBTeXN0ZW0gRUVQUk9NIERhdGEgRm9ybWF0LgogICAgLSBSZWFkIE1BQyBhZGRyZXNzZXMgZnJvbSBFRVBST00gdG8gZXRoWGFkZHIgYmVmb3JlIHNhdmluZyBldGhYYWRkciB0bwogICAgICBiZC0+YmlfZXRoYWRkci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZiZWU3NjRiZDZkYTUxMGE0YWFkNjE0ODgwMzAwYzk2OGJjNzMxOGQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE1OjQ4OjEyIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBlbmFibGUgY29tbWFuZC1saW5lIGVkaXRpbmcKCiAgICBFbmFibGUgY29tbWFuZC1saW5lIGVkaXRpbmcgZm9yIGFsbCBNUEM4Nnh4IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwZGRkMjI2MjZkMzIxYTc3MmViZmJhMzA0ZWI3ODMwY2I0ZjZiYWMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDIyOjM3OjQyIDIwMDggLTA1MDAKCiAgICBJbXBsZW1lbnQgaGFyZCBTUEkgZHJpdmVyIG9uIE1QQzgzNDlFTURTCgogICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBmc2xfc3BpIGRyaXZlciBvbiB0aGUgTVBDODM0OUVNRFMgZXZhbHVhdGlvbiBib2FyZC4KICAgIFRoaXMgYm9hcmQgaGFzIGFuIFNUIE0yNVA0MCA0TWJpdCBFRVBST00gb24gaXRzIFNQSSBidXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNGE5ZTExODBhYzc2YTdiYWNjMTVhNmZjZDk1YWQ4MzlkNjViZGRiCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAyMjozNzozNSAyMDA4IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGEgRnJlZXNjYWxlIG5vbi1DUE0gU1BJIGNvbnRyb2xsZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFNQSSBjb250cm9sbGVyIGZvdW5kIG9uIEZyZWVzY2FsZSBQb3dlclBDCiAgICBwcm9jZXNzb3JzIHN1Y2ggYXMgdGhlIE1DUDgzNHggZmFtaWx5LiAgQWRkaXRpb25hbGx5LCBhIG5ldyBjb25maWcgb3B0aW9uLAogICAgQ09ORklHX0hBUkRfU1BJLCBpcyBhZGRlZCBmb3IgZ2VuZXJhbCBwdXJwb3NlIFNQSSBjb250cm9sbGVyIHVzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOGNiNDNhODliZTZjZmQyODMyNTdhNjAzZGQ5ODQxNTAzY2NjZTBmCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDE3IDE4OjIzOjE5IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIGZhdGFsIGNvbmZsaWN0IG9mIG1lcmdlCgogICAgVGhlIGNvbW1pdCA5ZTg5NjQ3ODg5Y2Q0YjVhZGE1YjVlN2NhZDZjYmU1NTczN2EwOGQ3CiAgICB3aWxsIGNhdXNlIHRoZSBtcGM4MzE1ZXJkYiBib2FyZCBjYW4ndCBib290IHVwLgoKICAgIFRoZSBwYXRjaCBmaXggdGhhdCBidWcsIGFuZCByZW1vdmUgdGhlIGR1cGxpY2F0ZWQgI2lmZGVmCiAgICBDRkdfU1BDUl9UU0VDRVAgY29kZSBhbmQgY2xlYW4gdGhlIFNDQ1JfVFNFQzIgZm9yCiAgICBNUEM4MzEzRSBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzI1OWVlYWE0MTQ4MTI1YTgxNDE3NDc3ZjYyYzA1YmQ2N2Y2MDU4NwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUaHUgSmFuIDE3IDA4OjUwOjA5IDIwMDggLTA1MDAKCiAgICBNZXJnZSBTZXF1b2lhIGJlYXV0aWZpY2F0aW9uIGludG8gS29yYXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGUxNjkyNTc3MzIxMTI5MWI1NjJlNzcxODcwNjFlOWRkMWQ3NTcyMTcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAwNzo0NTowNSAyMDA4ICswMTAwCgogICAgbmV0OiBhZGQgJ2V0aHJvdGF0ZScgZW52aXJvbm1lbnQgdmFyaWFibGUKCiAgICBbUEFUQ0hdIG5ldDogYWRkICdldGhyb3RhdGUnIGVudmlyb25tZW50IHZhcmlhYmxlCgogICAgVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgYnVpbGR0aW1lIGNvbmZpZ3VyYXRpb24gb3B0aW9uCiAgICBDT05GSUdfTkVUX0RPX05PVF9UUllfQU5PVEhFUiB0aHJvdWdoIHRoZSAnZXRocm90YXRlJyBydW50aW1lCiAgICBjb25maWd1cmF0aW9uIHZlcmlhYmxlLiBTZWUgUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBiYTUyYmUzZDBlNjE4YzI2MDcwZTkzYWFmM2MxZjJkMmFkZjU1NzFmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE3IDE0OjI5OjA0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncyBhbmQgY29kaW5nIHN0eWxlIGlzc3VlcyBpbiBIQ1U0L0hDVTUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTVlZDE1MTZjYmMxZGFkM2FlMjc3YzY3ZWUwNmZjNGE0NmVhYWM3ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAxODowNzozMiAyMDA4ICswOTAwCgogICAgc2g6IFJlbW92ZSBDT05GSUdfQ09NTUFORFMgZnJvbSBNUzc3MjBTRSBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwNTU2MDZiZDI1ZTg4YzBjZDA0YWQzNDhhNjc5YTA0YjFiNjE2YmVlCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxODozOToyMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBOZXRzdGFsIEhDVTQgYm9hcmQ6IGFkZGVkIHZhcmlvdXMgZml4ZXMgYW5kIFBPU1QKCiAgICAtIE1vdmVkIHNvbWUgY29tbW9uIGNvZGUgdG8gbmV0c3RhbC9jb21tb24vbm1fYnNwLmMuCiAgICAtIHNkcmFtIGluaXRpYWxpc2F0aW9uIGdvZXMgZ28gbmV0c3RhbC9jb21tb24vZml4ZWRfc2RyYW0uYy4KICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgUE9TVC4KICAgIC0gU3R5bGlzdGljIGNsZWFudXBzIChtdWx0aS1saW5lIGNvbW1lbnRzLyBlbmZvcmNlIDgwIGNvbG9tbiB3aWR0aCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDY5YjA2MzRhNGVlOThjOTc5MTgxNTYwMGQ0M2I5OWY2MjZhOTUyZjMKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUaHUgSmFuIDE3IDEyOjUzOjU2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IG5ldHN0YWwvY29tbW9uIGRlZmluZSByb3V0aW5lcyB1c2VkIGJ5IGFsbCBib2FyZHMKCiAgICBBZGRlZCBzb21lIHJvdXRpbmVzIHVzZWQgYnkgYWxsIE5ldHN0YWwgYm9hcmRzOgogICAgLSBubV9ic3AuYzogLSBubV9zaG93X3ByaW50IGFuZAoJICAgIC0gIGNvbW1vbl9taXNjX2luaXRfcgoJICAgIC0gc2V0X3BhcmFtc19mb3Jfc3dfaW5zdGFsbC4gVmVyeSBzcGVjaWZpYyBjb2RlIHRvIGhhbmRsZSBvdXIgU1cKCSAgICAgIGluc3RhbGxhdGlvbiBwcm9jZWR1cmUKICAgIC0gZml4ZWRfc2RyYW0uYzogQ29tbW9uIHJvdXRpbmVzIGZvciBIQ1U0IChhbmQgdXBjb21pbmcpIE1DVTI1IGJvYXJkcwogICAgICB0byBoYW5kbGUgc2RyYW0gaW5pdGlhbGl6YXRpb24uCiAgICAtIG5tLmg6IENvbW1vbiBoZWFkZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGVmZWZmNTM4MmI3YTkxYjQ4YTFhYTY4YjJiNzVmOTJhZDFkMzNmZjgKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE4OjM5OjE4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE5ldHN0YWwgSENVNSBib2FyZDogYWRkZWQgdmFyaW91cyBmaXhlcyBhbmQgUE9TVAoKICAgIC0gTW92ZWQgc29tZSBjb21tb24gY29kZSB0byBuZXN0YWwvY29tbW9uL25tX2JzcC5jLgogICAgLSBBZGRlZCBzdXBwb3J0IGZvciB0aGUgdnhXb3JrcyBFRFIuCiAgICAtIEVuYWJsZSB0cmFjZSBmb3IgTGF1dGVyYmFjaCwgaWYgcHJlc2VudC4KICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgUE9TVC4KICAgIC0gU3R5bGlzdGljIGNsZWFudXBzIChtdWx0aS1saW5lIGNvbW1lbnRzLyBlbmZvcmNlIDgwIGNvbG9tbiB3aWR0aCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDQzNzEwOTBlNWRhNzdlZGM3YmY5ZjI5NjM2NGRiNDgwMTYzOWQ5YzQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE4OjM5OjA4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE5ldHN0YWwgSENVNSBib2FyZC4gQWRkZWQgUE9TVC4gVmFyaW91cyBmaXhlcwoKICAgIC0gVmFyaW91cyBmaXhlcwogICAgLSBSZWR1Y2VkIHJvbV9zaXplIGZyb20gMzg0IHRvIDMyMCBrQgogICAgLSBFbnZpcm9ubWVudCBpcyBub3cgaW4gZmxhc2gKICAgIC0gQWRkZWQgUE9TVAogICAgLSBTdXBwb3J0IGZvciBPRgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNGJkNTAzNmU2MGFmYWMzN2U0ODRjMmQzNWNiYmU3ZjZjYzE2MjNlNwpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTg6Mzc6NTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTmV0c3RhbCBIQ1U0IGJvYXJkLiBBZGRlZCBQT1NULiBWYXJpb3VzIGZpeGVzCgogICAgLSBWYXJpb3VzIGZpeGVzCiAgICAtIFJlZHVjZWQgcm9tX3NpemUgZnJvbSAzODQgdG8gMzIwIGtCCiAgICAtIEVudmlyb25tZW50IGlzIG5vdyBpbiBmbGFzaAogICAgLSBBZGRlZCBQT1NUCiAgICAtIFN1cHBvcnQgZm9yIE9GCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxYTNhYzg2Yjc5ZmNiNjkwMjc1Yzg1ODYxYzhlZmE2YTM4OTkwNjBhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTA6NTM6MDggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQ29tcGxldGUgRFU0NDAgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDE1YTA4YmMyYmVmOTFlNWYxZWE0YjljZjYwZTQ2ODMyZDg2YmNjMWYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAxMDo1MjozMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgRFU0NDAgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGFjMzMxZGEwN2RiMzg2MGYxMWZhMWQwZmQzZGI3YzgxMGJjZTExOTgKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMTU6NTM6NTIgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgU3VwZXJIIFNDSUYgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBmaXhlZCB3cm9uZyBTSDc3MjAgQ1BVIG1hY3JvIGFuZCBjaGFuZ2VkIG1hY3JvIHRoYXQKICAgIGNhbGN1bGF0ZWQgdmFsdWUgb2YgU0NCUlIgcmVnaXN0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMzNGU0NDJlNmZhYzU5YmU5MTI0NDA2M2U5YjNmNmNhMjVlOGRhZjgKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNToxMjo0NyAyMDA4ICswMTAwCgogICAgU2V0IGlwcyBkaXZpZG9yIHRvIDEvNCBvZiBjc2IgY2xvY2suCgogICAgUHJldmlvdXMgc2V0dGluZyBjYXVzZSBpcHMgY2xvY2sgdG8gYmUgb3V0IG9mIHNwZWMuIFRoaXMgYnVnIHdhcyBmb3VuZCBieSBKb2huCiAgICBSaWdieSBmcm9tIEZyZWVzY2FsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ZGMzNThiYjBkZTllMmZhMzQxZjNiNGM5MTQ0NjZiMWYzNGIyZDg5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMjoxOToxOCAyMDA4IC0wNjAwCgogICAgODV4eDogR2V0IHJpZGUgb2Ygb2xkIFRMQiBzZXR1cCBjb2RlCgogICAgTm93IHRoYXQgYWxsIGJvYXJkcyBoYXZlIGJlZW4gY29udmVydGVkLCByZW1vdmUgb2xkIGNvbmZpZyBjb2RlIGFuZCB0aGUKICAgIGNvbmZpZyBvcHRpb24gZm9yIHRoZSBuZXcgc3R5bGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzYjU1OGUyNmE1ZWYzMTYzNTc4N2Q2ZDZlOTdkNzA5MzlkNGY4OTJkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMjowMjoxMCAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBUUU04NXh4IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDc0MTIxYjQ3MGMxNGY3ZWFmMjg0ZWU4MzhiZmZjYTZmOTUyMTA2OWUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjU2OjMyIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFNUWEdQMyAmIFNUWFNTQSB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxNDNiNTE4ZDkxMjViNTRmOTZmMWQ3ZjFhZmM2NDBiOGFhZTgxZmYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMTo0NDozNCAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBTQkM4NTQwL1NCQzg1NjAvU0JDODU0OCB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4MTgyMThiYWM2YTExNTkxZTI1NDJjMzQ0ZDIzMzBlMGY0ZTE5NjhiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMTozMTozNCAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBQTTg1NC9QTTg1NiB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmZjQ2ODFjOTI4NWIyYjRkMjQ1NTJhMTljYWNjMTc2OWZlMmZjN2UwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMToyNTozMyAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBNUEM4NTQwRVZBTCB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3M2FhOWFjMmI0NmYxY2ZkMDM5MTA2ZWJkNmI5ODY1MDE2MDA1MjM0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMToxMjoyMiAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBNUEM4NTY4IE1EUyB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZGIzN2RjMmVlZDMwODg0ZGIyZGFhMjRkYmQ5YTExM2I1ZDAwNjEwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMTowMTowOSAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBNUEM4NTQxL01QQzg1NTUvTVBDODU0OCBDRFMgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjE5YTgxYjk4ZDgzNGY5MDcxYjZmN2MzYmRjNmI3ZWMzOWNjNDZjYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDA6NTI6MjkgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgTVBDODU0MC9NUEM4NTYwIEFEUyB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4MGQwYjZhMTQ5ODc2MWM0MzU1YjJkYjljODAwMWIwNGMyOTVlN2I4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMDozMjoxNyAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBBVFVNODU0OCB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZjdhM2RjOTVjYmZmM2MyMWJkNmRiYzYzOTMxMzc5NjQxMmJiYmFiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAyMzoxMTo1NyAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBNUEM4NTQ0IERTIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg3MTYzMTgwNTdhNWY2MGFiMWJhMDgxZWNlMmRiZTgyYWUwMGUxZWUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDIyOjM4OjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBSZXdvcmtlZCBpbml0aWFsIHByb2Nlc3NvciBpbml0CgogICAgUmV3b3JrZWQgdGhlIGluaXRpYWwgcHJvY2Vzc29yIGluaXRpYWx6YXRpb24gc2VxdWVuY2U6CiAgICAqIGludHJvZHVjZWQgY3B1X2Vhcmx5X2luaXRfZiB0aGF0IGlzIHJ1biBpbiBhZGRyZXNzIHNwYWNlIDEgKEFTPTEpCiAgICAqIE1vdmVkIFRMQi9MQVcgYW5kIENDU1IgaW5pdCBpbnRvIGNwdV9lYXJseV9pbml0X2YoKQogICAgKiBSZXdvcmtlZCBpbml0aWFsIGFzbSBjb2RlIHRvIGRvIG1vc3Qgb2YgdGhlIGNvcmUgaW5pdCBiZWZvcmUgVExCcwoKICAgIFRoZSBtYWluIHJlYXNvbnMgZm9yIHRoZXNlIGNoYW5nZXMgYXJlIHRvIGFsbG93IGhhbmRsaW5nIG9mIDM2LWJpdCBwaHlzCiAgICBhZGRyZXNzZXMgaW4gdGhlIGZ1dHVyZSBhbmQgc29tZSBvZiB0aGUgaXNzdWVzIHRoYXQgd2lsbCBleGlzdCB3aGVuIHdlCiAgICBkbyB0aGF0LgoKICAgIFRoZXJlIGFyZSBhIGZldyBjYXZlYXRzIG9uIHdoYXQgY2FuIGJlIGluaXRpYWxpemVkIHZpYSB0aGUgTEFXIGFuZCBUTEIKICAgIHN0YXRpYyB0YWJsZXM6CiAgICAqIFRMQiBlbnRyeSAxNC8xNSBjYW4ndCBiZSBpbml0aWFsaXplZCB2aWEgdGhlIFRMQiB0YWJsZQogICAgKiBhbnkgTEFXIHRoYXQgY292ZXJzIHRoZSBpbXBsaWNpdCBib290IHdpbmRvdyAoNEctOE0gdG8gNEcpIG11c3QgbWFwIHRvCiAgICAgIHRoZSBjb2RlIHRoYXQgaXMgY3VycmVudGx5IGV4ZWN1dGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ0YTIzY2ZkNjM2MGE2OGVhYTQxZjk0NTE5MDYxOGE1NTUxOWVhYzMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDIyOjMzOjIyIDIwMDggLTA2MDAKCiAgICA4NXh4OiBJbnRyb2R1Y2UgbmV3IHRsYiBBUEkKCiAgICBBZGQgYSBzZXQgb2YgZnVuY3Rpb25zIHRvIG1hbmlwdWxhdGUgVExCIGVudHJpZXM6CiAgICAgKiBzZXRfdGxiKCkgLSB3cml0ZSBhIHRsYiBlbnRyeQogICAgICogaW52YWxpZGF0ZV90bGIoKSAtIGludmFsaWRhdGUgYSB0bGIgYXJyYXkKICAgICAqIGRpc2FibGVfdGxiKCkgLSBkaXNhYmxlIGEgdmFyaWFibGUgc2l6ZSB0bGIgZW50cnkKICAgICAqIGluaXRfdGxicygpIC0gc2V0dXAgaW5pdGlhbCB0bGJzIGJhc2VkIG9uIHN0YXRpYyB0YWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYmU4OGIxNjk5ODYzYzI2MjgxOGYzYWY3ZjYwMTczYjRkNDhkZjhmYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxNyAwNzo1MDoxNyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggcmVtYWluaW5nIENPTkZJR19DT01NQU5EUyBpbiA0eHggZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzhjNDFkNGE4MGIxYThhZDU5ODRhMjg3ZDgxZWE3ODA0OTYyNTlmOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTA6MDQ6NDIgMjAwOCAtMDYwMAoKICAgIDg1eHg6IFVzZSBwcm9wZXIgZGVmaW5lcyBmb3IgUENJIGFkZHJlc3NlcwoKICAgIFdlIHNob3VsZCBiZSB1c2luZyB0aGUgX01FTV9QSFlTIGZvciBMQVcgYW5kIFRMQiBzZXR1cCBhbmQgbm90IF9NRU1fQkFTRS4KICAgIFdoaWxlIF9NRU1fQkFTRSAmIF9NRU1fUEhZUyBhcmUgbm9ybWFsbHkgdGhlIHNhbWUsIF9NRU1fQkFTRSBzaG91bGQgb25seQogICAgYmUgdXNlZCBmb3IgY29uZmlndXJpbmcgdGhlIFBDSSBBVE1VLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTRhNTA3MDExNWVmZjM4ZTliMzI0Yjc4YWJkZmEwYjQ1MjA1ODBiOQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDk6MjI6MjkgMjAwOCAtMDYwMAoKICAgIDg1eHg6IFJlbW92ZSBvbGQgc3R5bGUgb2YgTEFXIGluaXQKCiAgICBBbGwgYm9hcmRzIGFyZSBub3cgdXNpbmcgdGhlIG5ldyBmc2xfbGF3IGNvZGUgc28gd2UgY2FuIGRyb3AgdGhlIG9sZCB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGQzNTIxY2M3OWNhYmM2MWVkZjEyYzQ4YzBjZTMxOGQ0ZWZiNzEyZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDk6MTU6MjkgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgcmVtYWluaW5nIDg1eHggYm9hcmRzIG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgQ29udmVydGVkIEFUVU04NTQ4LCBNUEM4NTY4IE1EUywgTVBDODU0MCBFVkFMLCBhbmQgVFFNODV4eCBib2FyZHMgb3ZlcgogICAgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTcyYjEzYWZjNDI3MTBmMjk1N2MzODJhNzEwMzYwNDI5YzBlMDk5YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDk6MTE6NTMgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgU1RYR1AzL1NUWFNTQSBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDVmMjE2NmFjMDIzM2E5MjYzMDU4Mzc4ZjM5NjEyYmQxMWY2MTE5NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDk6MDY6NDggMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgUE04NTQvUE04NTYgb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGUyYjE1OWQwMDcwZWUwNmU0YWM3ZTJmOTM4MWQzZThlNTQyZTYxNGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDA5OjA1OjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IFNCQzg1NDAvU0JDODU2MC9TQkM4NTQ4IG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyY2ZhYTFhYTFhYWMzOWE4MTAwNmI3YjI3ZTBlNDMxYmYyMWY2ZGZhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwMTo0NToxMCAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBNUEM4NTQxL01QQzg1NTUvTVBDODU0OCBDRFMgb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDcyMzJhMjcyNGNjYzlkY2JjM2VjNGVmODRhZGEwMmYxM2NjZDEyMzgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDAxOjMyOjA2IDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IE1QQzg1NDAvTVBDODU2MCBBRFMgb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRiY2FlOWM5MmFlZTBkNzJhMmYxOWI4MWNhYjI3ZWYzODEwN2NlNzUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDAxOjE2OjE2IDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IE1QQzg1NDQgRFMgb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgzZDQwZGZkNzlmZTg2ODc5NjI3NTgwMmY2MDExNmQ4NGI5ZTQzOTUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDAxOjEzOjU4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBNb3ZlIExBVyBpbml0IGNvZGUgaW50byBDCgogICAgTW92ZSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIExBV3MgaW50byBDIGNvZGUgYW5kIHByb3ZpZGUgYW4gQVBJCiAgICB0byBhbGxvdyBtb2RpZmljYXRpb24gb2YgTEFXcyBhZnRlciBpbml0LgoKICAgIEJvYXJkIGNvZGUgaXMgcmVzcG9uc2libGUgdG8gcHJvdmlkZSBhIGxhd190YWJsZSBhbmQgbnVtX2xhd19lbnRyaWVzLgoKICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIHVzZSB0aGUgc2FtZSBjb2RlIG9uIDg2eHggYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlZDhjZTgzOGE2MDlhYWFiMTM2ZDQzYjI1ZTZkZjJhNTIwYmM4NTQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjAzOjEyIDIwMDcgKzAxMDAKCiAgICBxZW11LW1pcHM6IGFjdGl2ZSBIVVNIIFBBUlNFUiwgQVVUT19DT01QTEVURSBhbmQgQ01ETElORV9FRElUSU5HCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwNzY0YzE2NGZlZDYyNzdkMzU5Y2YxMzJkNTUxODdlYTM0MjkwMTE0CkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVdlZCBKYW4gMTYgMTk6Mjc6NTEgMjAwOCArMDIwMAoKICAgIE1JUFM6VGFyZ2V0IHN1cHBvcnQgZm9yIHFlbXUgLU0gbWlwcwoKICAgIFdpdGggc2VyaWFsLCBORTIwMDAsIElERSBzdXBwb3J0LiBUZXN0ZWQgaW4gYmlnLWVuZGlhbiBtb2RlLgogICAgTWVtb3J5IHNpemUgaGFyZC1jb2RlZCB0byAxMjhNIGZvciBub3csIHNvIGRvbid0IHBsYXkgd2l0aAogICAgdGhlIC1tIG9wdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCA3ZjUyZmEzYzJkZjU5ZTQ5ZGMyYmFkZDdjMDg0Y2YyZDAwN2M0MzhmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEphbiAxMSAwMDowMTozNyAyMDA4ICswMTAwCgogICAgRml4IG5mcyBjb21tYW5kIGhlbHAgdG8gcmVmbGVjdCB0aGF0IHRoZSBzZXJ2ZXJpcCBpcyBvcHRpb25hbAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGI4ZjQxNjJhNGY3YTliZWU1ZTlkMDMwNWMxN2YyZDM0ZGU0NjZhOWIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gRGVjIDEwIDIyOjMyOjE0IDIwMDcgKzAxMDAKCiAgICBiZjUzNy1zdGFtcDogcmVtb3ZlIGFscmVhZHkgZGVmaW5lZCBpc196ZXJvX2V0aGVyX2FkZHIgYW5kIGlzX211bHRpY2FzdF9ldGhlcl9hZGRyCgogICAgYW5kIG1vdmUgaXNfdmFsaWRfZXRoZXJfYWRkciBib2FyZCBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYzJmODk2YjhmYzQ3MjJlMzY5MTU5MDNlMTk0MmUxMzhlNjhjZTgwNApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNjoxMzozMSAyMDA4ICswOTAwCgogICAgZHJpdmVycy9uZXQvcnRsODEzOS5jOiByeF9zdGF0dXMgc2hvdWxkIGJlIGxlMzJfdG9fY3B1KHJ4X3N0YXR1cykuCgogICAgcnhfc3RhdHVzIG9uIHRoZSBtZW1vcnkgaXMgYmFzaWNhbGx5IGluIExFLCBidXQgbmVlZHMgdG8gYmUgaGFuZGxlZCBpbiBDUFUKICAgIGVuZGlhbi4gbGUzMl90b19jcHUoKSB0YWtlcyB1cCB0aGlzIG1pc3Npb24uIEV2ZW4gaWYgb24gdGhlIHNhbmUgaGFyZHdhcmUsCiAgICBpdCdsbCB3b3JrIGZpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQ2M6IE1hc2FtaSBLb21peWEgPG1rb21peWFAc29uYXJlLml0PgogICAgQ2M6IEx1Y2FzIEppbiA8bHVjYXNqaW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5NmEyMzY3NDZmZTZhN2I4NDgwMmFmYjRlZDMxNTM2Njk2ZDM0ODEyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE2OjEyOjI2IDIwMDggKzA5MDAKCiAgICBkcml2ZXJzL25ldC9ydGw4MTM5LmM6IEZpeCBjYWNoZSBjb2hlcmVuY3kgaXNzdWVzCgogICAgQ3VycmVudCBkcml2ZXIgaXMgbWVhbnQgZm9yIGNhY2hlIGNvaGVyZW50IHN5c3RlbXMuIFRoaXMgcGF0Y2ggYWRkcwogICAgZmx1c2hfY2FjaGUoKSByb3V0aW5lcyB0byBzdXBwb3J0IGNhY2hlIG5vbi1jb2hlcmVudCBzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBNYXNhbWkgS29taXlhIDxta29taXlhQHNvbmFyZS5pdD4KICAgIENjOiBMdWNhcyBKaW4gPGx1Y2FzamluQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDEyNzZjNzZjMWUyYjUwMzUyOTY2ODkyODBiYTFhY2IyYzQyNTEwNApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNjoxMToxNCAyMDA4ICswOTAwCgogICAgZHJpdmVycy9uZXQvcnRsODEzOS5jOiBGaXggdHggdGltZW91dAoKICAgICJ0byA9IChjdXJydGlja3MoKSArIFJUTF9USU1FT1VUKSIgaGFzIHBvc3NpYmlsaXRpZXMgdG8gd3JhcCBhcm91bmQuIElmIGl0CiAgICBkb2VzLCB0aGUgY29uZGl0aW9uICIoY3VycnRpY2tzKCkgPCB0bykiIGJlY29tZXMgaW52YWxpZCBhbmQgaW1tZWRpYXRlbHkKICAgIGxlYWRzIHRvIHR4IHRpbWVvdXQgZXJyb3IuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgZmluZS1ncmFkZWQgdWRlbHkoMTApCiAgICBsb29wcyB0byBlYXNlIHRoZSBpbXBhY3Qgb2Ygd3JhcHBpbmcgYXJvdW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBNYXNhbWkgS29taXlhIDxta29taXlhQHNvbmFyZS5pdD4KICAgIENjOiBMdWNhcyBKaW4gPGx1Y2FzamluQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMThlZTMyMGZmNjNlZGJmN2IyN2JiZWIwNWYwZTEyYTUyMzAyYzY4YQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxODo0NToyOCAyMDA4ICswODAwCgogICAgVFNFQzogQWRkIHRoZSBzdXBwb3J0IGZvciBSZWFsVGVrIFJUTDgyMTFCIFBIWQoKICAgIEFkZCB0aGUgc3VwcG9ydCBvZiBSZWFsVGVrIFJUTDgyMTFCIFBIWSwgdGhlIFJUTDgyMTFCCiAgICBQSFkgb25seSBzdXBwb3J0cyBSR01JSSBhbmQgTUlJIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgODRhMzA0N2I3MmI3MGU4NjJiMGI3YThlMjA1ODA3NzQ1N2Y4OWEzMgpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglXZWQgSmFuIDE2IDA5OjQwOjQxIDIwMDggKzAxMDAKCiAgICBSZW1vdmUgYW5ub3lpbmcgZGVidWcgcHJpbnRvdXQgZm9yIFBIWSBsZXNzIGJvYXJkcy4KCiAgICBQSFkgbGVzcyBib2FyZCBwcmludHMgb3V0IGxvdHMgb2YgInJlYWQgd3JvbmcgLi4uIjoKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDIsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDMsIGJhc2UgZTAxMDIzMjAKICAgIFVFQzogUEhZIGlzIEdlbmVyaWMgTUlJIChmZmZmZmZmZikKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDQsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDAsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDEsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDEsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDUsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDEsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDEsIGJhc2UgZTAxMDIzMjAKICAgIHJlYWQgd3JvbmcgdmFsdWUgOiBtaWlfaWQgMyxtaWlfcmVnIDUsIGJhc2UgZTAxMDIzMjAKICAgIEZTTCBVRUMwOiBGdWxsIER1cGxleAogICAgRlNMIFVFQzA6IFNwZWVkIDEwMEJUCiAgICBGU0wgVUVDMDogTGluayBpcyB1cAogICAgVXNpbmcgRlNMIFVFQzAgZGV2aWNlCgogICAgTWFrZSB0aGlzIHByaW50b3V0IGRlcGVuZCBvbiBVRUNfVkVSQk9TRV9ERUJVRyBhbmQKICAgIHJlbW92ZSBpdHMgZGVmaW5pdGlvbiBpbiB1ZWNfcGh5LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZWU2MmVkMzI4NmY4M2I5OGI3Nzg1ZTAzMThkYzYzNzllNzhmN2ZmNgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTQ6MTE6MDAgMjAwOCAtMDYwMAoKICAgIG5ldDogcmVkdWNlIGJvb3QgbGF0ZW5jeSBvbiBRRSBVRUMgYmFzZWQgYm9hcmRzCgogICAgYWN0dWFsbHkgcG9sbGluZyBmb3IgUEhZIGF1dG9uZWdvdGlhdGlvbiB0byBmaW5pc2ggZW5hYmxlcyB1cyB0byByZW1vdmUgdGhlCiAgICA1IHNlY29uZCBib290IHByb21wdCBsYXRlbmN5IHByZXNlbnQgb24gUUUgYmFzZWQgYm9hcmRzLgoKICAgIGNhbGwgdG8gcWVfc2V0X21paV9jbGtfc3JjIGluIGluaXRfcGh5LCBhbmQgbXYgY2FsbCB0byBpbml0X3BoeSBmcm9tCiAgICB1ZWNfaW5pdGlhbGl6ZSB0byB1ZWNfaW5pdCBieSBKb2FraW0gVGplcm5sdW5kOyBhdXRvbmVnb3RpYXRpb24gd2FpdAogICAgY29kZSBzaGFtZWxlc3NseSBzdG9sZW4gZnJvbSB0c2VjIGRyaXZlci4KCiAgICBhbHNvIHJtIHVudXNlZCBDT05GSUdfUk1JSV9NT0RFIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1NWZlN2M1N2E4Yjk5YTEzMDkyNTA1MmRjZGJiNzdmMDUzZGM1MGUzCkF1dGhvcjogbWljaGFlbC5maXJ0aEBidC5jb20gPG1pY2hhZWwuZmlydGhAYnQuY29tPgpEYXRlOglXZWQgSmFuIDE2IDExOjQwOjUxIDIwMDggKzAwMDAKCiAgICBUU0VDIGRyaXZlcjogQ2hhbmdlIE1ESU8gc3VwcG9ydCB0byBhbGxvdyBhY2Nlc3MgdG8gYW55IFBIWXMgb24gdGhlIE1ESU8gYnVzCgogICAgVGhlIGN1cnJlbnQgVFNFQyBkcml2ZXIgbGltaXRzIE1ESU8gYWNjZXNzIHRvIHRoZSBkZXZpY2VzIHRoYXQgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQgYXMgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyBNQUMuIFRoaXMgcGF0Y2ggYWxsb3dzIGFjY2VzcyB0byBhbnkgUEhZIGRldmljZSBvbiB0aGUgTURJTyBidXMgdGhyb3VnaCB0aGUgJ21paScgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBGaXJ0aCA8bWljaGFlbC5maXJ0aEBidC5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1ZTkxOGE5OGMyNmU4YWI5YjVkMmQ0OGQ5OThhMmNlZDJiNWI4NWIzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAwMDozODowNSAyMDA4IC0wNjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4Mzd4RVJEQgoKICAgIE1QQzgzN3hFUkRCIGJvYXJkIHN1cHBvcnQgaW5jbHVkZXM6CiAgICAqIEREUjIgMzMwTUh6IGhhcmRjb2RlZCAoc29sZGVyZWQgb24gdGhlIGJvYXJkKQogICAgKiBMb2NhbCBCdXMgTk9SIEZsYXNoCiAgICAqIEkyQywgVUFSVCBhbmQgUlRDCiAgICAqIGVUU0VDIFJHTUlJIChUU0VDMCAtIFJUTDgyMTFCIHdpdGggTUlJOwogICAgKgkgICAgICAgVFNFQzEgLSBWU0M3Mzg1IGxvY2FsIGJ1cywgaGFyZGNvZGVkLCByZXF1aXJlcyBzZXBlcmF0ZSBmaXJtd2FyZQogICAgKgkJICAgICAgIGxvYWQpCgogICAgU2lnbmVkLW9mZi1ieTogS2V2aW4gTGFtIDxrZXZpbi5sYW1AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvZSBEJ0FiYnJhY2NpbyA8am9lLmQnYWJicmFjY2lvQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDllODk2NDc4ODljZDRiNWFkYTViNWU3Y2FkNmNiZTU1NzM3YTA4ZDcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDEyOjA2OjE2IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgc3VwcG9ydCBmb3IgbW9yZSBzeXN0ZW0gY2xvY2sgcGVyZm9ybWFuY2UgY29udHJvbHMKCiAgICBTeXN0ZW0gcmVnaXN0ZXJzIHRoYXQgYXJlIG1vZGlmaWVkIGFyZSB0aGUgQXJiaXRlciBDb25maWd1cmF0aW9uCiAgICBSZWdpc3RlciAoQUNSKSwgdGhlIFN5c3RlbSBQcmlvcml0eSBDb250cm9sIFJlZ2lzdGVyIChTUENSKSwgYW5kIHRoZQogICAgU3lzdGVtIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKFNDQ1IpLgoKICAgIFNpZ25lZC1vZmYgYnk6IE1pY2hhZWwgRi4gUmVpc3MgPE1pY2hhZWwuRi5SZWlzc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9lIEQnQWJicmFjY2lvIDxsamQwMTVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTZjM2NkZTA1MGUyZDI0M2U2MmIzNzQ4NmYxNTU4NTcwNzg3YmViOApBdXRob3I6IEphbWVzIFlhbmcgPGphbWVzLnlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxMTo1ODowOCAyMDA4IC0wNjAwCgogICAgRlNMOiBHZW5lcmFsaXplIFBJWElTIHJlc2V0IGNvbW1hbmQgcGFyc2luZy4KCiAgICBCZWZvcmUsIHRoZSBvcmRlciBvZiBhcmd1bWVudHMgdG8gdGhlIHBpeGlzX3Jlc2V0CiAgICBjb21tYW5kIG5lZWRlZCB0byBiZSBzdXBwbGllZCBpbiBhIGhhcmQtY29kZWQgb3JkZXIuCiAgICBHZW5lcmFsaXplIHRoZSBjb21tYW5kIHBhcnNpbmcgdG8gYWxsb3cgYW55IG9yZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPGphbWVzLnlhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFkOGY4Njg3Yjc4YzNlOTE3YjE3M2YwMzg5MjY2OTUzODNjNTU1NTUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjQyOjQxIDIwMDggLTA2MDAKCiAgICBGU0w6IENvbnZlcnQgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9NYWtlZmlsZSB0byB1c2UgQ09ORklHXwoKICAgIENvbnZlcnQgdGhlIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUgdG8gdXNlCiAgICBDT05GSUdfKiBvcHRpb25zIHRvIHNlbGVjdCB3aGljaCBmaWxlcyB0byBjb25kaXRpb25hbGx5CiAgICBjb21waWxlIGludG8gdGhlIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24gbGlicmFyeSByYXRoZXIKICAgIHRoYW4gY29uZGl0aW9uYWxseSBjb21waWxpbmcgZW50aXJlIGZpbGVzLgoKICAgIE5vdyBoYW5kbGVzOjoKCUNPTkZJR19GU0xfUElYSVMKCUNPTkZJR19GU0xfRElVX0ZCCglDT05GSUdfUFFfTURTX1BJQgoKICAgIENPTkZJR19JRF9FRVBST00gaXMgaW50cm9kdWNlZCB1bnRpbCBDRkdfSURfRUVQUk9NIGlzIGdvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YzIyMjFlYjIzMDM3MmE5ZTUzN2M0ZjY2MzZiMTQ3YjA5MDkzMjVmCkF1dGhvcjogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE2OjM4OjM4IDIwMDggKzA4MDAKCiAgICBVc2UgQ09ORklHX1VMSTUyNlggYXMgTVBDODYxMEhQQ0QgZGVmYXVsdCBFdGhlcm5ldCBkcml2ZXIKCiAgICBVc2UgZHJpdmVyL25ldC91bGk1MjZ4LmMgYXMgTVBDODYxMEhQQ0QgZGVmYXVsdCBFdGhlcm5ldCBkcml2ZXIuCiAgICBSZW1vdmUgdW51c2VkIGV0aGVybmV0IENPTkZJR18gb3B0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MTFhNzk0NjI3N2QyZTI5YWY0ODEwMTFlODYzNWU5OTc1YzU0ZTQ1CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDowNToxNCAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogZml4IFFFIEVUSFBSSU1FcyB0byBjb3JyZWN0ICdGU0wgVUVDMCcgdmFsdWUKCiAgICBjb250aW51YXRpb24gb2YgY29tbWl0IGI5NmM4M2Q0YWU0NzVhNzBlZjI2MzVjZDBlNzQ4MTc0YzQ0Yzg2MDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM2M2VlYTlmZjdmMTlhMmNiYTE3ZjI2MmJkMTc1NTlmMTY2ZTEzNGUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDA5OjUxOjEyIDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBjbGVhbiB1cCBtcGM4MzYwZW1kcy5jIHdhcm5pbmdzCgogICAgbXBjODM2MGVtZHMuYzogSW4gZnVuY3Rpb24gJ2Z0X2JvYXJkX3NldHVwJzoKICAgIG1wYzgzNjBlbWRzLmM6MzI3OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjMyOTogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdmZHRfZ2V0cHJvcCcgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKICAgIG1wYzgzNjBlbWRzLmM6MzM0OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ2ZkdF9zZXRwcm9wJyBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozNDE6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QKICAgIG1wYzgzNjBlbWRzLmM6MzQzOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ2ZkdF9nZXRwcm9wJyBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozNDg6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnZmR0X3NldHByb3AnIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMDk4ODBlYTcyYTFjODA2ZGIyMjNjZTU5NGM1ZmIxYjY1NDJmZjZhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNjoxNDo0NiAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogZml4IHBoeS1jb25uZWN0aW9uLXR5cGUgZml4dXAgY29kZQoKICAgIHVzZSB0cmVlIHBhc3NlZCB0byB1cyBpbiBsb2NhbCBibG9iLCBub3QgZ2xvYmFsIGZkdC4KCiAgICBBbHNvIHVzZSBmZHRfcGF0aF9vZmZzZXQgdG8gY29udmVydCB0byByZWxhdGl2ZSBvZmZzZXQsIHNpbmNlIGFic29sdXRlCiAgICByZWZlcmVuY2UgaXMgbmVlZGVkIHRvIGNoZWNrIGZvciByZ21paS1pZCBtb2RlIHN0cmluZyB2YWx1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJiNGM5NTJiZTdjNDM1N2ExM2U4MzlkNDhkZjgwODUzODIwYzMzZWIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSmFuIDE0IDA5OjAxOjQwIDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggbXBjODMxMy9tcGM4MzE1L21wYzgzNDlpdHggTWFrZWZpbGVzIGZvciBzaWxlbnQgYnVpbGQgKHdpdGggLXMpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTFkOGVkMmMwOGRhMTRiMTY4NjU4Y2M1ZmE3ODUyOWQ0NjFhZWE3MApBdXRob3I6IFBvb25hbSBBZ2dyd2FsIDxiMTA4MTJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAwOTo0MToxNCAyMDA4ICswNTMwCgogICAgQ2hhbmdlcyBpbiB1Ym9vdCBERFIgY29uZmlndXJhdGlvbiBmb3IgTVBDODMxM2VSREIKCiAgICBUaGVzZSBjaGFuZ2VzIHdlcmUgaWRlbnRpZmllZCBieSBIaWdoU21pdGggQmlsbCAsTWF6enlhciBhbmQgSm9zZXBoIGZvcgogICAgRERSIGNvbmZpZ3VyYXRpb24gaW4gdS1ib290IGNvZGUuIFNvbWUgYXJlIHJlbGF0ZWQgdG8gcGVyZm9ybWFuY2UsIHNvbWUKICAgIGFmZmVjdCBzdGFiaWxpdHkgYW5kIHNvbWUgY29ycmVjdCBmZXcgYmFzaWMgZXJyb3JzIGluIHRoZSBjdXJyZW50CiAgICBjb25maWd1cmF0aW9uLgoKICAgIFRoZSBjaGFuZ2VzIGhhdmUgYmVlbiB0ZXN0ZWQgYW5kIGZvdW5kIHRvIGdpdmUgYmV0dGVyIG1lbW9yeSBsYXRlbmN5CiAgICBmaWd1cmVzIG9uIE1QQzgzMTNlUkRCLkxNQmVuY2ggZmlndXJlcyBwcm92ZSBpdC4KCiAgICBUaGUgY2hhbmdlcyBhcmU6CgogICAgLSBDUzBfQ09ORklHWyBBUF9uX0VOXSBpcyBjaGFuZ2VkIGZyb20gMSB0byAwCiAgICAgICh0aGlzIG1heSBpbXByb3ZlIHBlcmZvcm1hbmNlIGZvciBhcHBsaWNhdGlvbiB3aXRoIG1hbnkgcmVhZAogICAgICBvciB3cml0ZSB0byBvcGVuIHBhZ2VzKS4KICAgIC0gQ1MwX0NPTkZJR1tPRFRfV1JfQ0ZHXSBpcyBjdXJyZW50bHkgY2hhbmdlZCBmcm9tIDEwMCB0bwogICAgICAwMDEgKGFjdGl2YXRpbmcgYWxsIHRoZSBDUyB3aGVuIG9ubHkgb25lIGlzIHVzZWQgbWF5IGNhdXNlCiAgICAgIHVud2FudGVkIG5vaXNlIG9uIHRoZSBzeXN0ZW0pCgogICAgLSBUSU1JTkdfQ0ZHXzFbQUNUVE9QUkVdIGlzIGNoYW5nZWQgZnJvbSA5Y2xrcyB0byA4Y2xrcyAoYmFzZWQgb24KICAgICAgVHJhcz00NW5zKQogICAgLSBUSU1JTkdfQ0ZHXzFbUkVGUkVDXSBjaGFuZ2VkIGZyb20gMjEgY2xrcyB0byAxOGNsa3MuCgogICAgLSBUSU1JTkdfQ0ZHXzJbQUxdIHZhbHVlIGNoYW5nZWQgZnJvbSAwIHNldHRpbmcgdG8gMSBjbGsgdG8KICAgICAgY29tcGx5IHdpdGggdGhlIDMgT0RUIGNsayByZXF1aXJlbWVudHMpCiAgICAtIFRJTUlOR19DRkdfMltDUE9dIHdhcyBzZXQgdG8gYSByZXNlcnZlZCB2YWx1ZSwgY2hhbmdlZCB0byBSTCszLzQuCiAgICAtIFRJTUlOR19DRkdfMltGT1VSX0FDVF0gaXMgY2hhbmdlZCBmcm9tIDEwIGNsa3MgdG8gNmNsa3MuCgogICAgLSBERFJfU0RSQU1fTU9ERVtBTF1jaGFuZ2VkIGZyb20gMCB0byAxLgogICAgLSBERFJfU0RSQU1fTU9ERVtXUlJFQ10gY2hhbmdlZCBmcm9tIDEgY2xrIHRvIDMgY2xrcy4KCiAgICAtIEREUl9TRFJBTV9JTlRFUlZBTFtSRUZJTlRdIGlzIGNoYW5nZWQgZnJvbSAweDAzMjAgdG8gMHgwNTEwLgogICAgLSBERFJfU0RSQU1fSU5URVJWQUxbQlNUT1BSRV0gaXMgY2hhbmdlZCBmcm9tIDB4NjQgdG8gMHgwNTAwLgoKICAgIFRoZSBwYXRjaCBpcyBiYXNlZCBvZiBnaXQ6Ly93d3cuZGVueC5kZS9naXQvdS1ib290LW1wYzgzeHguZ2l0CiAgICBUaGUgbGFzdCBjb21taXQgb24gdGhpcyB0cmVlIHdhcyA2Nzc1YzY4NjgzYTUzYzdhYmM3Nzg3NzQ2NDFhYWM2ZjgzM2EyY2JmCgogICAgU2lnbmVkLW9mZi1ieTogUG9vbmFtIEFnZ3J3YWwtYjEwODEyIDxiMTA4MTJAZnJlZXNjYWxlLmNvbT4KICAgIENjOiBCaWxsIEhpZ2hTbWl0aCA8QmlsbC5IaWdoc21pdGhAZnJlZXNjYWxlLmNvbT4KICAgIENjOiBSYXp6YXogTWF6eWFyIDxNUmF6emF6QGZyZWVzY2FsZS5jb20+CiAgICBDYzogSm9zZXAgUCBKIDxQSi5Kb3NlcGhAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjVjZGQ3ZGY0YTA2ZWRiOTE1MzljOWEyZWE3YzE3OGE4NzBjM2E5NQpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJU2F0IEphbiAxMiAxMzoyNDoxNCAyMDA4IC0wNTAwCgogICAgRW5hYmxlIHRoZSBpc2RyYW0gY29tbWFuZCBvbiB0aGUgTVBDODM2MEVNRFMgYm9hcmQKCiAgICBUaGUgaXNkcmFtIGNvbW1hbmQgcHJpbnRzIG91dCBkZWNvZGVkIGluZm9ybWF0aW9uIHRoZSAic2VyaWFsIHByZXNlbmNlCiAgICBkZXRlY3QiIChTUEQpIGNoaXAgb24gdGhlIFNEUkFNIFNJTU1zLiAgVGhpcyBjYW4gYmUgdmVyeSBoZWxwZnVsIHdoZW4KICAgIGRlYnVnZ2luZyBtZW1vcnkgY29uZmlndXJhdGlvbiBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YmQ1MjJjZTRhZmRhM2Q0ODY4ZWU4YzkxM2Y1Mzk0MDk0MzI2YmUxCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDE4OjQ4OjI0IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIHN1cHBvcnQgZm9yIE1QQzgzMTVFUkRCIGJvYXJkCgogICAgVGhlIGZlYXR1cmVzIGxpc3Q6CiAgICAtIEJvb3QgZnJvbSBOT1IgRmxhc2gKICAgIC0gRERSMiAyNjZNSHogaGFyZGNvZGVkIGNvbmZpZ3VyYXRpb24KICAgIC0gTG9jYWwgYnVzIE5PUiBGbGFzaCBSL1cgb3BlcmF0aW9uCiAgICAtIEkyQywgVUFSVCwgTUlJIGFuZCBSVEMKICAgIC0gZVRTRUMwLzEgc3VwcG9ydAogICAgLSBQQ0kgaG9zdAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIwNTg4NGVmYTYxNGU0ZDhhOTQxMzE1OGZjMjI4ZTBkYzAyYWI3MDQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTg6NDY6NTAgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBjb25maWcgb2YgZVRTRUMgZW1lcmdlbmN5IHByaW9yaXR5IGluIFNQQ1IKCiAgICBUaGUgVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHkgZGVmaW5pdGlvbiBvZiA4MzF4LzgzN3gKICAgIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBkZWZpbml0aW9uIG9mIDgzNHggaW4gU1BDUiByZWdpc3Rlci4KCiAgICBBZGQgdGhlIG90aGVyIGNvbmZpZyBvZiBUU0VDIGVtZXJnZW5jeSBwcmlvcml0eSBpbnRvCiAgICBjcHVfaW5pdC5jCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWI5NTgyMzRiMDc4M2YxM2Q5MmYwMDdmNzUzZmQyYzNhZTJjODY4MApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxODo0MjoxOSAyMDA4ICswODAwCgogICAgbXBjODN4eDogUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIE1QQzgzNjBFUkRLLmgKCiAgICBUaGUgTVBDODM2MEVSREsgYm9hcmQgc3VwcG9ydCBwYXRjaCBpcyBhZGRlZCBiZWZvcmUKICAgIHRoZSBjb21taXQgMmM1YjQ4ZmMyMDVjM2UyNzUyOTEwZGE4ZjM5MjA5ZWQwNzU5MjllNQogICAgc28sIG1pc3MgY2xlYW4gdXAgaXQuCgogICAgVGhlIHBhdGNoIGNsZWFuIHVwIHRoZSBtaXNzIGNhY2hlIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZDlkMjMwNTNkNDM1YzA4ZmM4Njk1MDE3YjVjYjkwMDNmY2RhNzg2CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMjM6MDk6MzIgMjAwOCArMDMwMAoKICAgIG5hbmQ6IEZTTCBVUE0gTkFORCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA2Y2IyMjM5YWU3NmZhZWU2NDQzNDI4NmM0ZjhmYzcxMzc0NzAyZGQyCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMDg6NTk6NDQgMjAwOCArMDkwMAoKICAgIE9uZU5BTkQ6IFNlcGFyYXRlIFUtQm9vdCBkZXBlbmRlbnQgY29kZSBmcm9tIE9uZU5BTkQKCiAgICBPbmVOQU5EOiBTZXBhcmF0ZSBVLUJvb3QgZGVwZW5kZW50IGNvZGUgZnJvbSBPbmVOQU5ECgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA4M2E0OWM4ZGQ3OTk4YmUyZDFmMGQ0MjA1OTdhMzZiYmYwYmY0MTY0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTA6MzM6NDYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogU2VxdW9pYSBjb2Rpbmcgc3R5bGUgY2xlYW51cCBhbmQgYmVhdXRpZmljYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA0YjNjYzZlY2U5YzQ1NTUwNGNmMTI5MDlmYWUzOGQwODVkODQ4YWMwCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMTQ6MzU6NTggMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogUmVmYWN0b3IgRUNDIFBPU1QgZm9yIEFNQ0MgRGVuYWxpIGNvcmUKCiAgICBUaGUgRUNDIFBPU1QgcmVwb3J0ZWQgaW50ZXJtaXR0ZW50IGZhaWx1cmVzIHJ1bm5pbmcgYWZ0ZXIgcG93ZXItdXAgb24KICAgIHRoZSBLb3JhdCBQUEM0NDBFUHggYm9hcmQuCUV2ZW4gd2hlbiB0aGUgdGVzdCBwYXNzZWQsIHRoZSBkZWJ1Z2dpbmcKICAgIG91dHB1dCBvY2Nhc2lvbmFsbHkgcmVwb3J0ZWQgYWRkaXRpb25hbCB1bmV4cGVjdGVkIEVDQyBlcnJvcnMuCgogICAgVGhpcyByZWZhY3RvcmluZyBoYXMgdGhyZWUgbWFpbiBvYmplY3RpdmVzOiAoMSkgbWluaW1pemUgdGhlIGNvZGUKICAgIGV4ZWN1dGVkIHdpdGggRUNDIGVuYWJsZWQgZHVyaW5nIHRoZSB0ZXN0cywgKDIpIGFkZCBtb3JlIGNoZWNraW5nIG9mIHRoZQogICAgcmVzdWx0cyBzbyBhbnkgdW5leHBlY3RlZCBFQ0MgZXJyb3JzIHdvdWxkIGNhdXNlIHRoZSB0ZXN0IHRvIGZhaWwsIGFuZAogICAgKDMpIHVzZSBzeW5jaHJvbml6YXRpb24gKG9ubHkpIHdoZXJlIHJlcXVpcmVkIGJ5IHRoZSBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMjQ2NTY2NWI3M2FjMmY2ODhhZjk0NWIxZWQ1MTA3NTJhZmE4MTZhNApBdXRob3I6IERhdmlkIFNhYWRhIDxEYXZpZC5TYWFkYUBlY2l0ZWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMDo0MDoyNCAyMDA4ICswMjAwCgogICAgUUUgVUVDOiBFeHRlbmQgbnVtYmVyIG9mIHN1cHBvcnRlZCBVRUNzIHRvIDQKCiAgICBUaGlzIHBhdGNoIGV4dGVuZHMgdGhlIG51bWJlciBvZiBzdXBwb3J0ZWQgVUVDcyB0byA0LiBOb3RlIHRoYXQgdGhlCiAgICBwcm9ibGVtIG9mIFFFIHRocmVhZCByZXNvdXJjZXMgZXhoYXVzdGlvbiBpcyByZXNvbHZlZCBieSBzZXR0aW5nIHRoZQogICAgY29ycmVjdCBudW1iZXIgb2YgUUUgdGhyZWFkcyBhY2NvcmRpbmcgdG8gRXRoZXJuZXQgdHlwZSAoR0JFIG9yIEZFKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTYWFkYSA8ZGF2aWQuc2FhZGFAZWNpdGVsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDU4ZDIwNDI1NmNiMWNlMWJkMzIzODQ3ZDlmNjQ0YWNmNzBhNzJlNmEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDE2IDAwOjAxOjAxIDIwMDggKzAxMDAKCiAgICBMV01PTjU6IGVuYWJsZSBodXNoIHNoZWxsIGFzIGNvbW1hbmQgbGluZSBwYXJzZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY2ZmZiMTg4M2ZlZWRkZGM4MTNkOGE1MDdkMDYwZjJhOTQwZWIyYjIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDE1IDE3OjIyOjI4IDIwMDggKzAxMDAKCiAgICBBRFM1MTIxOiBkaXNhYmxlIHdhdGNoZG9nOyBlbmFibGUgaW1hZ2UgdGltZXN0YW1wcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmI0Zjc3OGZlOWQxZGU2MWQ3NDQ1YmFlN2IzMjUzNDBhYmE2OTY4ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTUgMTc6MjE6MjggMjAwOCArMDEwMAoKICAgIFRLODg1RDogZml4ZXMgZm9yIGJpZ2dlciBmbGFzaCBzZWN0b3Igc2l6ZXMgb24gbmV3IG1vZHVsZXM7CiAgICBhZGp1c3QgZGVmYXVsdCBlbnZpcm9ubWVudDsKICAgIGRpc2FibGUgU0NDIGV0aGVybmV0IChub3QgdXNlZCBvbiB0aGlzIGJvYXJkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGY5MWQ3YWU1Y2E4OWFjZjlmYTFlZDEwMTVkYzA3OGNmMjk1ODE2MDcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMTc6NDg6MTMgMjAwOCArMDkwMAoKICAgIHBjbWNpYTogUmVtb3ZlIENPTkZJR19DT01NQU5EUyBmcm9tIG1hcnVidW4gcGNtY2lhIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA3NmU0OWFhN2ZiOGU3NmNjNDkwOTJjMWFjZDUzZmZmOTIxZTI2MzYwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSmFuIDE1IDIzOjI1OjI1IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU0g3NzEwL1NINzcxMgoKICAgIFNINzcxMC9TSDc3MTIgb2YgU0gzIENQVSBhcmUgc3VwcG9ydGVkLgogICAgU0g3NzFYIGlzIGNhbGxlZCBTSC1FdGhlciwgYW5kIGhhcyB0aGUgRXRoZXIgY29udHJvbGxlciBpbiBDUFUuCiAgICBUaGUgZHJpdmVyIG9mIEV0aGVyIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2M2ExMWJlNjgzMDY4NzBlMDRkMzg1MWVkOWZhNDE5NTVjZGY0ODk0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSmFuIDE1IDIzOjA2OjE3IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgb2YgbWFwX3BoeXNtZW0oKSBhbmQgdW5tYXBfcGh5c21lbSgpIHRvIFN1cGVySAoKICAgIFRoaXMgcGF0Y2ggYWRkIHRoZSBzdXBwb3J0IG9mIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKQogICAgdXNlZCB3aXRoIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UoQ0ZJKSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGRiMzk5NWZlNTE2NGFjNWQ2MzBiN2VjYjk2Mjg2YTk4MjhkZmJiNTQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBKYW4gOSAxNDo0MjoyNyAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBtYWludGFpbmVyIG9mIE1TNzcyMFNFIHRvIHRoZSBNQUlOVEFJTkVSIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZGNkOTllODhlMDNkNTZhMGFlZWNkNDJiNTA3ZDJkMjlkMjBhYjBlMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIEphbiA5IDE0OjM5OjU4IDIwMDggKzA5MDAKCiAgICBzaDogRml4IGJvYXJkIG5hbWUgaW4gTVM3NzIwU0UncyBjb25maWcubWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzBhMDRkOTM3MzRkNzY4YjM5ZGJiNzJmYjUwMWI2NTYxNGM4NjE1ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIEphbiA5IDE0OjM3OjM2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIE1TNzcyMFNFIHRvIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjJiNWUyYmI3OGExZWY0YWU4NTA0ZjVhMjZiZmRjMzI5M2VhNzRhZQpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIERlYyAzIDIyOjU4OjUwIDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgZm9yIE1TNzcyMFJQMDIgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBDQzogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA3YzEwYzU3Mjc1OTAxOTM5YThlY2U0YTllZjNlN2NjYjdjMTJhMGVkCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgSmFuIDkgMTQ6MzA6MDIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBmb3IgU0g3NzIwIGluIHNlcmlhbF9zaCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgQ0M6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KICAgIEFja2VkLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZjk5MTNhOGVlNzFmZjE0ZmNmYzFjN2ZkMGU2OTEyZjg5N2U2OTQwMwpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIERlYyAzIDIyOjU4OjQ1IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU0gzIGFuZCBTSDc3MjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBDQzogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA5YWRmYzlmYjlhZGU2NGNkZjFlZDlmZjg0MmU0ZjkwMGNiZGE3OGJkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDE1IDEwOjExOjAyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBjb21waWxlciB3YXJuaW5nIGluIGNwdS9wcGM0eHgvNDR4X3NwZF9kZHIyLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTdiZWY2ODA5N2FiMzY5MjUwMGEzNmZiMzExMTViZmY3OTEwYWE5OQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CU1vbiBKYW4gMTQgMTQ6MDQ6NDIgMjAwOCArMDEwMAoKICAgIHBwY180eHg6IEZpeCBwb3N0IHNwci5jIGZvciBQUEM0MDUKCiAgICBwb3N0L2NwdS9wcGM0eHgvc3ByLmMgY29udGFpbmVkIGEgZmV3IGNoZWNrcyBmb3IgcmVnaXN0ZXJzIG9ubHkgcHJlc2VudAogICAgZm9yIFBQQzQ0MCBhbmQgZGVyaXZhdGVzIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDA2YzQyOGJjZDQ0MTMwMTRiNDMyMzZlNzc3NjUwMjIwNzE0MjRmYTYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTE6MTI6MDEgMjAwOCArMDgwMAoKICAgIFFFOiBmaXggY29tcGlsZSB3YXJuaW5nCgogICAgcWUuYzogSW4gZnVuY3Rpb24gJ3FlX3VwbG9hZF9maXJtd2FyZSc6CiAgICBxZS5jOjM5MDogd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIHBhc3NpbmcgYXJndW1lbnQgMgogICAgdWVjLmM6IEluIGZ1bmN0aW9uICd1ZWNfaW5pdGlhbGl6ZSc6CiAgICB1ZWMuYzoxMjM2OiB3YXJuaW5nOiAndWVjX2luZm8nIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEwZGQ5OWQ1MWVmYTU1ZmUwMjNlMTljOTdlYWQ5MjY4MzcyNWViMTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMTQgMTA6MDU6MDUgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIEtpbGF1ZWEgQ1BMRCBjb25maWd1cmF0aW9uIHdpdGggVVNCIFBIWSByZXNldCBiaXQKCiAgICBOb3cgdGhhdCBiaXQgMjkgaXMgdGhlIFVTQiBQSFkgcmVzZXQgYml0LCB1cGRhdGUgdGhlIEtpbGF1ZWEgcG9ydAogICAgdG8gcmVtb3ZlIHRoZSBVU0IgUEhZIHJlc2V0IGFmdGVyIHBvd2VydXAuIFRoZSBDUExEIHdpbGwga2VlcCB0aGUKICAgIFVTQiBQSFkgaW4gcmVzZXQgKGFjdGl2ZSBsb3cpIHVudGlsIHRoZSBiaXQgaXMgc2V0IHRvIDEgaW4KICAgIGJvYXJkX2Vhcmx5X2luaXRfZigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNDNhZDUzOTA4ZjFlYTgzYTdjMjZjMzUwNWJiZTg0MzgyZTQ3YWFkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAyMzoyNjo0NSAyMDA4ICswMTAwCgogICAgQVJNOiB1cGRhdGUgbWFjaC10eXBlcy5oIGZyb20gMi42LjI0LXJjNyBMaW51eCBrZXJuZWwgdHJlZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGQxMDMwNzFiN2IwZTNlYzg4ODg1OWJmY2I5ZDQyMjU2NWU2ZDc1MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMjM6Mzc6NTAgMjAwOCArMDEwMAoKICAgIEFEUzUxMjE6IEZpeCB0eXBvIGluIGFkczUxMjEuYywgYWRqdXN0IGRlZmF1bHQgZW52aXJvbm1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUxYjY3ZDA2ZmFhNjcwYzY1ZGU2ZjI5ZWM1YjVhYWNlNzRiMmEwNDcKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAyNCAxODoxODo0MyAyMDA3IC0wNjAwCgogICAgQURTNTEyMTogTUFYIHNsZXcgcmF0ZSBmb3IgUEFUQSBwaW5zCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGQ1MzFhYWMzNGFhYWQxMzhmMTZjYWNkYjUxZDYxOTA4ZDU5YzBlMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMjE6MDU6NTIgMjAwOCArMDEwMAoKICAgIEZpeCBNYWtlZmlsZSBkZXBlbmRlbmN5IHByb2JsZW0gd2l0aCBwYXJhbGxlbCBidWlsZHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4OTk2Nzg0MWUzZWEwMmUzZDBlNWUxMjk1YWI2ODc1NzZlNWIxMDg5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAxOTo1MTozOSAyMDA4ICswMTAwCgogICAgTVBDODU0NERTOiBmaXggYm9hcmQgTWFrZWZpbGUgZm9yIHNpbGVudCBidWlsZCAod2l0aCAtcykKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZkNzE0ZjgyZmI0YjhiYjdlMjY3ZTljNzFiODAwOWJjNjcwYmZlODgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDE2OjQ0OjA4IDIwMDggKzAxMDAKCiAgICBQTUM0NDAgYm9hcmQ6IGZpeCBib2FyZCBNYWtlZmlsZSBmb3Igb3V0LW9mLXRyZWUgYnVpbGRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZlYjNmYjE1NTg4ZDMxOWJkMzA5OWQ1ZjliOTEwMDUxZGZlYWI2YjIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDE2OjA3OjQ0IDIwMDggKzAxMDAKCiAgICBNYWthbHU6IGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDBhMWUwM2JjYWRjNzczNDY4OGEyMWU4ZGQyZTQ2YTRmNjA4MTkzYzAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gSmFuIDEzIDEyOjM2OjEyIDIwMDggKzAxMDAKCiAgICBjbWRfbmFuZCA6IGZpeCBjb21waWxlciB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODIyNWQxZTNhYzBhYjE0N2NkZGU0YjAwNDI4MTI1ODMzODBhZmI4YQpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxyaW5jZXdpbmRAZGlzY3dvcmxkLmRhc2Nvbi5kZT4KRGF0ZToJU2F0IEphbiAxMiAyMDoyOTo0NyAyMDA4ICswMTAwCgogICAgQ0ZJOiBGaXggQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kgY29tcGlsYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyYjJmNDNlZDZhMzBlY2U3N2Y3NjE5MWM4NDVhYzk1MjY3ZGFhMzFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMjoxOTo0NCAyMDA4ICswMTAwCgogICAgTVBDODM2MEVSREs6IGZpeCBpbmNvcnJlY3QgaW5pdGlhbGl6YXRpb24gb2YgQ0ZHX0kyQ19OT1BST0JFUwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDhlOTllMWRkMDFhM2UwZTNkYzNhNzEzOGViODI3Yzk5N2UyYjc0ZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMDI6MTk6MTMgMjAwOCArMDEwMAoKICAgIE1QQzh4eCBGRUMgZHJpdmVyOiBmaXggY29tcGlsZXIgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFlNmQxMDU2ZDJjMmU0ZDEyNjY0MTNjMGFlOGE2ZDU1MjllY2RlNGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAwOjU5OjIxIDIwMDggKzAxMDAKCiAgICBGaXggTWFrZWZpbGUgZGVwZW5kZW5jaWVzIGlzc3VlczsgYWxsb3cgc2lsZW50IGJ1aWxkCgogICAgLSBnZXQgcmlkIG9mICJ2ZXJzaW9uIiB0YXJnZXQgd2hpY2hkaWRuJ3QgcmVhbGx5IHdvcmsKICAgIC0gbWFrZSBhdXRvY29uZi5tayBkZXBlbmQgb24gdmVyc2lvbl9hdXRvZ2VuZXJhdGVkLmggdG8gbWFrZSBzdXJlCiAgICAgIHRvIHJlYnVpbGQgZmlsZXMgYXMgbmVlZGVkCiAgICAtIGFkZCBYRUNITyBtYWNybyB0byBhbGxvdyBmb3Igc2lsZW50IGJ1aWxkIHVzaW5nICJtYWtlIC1zIgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTM0M2FiODNkNTEzNWI1NThhYTU4ZGI5YmU4ZmM3ZmFhNjhkNzdlZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMDA6NTU6NDcgMjAwOCArMDEwMAoKICAgIEFEUzUxMjFlOiBmaXggY29tcGlsZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMmI2ZjQ2MTA2MjdmZTNkNjA3NjIwZTI1MDgyOTE2YTAxNTM4ODc1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMDo1NToxOCAyMDA4ICswMTAwCgogICAgTVVOSUNlczogZml4IGJvYXJkIE1ha2VmaWxlIGZvciByZW1vdGUgYnVpbGQgZGlyZWN0b3J5CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYWQ0ZDM5OTlmZTgwMWFhNzE2MjIxZDdkOWE0YzViZGFkNzQ3ODNhCkF1dGhvcjogT2xpdmVyIFdlYmVyIDxhbG1vZWxpQGdteC5kZT4KRGF0ZToJV2VkIEphbiA5IDE3OjA0OjM4IDIwMDggKzAxMDAKCiAgICBNUEM1MjAwOiBkb24ndCB1c2UgaGFyZGNvZGVkIE1CQVIgYWRkcmVzcyBpbiBCZXN0Y29tbSBmaXJtd2FyZQoKICAgIFNpZ25lZC1vZmYtYnk6IE9saXZlciBXZWJlciA8YWxtb2VsaUBnbXguZGU+Cgpjb21taXQgMDBhYzUwZTM0OGQxYmFjZTI3YTE3NGI3ZjUyOGQxMTNiYzdjZGY3ZgpBdXRob3I6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgpEYXRlOglXZWQgSmFuIDkgMTc6MTA6NTYgMjAwOCArMDEwMAoKICAgIE1ha2UgYm9vdHJldHJ5IHdvcmsgd2hlbiBjb21tYW5kIGxpbmUgZWRpdGluZyBpcyBlbmFibGVkCgogICAgQ3VycmVudGx5LCB3aGVuIENPTkZJR19DTURMSU5FX0VESVRJTkcgaXMgc2V0LCBib290cmV0cnkgZG9lc24ndCB3b3JrLgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KCmNvbW1pdCA2MzJkZTA2NzJkM2MzYWI1M2FkNzk4YzQ3ZjVmMWViMjYwMDhhMGU0CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CUZyaSBKYW4gMTEgMjM6MjY6MTggMjAwOCAtMDUwMAoKICAgIFJlZmFjdG9yIGNvZGUgZm9yICJpMmMgc2RyYW0iIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAwZGY2Yjg0NDZjNDcyMWI5MWNlMzExNTQ4MTE0ODkxMTMwMzcxMDgzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBKYW4gMTAgMjI6MjM6MzkgMjAwOCAtMDUwMAoKICAgIEZpeCAiaTJjIHNkcmFtIiBjb21tYW5kIGZvciBERFIyIERJTU1zCgogICAgTWFueSBvZiB0aGUgU1BEIGJ5dGVzIGZvciBERFIyIFNEUkFNIGFyZSBub3QgaW50ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IHRoZQogICAgImkyYyBzZHJhbSIgY29tbWFuZC4gIFRoaXMgcGF0Y2ggcHJvdmlkZXMgY29ycmVjdCBhbHRlcm5hdGl2ZQogICAgaW50ZXJwcmV0YXRpb25zIHdoZW4gRERSMiBtZW1vcnkgaXMgZGV0ZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgNjQxMzRmMDExMjU0MTIzNjE4Nzk4ZmY3N2M0MmJhMTk2YjJlYzQ4NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTIgMjA6MzE6MzkgMjAwOCArMDEwMAoKICAgIEZpeCBsaW5rZXIgc2NyaXB0czogYWRkIE5PTE9BRCBhdHJpYnV0ZSB0byAuYnNzLy5zYnNzIHNlY3Rpb25zCgogICAgV2l0aCByZWNlbnQgdG9vbGNoYWluIHZlcnNpb25zLCBzb21lIGJvYXJkcyB3b3VsZCBub3QgYnVpbGQgYmVjYXVzZQogICAgb3IgZXJyb3JzIGxpa2UgdGhpcyBvbmUgKGhlcmUgZm9yIG9jb3RlYSBib2FyZCB3aGVuIGJ1aWxkaW5nIHdpdGgKICAgIEVMREsgNC4yIGJldGEpOgogICAgcHBjXzR4eC1sZDogc2VjdGlvbiAuYm9vdHBnIFtmZmZmZjAwMCAtPiBmZmZmZjIzYl0gb3ZlcmxhcHMgc2VjdGlvbiAuYnNzIFtmZmZlZTkwMCAtPiBmZmZmZjhhYl0KCiAgICBGb3IgbWFueSBib2FyZHMsIHRoZSAuYnNzIHNlY3Rpb24gaXMgYmlnIGVub3VnaCB0aGF0IGl0IHdyYXBzIGFyb3VuZAogICAgYXQgdGhlIGVuZCBvZiB0aGUgYWRkcmVzcyBzcGFjZSAoMHhGRkZGRkZGRiksIHNvIHRoZSBwcm9ibGVtIHdpbGwgbm90CiAgICBiZSB2aXNpYmxlIHVubGVzcyB5b3UgdXNlIGEgNjQgYml0IHRvb2wgY2hhaW4gZm9yIGRldmVsb3BtZW50LiBPbgogICAgc29tZSBib2FyZHMgaG93ZXZlciwgY2hhbmdlcyB0byB0aGUgY29kZSBzaXplIChkdWUgdG8gZGlmZmVyZW50CiAgICBvcHRpbWl6YXRpb25zKSB3ZSBiYWlsIG91dCB3aXRoIHNlY3Rpb24gb3ZlcmxhcHMgbGlrZSBhYm92ZS4KCiAgICBUaGUgZml4IGlzIHRvIGFkZCB0aGUgTk9MT0FEIGF0dHJpYnV0ZSB0byB0aGUgLmJzcyBhbmQgLnNic3MKICAgIHNlY3Rpb25zLCB0ZWxsaW5nIHRoZSBsaW5rZXIgdGhhdCAuYnNzIGRvZXMgbm90IGNvbnN1bWUgYW55IHNwYWNlIGluCiAgICB0aGUgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzYWZhYzc5ZWMyN2I5MWRmMTg1ZjA5MGIzMWRhZDk2MjA3NzlmNDQwCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAyMDo0Mjo1OCAyMDA4IC0wNjAwCgogICAgVVNCOiBBZGQgUGhpbGlwcyAxNTYxIFBDSS1PSENJIGlkcwogICAgKG5lZWRlZCBmb3IgTTU0NzVFVkIpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVlOGRlZjY3MzFjZDdiZWM3NGJmZjQyYTE2YjEzOWRlMDQwMTAzNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEyIDE1OjUxOjM0IDIwMDggKzAxMDAKCiAgICBBZGQgTUFJTlRBSU5FUlMgZW50cmllcyBmb3IgaWRzODI0NywganVwaXRlciwgbXVuaWNzZSwgc2MzIGFuZCB1YzEwMQogICAgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZDQ5ZTBlMTUyYThiODFjYzA2MDIyNzFlOGZkMjU5MzcxZjU1OWI3CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTI6MDM6NDMgMjAwOCArMDEwMAoKICAgIE1QQzUxMlg6IENsZWFudXAgYnVzIGNsb2NrIG5hbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDY2YTk0NTViNmJmNDZkNjljZWM1Yzg4ZDFhNjAwZDFkOWExMDY3MGQKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE3OjE2OjU5IDIwMDggKzAxMDAKCiAgICBNUEM1MTJYOiBGaXhlZCB0eXBvIGluIG1hY3JvIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgMjgxZmY5YTQ1Y2Y5ZWIxN2I4YTlhZmM0MzZjYjc4M2NmMWY2MjM2MwpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTc6MTY6MTUgMjAwOCArMDEwMAoKICAgIGFkczUxMjE6IEFkZGVkIHN1cHBvcnQgZm9yIEZEVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhMTBmZjkxOTYxODNlN2U1ZjJhZTNjNGY1ZjNjYmU5MmFlOWNiNzE5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMiAwMTowNTo1MCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNmRiOTQ1NjQ5ZTVlOWQwYzdlZmUzM2I1MDdkMjQzY2RjODZjZjAzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MTU6MTcgMjAwOCArMDEwMAoKICAgIEZpeGVkIHN5bnRheCBlcnJvciBpbiBmdW5jdGlvbiBpbml0X2UzMDBfY29yZSgpIG9mIG1wYzgzeHgvc3RhcnQuUyBpZgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBmYTA1NjY0Y2Q4YzdhYjFlY2YwNjJhYTczYjk5MmI3YjU4YmJhNDljCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MTU6MTYgMjAwOCArMDEwMAoKICAgIE1VTklDZXM6IFNldCB0aGUgcmlnaHQgQ0ZHX0RFRkFVTFRfTUJBUiB2YWx1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ZmIyYjIzNDJlY2U4ZDc4NmM2ZjdmZGJhMWJjMjczZmViZDNiM2QyCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MTU6MTUgMjAwOCArMDEwMAoKICAgIGFkZGVkIHRoZSBjb25maWcgRmlsZSBmb3IgdGhlIE1VTklDZXMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNjM0MWQ5ZDcyM2I3MWI0YzBiZjg2Zjk3OWU0Y2IyMjhjMDJmZDA5ZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE1OjE1OjE0IDIwMDggKzAxMDAKCiAgICBhZGRlZCBiYXNpYyBzdXBwb3J0IGZvciB0aGUgTVVOSUNlcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzYmI3N2ZiMDlhMWNhYWJmNWEyOTJjYzViNDg2YTc4Yjk3N2ZiZTE5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMiAwMDozOTozNyAyMDA4ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRyBhbmQgTUFJTlRBSU5FUlMgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YmE3MzkwYzNjYjU3OTE3MmJlNjY4ODhhMzcxNzA3YjQ3YjViZTRlCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAyOjE1OjAyIDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsYXRpb24gcHJvYmxlbSBpbiBjb21tb24vY21kX2JtcC5jCgogICAgY29tbW9uL2NtZF9ibXAuYyBmYWlscyB0byBjb21waWxlIGlmIENPTkZJR19WSURFT19CTVBfR1pJUAogICAgaXNuJ3QgZGVmaW5lZC4gVGhpcyBwYXRjaCBmaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNWFhNDM3YmFhZTVmZTYyOWFiZWFiOTliZWY3OTNhMmExZmM3MWI1OApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAxOjEyOjA5IDIwMDggKzAxMDAKCiAgICBGaXggZGVmYXVsdGNvbmZpZyBmb3IgdGhlIG1nY29nZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBhYzlkYjA2NmIyNjkzNWYzMWJmZjE1Yzk4MTY4YjE5ZmFlYjYwM2YzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDE6MTI6MDggMjAwOCArMDEwMAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBtZ2NvZ2UgYm9hcmQgZnJvbSBrZXltaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGI0MjNkMDU1Y2MyZTEzYzRlZjFmMDM4OWMzZmEyOTg4ZDBlZWQ4MTgKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMToxMjowNyAyMDA4ICswMTAwCgogICAgRW5hYmxlIFNNQyBtaWNyb2NvZGUgcmVsb2NhdGlvbiBwYXRjaCBmb3IgU01DMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzODFlNGU2Mzk3MjBkOGQyZWZiODA2NmM3YzQ4ZWM5NTg4Y2IyOGM3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDE6MTI6MDYgMjAwOCArMDEwMAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBtZ3N1dmQgYm9hcmQgZnJvbSBrZXltaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGJmMDUyOTM5NzNiMzQ4ZjY5NDZjOWRmOTJjZDNjNjVlY2U0MmQwYmUKQXV0aG9yOiBKYW1lcyBZYW5nIDxqYW1lcy55YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMTY6MDI6MDcgMjAwOCAtMDYwMAoKICAgIEZpeCA2NC1iaXQgdnNwcmludGYuCgogICAgVGhlcmUgd2VyZSBzb21lIHNpemUgYW5kIHVuc2lnbmVkIHByb2JsZW1zLgogICAgQWxzbyBhZGQgc3VwcG9ydCBmb3IgImxsIiBzaXplIG1vZGlmaWVyIGluIGZvcm1hdCBzdHJpbmcgbGlrZSBnbGliYwoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyZmEzN2VhYzUzMDg2MDY0M2FmYTI2YWUzNDdhZjNkMjNkNjczMDkKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJV2VkIEphbiA5IDEyOjQyOjM1IDIwMDggLTA1MDAKCiAgICBSZW1vdmUgc3VwZXJmbHVvdXMgcHJlcHJvY2Vzc29yIGNvbmRpdGlvbmFscyBmcm9tIExNNzMgZHJpdmVyCgogICAgKDEpIFJlbW92ZSB1bnVzZWQgc3ltYm9sICJDRkdfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFIi4KCiAgICAoMikgVXNlIGNvbmRpdGlvbmFsIE1ha2VmaWxlLm8uCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZWZjNmY0NDdjMWI5NDBkMTY1MGM0Yjg1NGM1NTk4YTU5NWRkYzNkYQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMCAxNzo1OTowNyAyMDA4ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBUSzg4NUQgYmFzZWJvYXJkIGZyb20gVEVMRS1EQVRBCgogICAgVGhlIFRLODg1RCBib2FyZCB1c2VzIGEgVFFNODg1RCBtb2R1bGUgZnJvbSBUUSwgdGhpcyBwb3J0IGFkZHMgYW4KICAgIG93biBjb25maWd1cmF0aW9uIGZpbGUgYW5kIGFkZHMgYSBsYXN0X3N0YWdlX2luaXQoKSBtZXRob2QgdG8KICAgIGNvbmZpZ3VyZSB0aGUgdHdvIFBIWXMsIGRlcGVuZGluZyBvbiB0aGUgcGh5X2F1dG9fbmVnbyBlbnZpcm9ubWVudAogICAgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDBlYzU5NTI0M2RjOTllZGNkMjQ4YmJjZmJmZDVhMWRjODYwYmRlODkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDEwIDAyOjIyOjA1IDIwMDggLTA2MDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZwoKICAgIG1haW4uYzogSW4gZnVuY3Rpb24gJ3JlYWRsaW5lX2ludG9fYnVmZmVyJzoKICAgIG1haW4uYzo5Mjc6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncF9idWYnCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiZWQ1Mzc1M2RkMWQ3ZTZiY2JlYTQzMzliZTBmYjc3NjAyMTRjYzM1CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE0OjMwOjAxIDIwMDggKzAxMDAKCiAgICBBZGQgRnVqaXRzdSBDb3JhbFAvTGltZSB2aWRlbyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCAyMGM0NTBlZjYxZWYyZWIxYzk2ZjliNTliYTBlYjhkODQ5YmJhMDU4CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAyOjM5OjQ3IDIwMDggKzAxMDAKCiAgICBGaXggdmlkZW8gY29uc29sZSBuZXdsaW5lIGFuZCBjYXJyaWFnZSByZXR1cm4gaGFuZGxpbmcKCiAgICBMaW5lcyBvZiB0aGUgbGVuZ2h0IENPTlNPTEVfQ09MUyBvciBncmVhdGVyIHRoYW4gQ09OU09MRV9DT0xTCiAgICBhcmUgbm90IGRpc3BsYXllZCBjb3JyZWN0bHkuIFRoaXMgaXMgYW4gYXR0ZW1wdCB0byBmaXgKICAgIHRoaXMgaXNzdWUuIEFsc28gYWRkIGNhcnJpYWdlIHJldHVybiBoYW5kbGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBkNWExNjNkNmJhYTA0ZjVhOGVkY2MxMGViYzZmYWQwODY1N2QzMDkzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE1OjUzOjU4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBzZHJhbSBpbml0IG9uIFNlcXVvaWEgYm9hcmRzCgogICAgQ2xlYXIgcG9zc2libGUgZXJyb3JzIGluIE1DU1IgcmVzdWx0aW5nIGZyb20gZGF0YS1leWUtc2VhcmNoLgogICAgSWYgbm90IGRvbmUsIHRoZW4gd2UgY291bGQgZ2V0IGFuIGludGVycnVwdCBsYXRlciBvbiB3aGVuCiAgICBleGNlcHRpb25zIGFyZSBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNjEwYTYwNzMwYjc0NjRmNmY2NTlkYjQ5ZDI2NGQ4OWE3YzcxMDYxCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDE1OjMxOjA5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFJld29yayBMaW1lIHN1cHBvcnQgZm9yIGx3bW9uNQoKICAgIFJld29yayBMaW1lIHN1cHBvcnQgZm9yIGx3bW9uNSB1c2luZyBuZXcgdmlkZW8gZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGZmNDFmZmM5M2MxNTkyZTc3YTQ0YmRiZWJkNWQ3ODE3MzlmM2FhZTAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxNDo1NToxNiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgUE1DNDQwIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZTNlZGNiMzZmMTRmMGFhYmI2ZjUwZTk2MDE0ZDY4NzdmNzNkNjRlYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDExIDE0OjU1OjA4IDIwMDggKzAxMDAKCiAgICBwcHg0eHg6IEZpeCBzZHJhbSBpbml0IG9uIFBNQzQ0MCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAwNjFhYWQ0ZDMyMGRkZGNlMjYyNDc2OTlkY2YyODc1ZWUyZWExMzY2CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA5OjMzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIGJ1ZyBvZiAyNjZNSHogZGF0YSByYXRlIEREUgoKICAgIFRoZSBERFIgZG9lc24ndCB3b3JrIG9uIHRoZSAyNjZNSHogZGF0YSByYXRlLAogICAgdGhlIHBhdGNoIGZpeCB0aGUgYnVnLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRlZDA4MzE3YWQ5ZTM0MGI4ODdiZjJlYjQ2ZTk1NjVhMGY2MTBhOTMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDg6MjYgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IE1ha2UgdGhlIGNvZGUgbW9yZSByZWFkYWJsZQoKICAgIEZvcm1hdCB0aGUgY29kZSwgbWFrZSBpdCBtb3JlIHJlYWRhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2U3NGQ2M2QxYTIxMWZiYzM0ZWM0MjRlMmRjNjcyNjYwMWYzMjNkMApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowNzoyMyAyMDA4ICswODAwCgogICAgbXBjODN4eDogUmVkdWNlIHRoZSBsYXRlbmN5IG9mIEREUgoKICAgIFJlZHVjZSB0aGUgQUwgZnJvbSAyIHRvIDEgY2xvY2sgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmYzOTMxYTJiZWQ1NDEyYzIwZDVlNTUzNmM4NjVmYmQ2NTdmN2QyOApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowNjowNSAyMDA4ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSB3cm9uZyBkZWZpbml0aW9uIG9mIE1QQzgzMTVFCgogICAgQWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgdXNlciBtYW51YWwgb2YgTVBDODMxNUUsCiAgICAxKSBUaGUgU1ZDT0Qgb2YgSFJDV0wgaXMgZGlmZmVyZW50IHRoYW4gODM3eAogICAgMikgVGhlIFNDQ1IgaGFzIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYzI2MzhlYTA4YTUzN2ExYmQ0MDlkYjg3M2FhYWEzM2EwNTNlYmFlCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA1OjAwIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIHR5cG8gaW4gbXBjODN4eC5oCgogICAgVGhlIFNQQ1IgYWJvdXQgVFNFQyBwcmlvcml0eSBpcyB3cm9uZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8TWljaGFlbC5CYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvZSBEJ0FiYnJhY2NpbyA8Sm9lLkQnYWJicmFjY2lvQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjODZlZjJjZDllZjgxOTM1MDQ5MjMxZmE4OWYzNmM3Yjc5M2YyZDRiCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA0OjEzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIHR5cG8gaW4gZ2xvYmFsIGRhdGEgc3RydWN0CgogICAgRml4IHRoZSB0eXBvIGluIGdsb2JhbF9kYXRhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYzViNDhmYzIwNWMzZTI3NTI5MTBkYThmMzkyMDllZDA3NTkyOWU1CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjAzOjAzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gY29uZmlnLmgKCiAgICBjbGVhbiB1cCB0aGUgY2FjaGUgY29uZmlnIGZyb20gY29uZmlncy5oIG9mIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmFiNmY1NTZiYmJiZDFiYjM1YTU0MzMxNjFmN2YxNzNjMThkZjU1OQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgSmFuIDkgMjA6NTc6NDcgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IGFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM2MEUtUkRLCgogICAgVGhpcyBpcyBNUEM4MzYwRSBiYXNlZCBib2FyZCB3aXRoOgogICAgLSAyNTZNQiBmaXhlZCBTRFJBTTsKICAgIC0gOE1CIEludGVsIFN0cmF0YSBOT1IgZmxhc2g7CiAgICAtIFN0TUlDUk8gNjRNaUIgTkFORCBmbGFzaDsKICAgIC0gdHdvIDEwLzEwMC8xMDAwIGV0aGVybmV0IHBvcnRzIGNvbm5lY3RlZCB2aWEgQnJvYWRjb20KICAgICAgQkNNNTQ4MSBQSFlzOwogICAgLSB0d28gMTAvMTAwIGV0aGVybmV0IHBvcnRzIGNvbm5lY3RlZCB2aWEgTmF0aW9uYWwKICAgICAgRFA4Mzg0OCBQSFlzOwogICAgLSBvbmUgUENJIGFuZCBvbmUgbWluaVBDSSBzbG90czsKICAgIC0gZm91ciBzZXJpYWwgcG9ydHMgKHR3byBOUzE2NTUwLWNvbXBhdGlibGUsIHR3byBVQ0NzKTsKICAgIC0gZm91ciBVU0IgcG9ydHMgd29ya2luZyB0aHJvdWdoIE1QQzgzNjBFICJGSENJIiBVU0IgY29udHJvbGxlcjsKICAgIC0gRnVqaXRzdSBNQjg2Mjc3IGdyYXBoaWNzIGNvbnRyb2xsZXI7CiAgICAtIEFuYWxvZyB0byBEaWdpdGFsIENvbnZlcnRlci9Ub3VjaHNjcmVlbiBjb250cm9sbGVyLCBBRDc4NDMKICAgICAgY29ubmVjdGVkIHRvIFNQSS4KCiAgICBGZWF0dXJlcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGF0Y2ggYXJlOgogICAgLSBTdE1JQ1JPIDY0TWlCIE5BTkQgZmxhc2ggKHBhdGNoIHNlbnQpOwogICAgLSBNSU5UIGZyYW1lYnVmZmVyIGluaXRpYWxpemF0aW9uIChwYXRjaCBpcyBwZW5kaW5nKTsKICAgIC0gRmV0Y2hpbmcgcHJvZHVjdGlvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBFRVBST00gdmlhIEkyQzsKICAgIC0gRkhDSSBVU0I7CiAgICAtIFR3byBzbG93IFVDQ3MgdXNlZCBhcyBSUy00ODUgVUFSVHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzZDJjZGU3YTNhYTFlODNiNzk2OGNkZmY5MjllNTJjOGNjNjE3YmIKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIEphbiA5IDIwOjU3OjQwIDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBhZGQgImZzbCwgcWUiIGNvbXBhdGlibGUgZml4dXBzCgogICAgTmV3IGRldmljZSB0cmVlcyB3aWxsIHVzZSAiZnNsLHFlIiBjb21wYXRpYmxlIHByb3BlcnRpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3N2I1NzU4M2E3YzM0MDEwZTU2NmEwOWE2NzllYzNjMTgzNmY5OTYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTU6MjQ6MDYgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBtaXNzaW5nIENPTkZJR19IQVNfRVRIMCBkZWZpbmVzCgogICAgdGhlIG5ldyBsaWJmZHQgY29kZSBvbmx5IHVwZGF0ZXMgZXRoMCBpZiBDT05GSUdfSEFTX0VUSDAKICAgIGlzIGRlZmluZWQ7IGFkZCB0aGUgZGVmaW5lIHRvIHRoZSBtaXNzaW5nIGJvYXJkIGNvbmZpZ3MuCgogICAgVGhhbmtzIHRvIEVtaWxpYW4gTWVkdmUgZm9yIGZpbmRpbmcgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4MzBiN2YxNjM1OTg0YmE2MDcyMTlmY2JkNzg1OTdjMjhlZWI1MjkKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmdpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAxNDowMDoyOCAyMDA4IC0wNjAwCgogICAgODZ4eDogU3VwcG9ydCAyR0IgRElNTXMKCiAgICBDb25maWd1cmUgdGhlIG51bWJlciBvZiBiaXRzIHVzZWQgdG8gYWRkcmVzcyB0aGUgYmFua3MgaW5zaWRlIHRoZSBTRFJBTQogICAgZGV2aWNlLiAgVGhlIGRlZmF1bHQgcmVnaXN0ZXIgdmFsdWUgb2YgMCBtZWFucyAyIGJpdHMgdG8gYWRkcmVzcyA0IGJhbmtzLgogICAgSGlnaGVyIGNhcGFjaXR5IGRldmljZXMgbGlrZSBhIDJHQiBESU1NIHJlcXVpcmUgMyBiaXRzIHRvIGFkZHJlc3MgOCBiYW5rcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmdpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDMzMmRiZWIwOGY1ODYzZDFlYTY5ZDkxYTAwYzU0OTlkM2E4N2VkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJVGh1IEphbiAxMCAxODo1MDozMyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIFNlcXVvaWEgYm9vdCB2eFdvcmtzCgogICAgdnhXb3JrcyBleHBlY3RzIGluCiAgICBUTEIgMCBhIGVudHJ5IGZvciB0aGUgTWFjaGluZSBDaGVjayBpbnRlcnJ1cHQKICAgIFRMQiAxIGEgZW50cnkgZm9yIHRoZSBSQU0KICAgIFRMQiAyIGEgZW50cnkgZm9yIHRoZSBFQkMKICAgIFRMQiAzIGEgZW50cnkgZm9yIHRoZSBib290IGZsYXNoCgogICAgQWZ0ZXIgY2hhbmdpbmcgdGhlIGJhdWRyYXRlIHRvIDk2MDAgSSBoYWQgbm8gcHJvYmxlbXMgdG8gYm9vdCB0aGUKICAgIHZ4V29ya3MgaW1hZ2UgYXMgZGlzdHJpYnV0ZWQgYnkgV2luZFJpdmVyIChSZXZpc2lvbiAyLjAvMSBmcm9tCiAgICBKdW5lIDE4LCAyMDA3KQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNmQ4MTg0YjAwYzBkMWQ3MDkwZTRhMmY1MTRlMzEwZDk4YTM5NGY4ZApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglXZWQgSmFuIDkgMjM6MTA6MjcgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogRml4IGRmbHVzaCgpIHRvIHJlc3RvcmUgRFZMSU0gcmVnaXN0ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAyNTJmNjBiMDY4ZDFmOTQxOTBiNWJjZmRhMTY5ZGI1ODIzODdlMTVlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IEphbiAxMCAwMzo1Mjo0NCAyMDA4IC0wNTAwCgogICAgTmlvczI6IHJlbW92ZSBjb21tb24vY21kX2JkaW5mby5jIHVudXNlZCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgTWNOdXR0IDxzbWNudXR0QHBzeWVudC5jb20+Cgpjb21taXQgNDIyYjFhMDE2MDJiNmUyZmJmODQ0NGExMTkyYzdiYTMxNDYxZmQ0YwpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVdlZCBKYW4gOSAxODoxNTo1MyAyMDA4IC0wNTAwCgogICAgRml4IEV0aGVybmV0IGluaXQoKSByZXR1cm4gY29kZXMKCiAgICBDaGFuZ2UgcmV0dXJuIHZhbHVlcyBvZiBpbml0KCkgZnVuY3Rpb25zIGluIGFsbCBFdGhlcm5ldCBkcml2ZXJzIHRvIGNvbmZvcm0KICAgIHRvIHRoZSBmb2xsb3dpbmc6CgoJPj0wOiBTdWNjZXNzCgk8MDogIEZhaWx1cmUKCiAgICBBbGwgZHJpdmVycyBnb2luZyBmb3J3YXJkIHNob3VsZCByZXR1cm4gMCBvbiBzdWNjZXNzLiAgQ3VycmVudCBkcml2ZXJzIHRoYXQKICAgIHJldHVybiAxIG9uIHN1Y2Nlc3Mgd2VyZSBsZWZ0IGFzLWlzIHRvIG1pbmltaXplIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQWNrZWQtQnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDNhNjUzMmNiZTI2M2Q5OTJmNDllODZhYzk1YmVkZTI4ZTk2ZjljOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTAgMDA6NTU6MTQgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxN2E0MWU0NDkyMTIxY2NmOWZhMmMxMGMyY2IxYTZkMWMxOGQ3NGY3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE2OjU2OjU0IDIwMDggLTA2MDAKCiAgICBBZGQgUUUgYnJnIGZyZXEgYW5kIGNvcnJlY3QgcWUgYnVzIGZyZXEgZmR0IHVwZGF0ZSBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OTBkZmVmMDZjMmQxNjlhMzM1NjM1OTU5Njg5MDc1NGRmYjhlZTFjCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTY6MzQ6NTEgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSBjYWNoZSBjb25maWcgZnJvbSBBVFVNODU0OCBhbmQgc2JjODU0OCBjb25maWdzCgogICAgVGhlc2UgYm9hcmRzIHdlcmVuJ3QgdXBkYXRlZCBieSBLdW1hcidzIGNvbmZpZyBwYXRjaCBiZWNhdXNlIHRoZXkKICAgIHdlcmVuJ3QgaW4gdGhlIHRyZWUsIHlldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjhlYzIzODUwMzhjMDk0YjA3ZWM1YjQ5MzM2Mjg5YTQ2YjZlOWNjNgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gNyAxMzozMToxOSAyMDA4IC0wNjAwCgogICAgODV4eDogYWRkIGFiaWxpdHkgdG8gdXBsb2FkIFFFIGZpcm13YXJlCgogICAgRGVmaW5lIHRoZSBsYXlvdXQgb2YgYSBiaW5hcnkgYmxvYiB0aGF0IGNvbnRhaW5zIGEgUUUgZmlybXdhcmUgYW5kIGluc3RydWN0aW9ucwogICAgb24gaG93IHRvIHVwbG9hZCBpdC4gIEFkZCBmdW5jdGlvbiBxZV91cGxvYWRfZmlybXdhcmUoKSB0byBwYXJzZSB0aGUgYmxvYiBhbmQKICAgIHBlcmZvcm0gdGhlIGFjdHVhbCB1cGxvYWQuCUFkZCBjb21tYW5kLWxpbmUgY29tbWFuZCAicWUgZnciIHRvIHRha2UgYSBmaXJtd2FyZQogICAgYmxvYiBpbiBtZW1vcnkgYW5kIHVwbG9hZCBpdC4gIFVwZGF0ZSBmdF9jcHVfc2V0dXAoKSBvbiA4NXh4IHRvIGNyZWF0ZSB0aGUKICAgICdmaXJtd2FyZScgZGV2aWNlIHRyZWUgbm9kZSBpZiBVLUJvb3QgaGFzIHVwbG9hZGVkIGEgZmlybXdhcmUuICBGdWxseSBkZWZpbmUKICAgICdzdHJ1Y3QgcnNwJyBpbiBpbW1hcF9xZS5oIHRvIGluY2x1ZGUgdGhlIGFjdHVhbCBSSVNDIFNwZWNpYWwgUmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjAwOWYzZWNhOTliYjdiOWU2YmE2NjM5YTg5MDlhMTM4ZGQ1ZTlmZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBKYW4gOCAwMToyMjoyMSAyMDA4IC0wNjAwCgogICAgODV4eDogUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIGNvbmZpZ3MuaAoKICAgIEVpdGhlciB1c2UgdGhlIHN0YW5kYXJkIGRlZmluZXMgaW4gYXNtL2NhY2hlLmggb3IgZ3JhYiB0aGUgaW5mb3JtYXRpb24KICAgIGF0IHJ1bnRpbWUgZnJvbSB0aGUgTDFDRkcgU1BSLgoKICAgIEFsc28sIG1pbm9yIGNsZWFudXAgaW4gY2FjaGUuaCB0byBtYWtlIHRoZSBjb2RlIGEgYml0IG1vcmUgcmVhZGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiOTY0ZTkzNjhmNDUzNzJhYWYxZGEwYzEzZmU1NmY2ZDgxYWU4ZTk2CkF1dGhvcjogcm9iZXJ0IGxhemFyc2tpIDxyb2JlcnRsYXphcnNraUBnbWFpbC5jb20+CkRhdGU6CUZyaSBEZWMgMjEgMTA6Mzk6MjcgMjAwNyAtMDUwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciBBVFVNODU0OCAodXBkYXRlZCkKCiAgICBBZGQgc3VwcG9ydCBmb3IgSW5zdGl0dXRvIEF0bGFudGljbydzIEFUVU04NTQ4IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogcm9iZXJ0IGxhemFyc2tpIDxyb2JlcnRsYXphcnNraUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2JkNjEwNGI3MWRlOWJjYTgwYWM4ZTA5MzYwMDM0NDNiYjQyZjJmYwpBdXRob3I6IHJvYmVydCBsYXphcnNraSA8cm9iZXJ0bGF6YXJza2lAZ21haWwuY29tPgpEYXRlOglGcmkgRGVjIDIxIDEwOjM2OjM3IDIwMDcgLTA1MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgQVRVTTg1NDggKHVwZGF0ZWQpCgogICAgQWRkIHN1cHBvcnQgZm9yIEluc3RpdHV0byBBdGxhbnRpY28ncyBBVFVNODU0OCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IHJvYmVydCBsYXphcnNraSA8cm9iZXJ0bGF6YXJza2lAZ21haWwuY29tPgoKY29tbWl0IDllM2VkMzkyZDJjODk2NWUyNGM5NDJiNTg3OTZjMzFjNjQ0YzJmNzAKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgRGVjIDEzIDA2OjQ1OjE0IDIwMDcgLTA2MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgU0JDODU0OCAodXBkYXRlZCkKCiAgICBBZGQgc3VwcG9ydCBmb3IgV2luZCBSaXZlcidzIFNCQzg1NDggcmVmZXJlbmNlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+Cgpjb21taXQgMTFjNDVlYmQ0NmQ2NTE3YjUxYjdhOTJkZDUyYTYxOGIyZjRlNTU4NgpBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBEZWMgMTMgMDY6NDU6MDggMjAwNyAtMDYwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciBTQkM4NTQ4ICh1cGRhdGVkKQoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODU0OCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGQ0YmNiMDg3YzJlY2UxYzRkMGRlOGVmZTg1ZTAwNzVlNWIxNTk0CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBPY3QgMjIgMTk6NTg6MTkgMjAwNyArMDQwMAoKICAgIE1QQzg1NjhFLU1EUzogc2V0IHVwIFFFIHBhcmlvIGZvciBVQVJUMQoKICAgIFRvIHVzZSBVQVJUMSBvbiB0aGUgTVBDODU2OEUtTURTLCBRRSBwYXJpbyBwaW5zIFBDWzA6M10gc2hvdWxkCiAgICBiZSBzZXQgdXAgYXBwcm9wcmlhdGVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBhZDE2MjI0OWNiMzcxZTllMzg5NzE2NzZmMDliZTc5MWU1ZjNjZjRhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBPY3QgMjIgMTg6MTI6NDYgMjAwNyArMDQwMAoKICAgIE1QQzg1NjhFLU1EUzogcmVzZXQgVUNDcyB0byB1c2UgdGhlbSByZWxpYWJseQoKICAgIEluIG9yZGVyIHRvIHVzZSBHRVRIMSBhbmQgR0VUSDIgb24gdGhlIE1QQzg1NjhFLU1EUywgd2Ugc2hvdWxkIHJlc2V0CiAgICBVQ0NzLgoKICAgIHAucyBTaW1pbGFyIGNvZGUgZXhpc3RzIGluIHRoZSBMaW51eCBrZXJuZWwgYm9hcmQgZmlsZSAoZm9yIGNhcGFiaWxpdHkKICAgIHJlYXNvbnMgd2l0aCBvbGRlciBVLUJvb3RzKSwgYnV0IHNob3VsZCBiZSByZW1vdmVkIHNvbWUgZGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDIxNDZjZjU2ODIxYzMzNjQ3ODZjYTk0YTczMDYwMDhjNTgyNGIyMzgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRGVjIDE5IDAxOjE4OjE1IDIwMDcgLTA2MDAKCiAgICBSZXdvcmtlZCBGU0wgQm9vay1FIFRMQiBtYWNyb3MgdG8gYmUgbW9yZSByZWFkYWJsZQoKICAgIFRoZSBvbGQgbWFjcm9zIG1hZGUgaXQgZGlmZmljdWx0IHRvIGtub3cgd2hhdCBXSU1HRSBhbmQgcGVybSBiaXRzCiAgICB3ZXJlIHNldCBmb3IgYSBUTEIgZW50cnkuICBBY3R1YWxseSB1c2UgdGhlIGJpdCBtYXNrcyBmb3IgdGhlc2UgaXRlbXMKICAgIHNpbmNlIHRoZXkgYXJlIG9ubHkgYSBzaW5nbGUgYml0LgoKICAgIEFsc28gbW92ZWQgdGhlIG1hY3JvcyBpbnRvIG1tdS5oIG91dCBvZiBlNTAwLmggc2luY2UgdGhleSBhcmVuJ3Qgc3BlY2lmaWMKICAgIHRvIGU1MDAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxZDQ3MjczZDQ2OTI1OTI5ZjhmMmMxOTEzY2Q5NmQ3MjU3YWFkZTg4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAxOCAyMzoyMTo1MSAyMDA3IC0wNjAwCgogICAgVXNlIEZTTCBCb29rLUUgTU1VIG1hY3JvcyBmcm9tIExpbnV4IEtlcm5lbAoKICAgIEdyYWIgdGhlIEZTTCBCb29rLUUgTUFTIHJlZ2lzdGVyIG1hY3JvcyBmcm9tIExpbnV4LiAgQWxzbyBhZGRlZAogICAgZGVmaW5lcyBmb3IgcGFnZSBzaXplcyB1cCB0byA0VEIgYW5kIHJlbW92ZWQgU0hBUkVOIHNpbmNlIGl0IGRvZXNudAogICAgcmVhbGx5IGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDJkZjRhMjcwZjgxN2VmNmVjMzkwNDdhMDFiNTVmZWNkYzVmM2IzNwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiA5IDEzOjUxOjMyIDIwMDggLTA2MDAKCiAgICBGaXggbXkgb3duIG1lcmdlIHN0dXBpZGl0eQoKICAgIFdheSBiYWNrIGluIEF1Z3VzdCBJIG1lcmdlZCBIZWlrbydzIHBhdGNoOgogICAgNTY2YTQ5NGY1OTI6IFtQQ1M0NDBFUF0gdXBncmFkZSB0aGUgUENTNDQwRVAgYm9hcmQKCiAgICB3aXRoIEpvbidzIENPTkZJR19DT01NQU5EUyBwYXRjaGVzLgoKICAgIFRoaXMgd2FzIGRvbmUgaW4gY29tbWl0OiA2YmY2ZjExNGRjZGQ5N2VjM2Y4MGMyNzYxZWQ0MGUzMTIyOWQ2Yjc4CgogICAgSG93ZXZlciwgaW4gdGhlIHByb2Nlc3MsIEkgbGVmdCBvdXQgc29tZSBvZiBIZWlrbydzIGdvb2QgY2hhbmdlcy4KCiAgICBOb3cgSGVpa28ncyBhbmQgSm9uJ3MgcGF0Y2hlcyBhcmUgcHJvcGVybHkgbWVyZ2VkIGluIGZhdF9yZWdpc3Rlcl9kZXZpY2UoKQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NjM2YjYyYTZlZmM3ZjE0ZTZlNzg4Nzg4NjMxYWU3YTdmY2E0NTM3CkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTE6MTc6NDkgMjAwOCAtMDYwMAoKICAgIEV4cG9zZSBwYXJzZV9saW5lKCkgZ2xvYmFsbHkuCgogICAgQWRkIG5ldyBmdW5jdGlvbiByZWFkbGluZV9pbnRvX2J1ZmZlcigpIHRoYXQgYWxsb3dzIHRoZQogICAgb3V0cHV0IG9mIHJlYWRsaW5lIHRvIGJlIHB1dCBpbnRvIGEgcG9pbnRlciB0byBjaGFyIGJ1ZmZlci4KCiAgICBUaGlzIHJlZmFjdG9yaW5nIGFsbG93cyBvdGhlciBmdW5jdGlvbnMgYmVzaWRlcyB0aGUKICAgIG1haW4gY29tbWFuZCBsb29wIHRvIGFsc28gdXNlIHRoZSBzYW1lIGlucHV0IG1lY2hhbmlzbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3Y2E5MDUxMzQ4NmFiZDRhZTUwYmQxYjc0MDNmNDdjYzU4YzVhZDI1CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMDE6MTU6MjUgMjAwOCArMDEwMAoKICAgIHRyaXZpYWw6IGZpeCBjb25zZXF1ZW5jZXMgb2YgYSBiYWQgbWVyZ2UKCiAgICBGaXggd2hhdCBsb29rcyBsaWtlIGEgbWVyZ2UgYXJ0aWZhY3QuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDQ3ODVhNjk0YzAwNDU5OTZjY2YwYWM1YjhlZGY1MzFlZmMxYjczMGUKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDMgMTA6NTE6MTUgMjAwOCArMDgwMAoKICAgIEFkZCBDdHJsIGNvbWJvIGtleSBzdXBwb3J0IHRvIHVzYiBrZXlib2FyZCBkcml2ZXIuCgogICAgQ3RybCBjb21ibyBrZXkgc3VwcG9ydCBpcyBhZGRlZCwgd2hpY2ggaXMgdmVyeSB1c2VmdWwgdG8gaW5wdXQgQ3RybC1DCiAgICBmb3IgaW50ZXJydXB0IGN1cnJlbnQgam9iLgogICAgQWxzbyBhZGQgdXNiX2V2ZW50X3BvbGwoKSBjYWxsaW5nIHRvIHVzYl9rYmRfdGVzdGMoKSwgd2hpY2ggY2FuIGdldAogICAga2V5IGlucHV0IHdoZW4gdHN0YygpIGlzIGNhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwYzczODJiYzVkNWU2NGM0N2Y5NGFjMmNhNzhjYzU3NDQ0MmU4MmQKQXV0aG9yOiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDM6MzA6NTYgMjAwNyArMDEwMAoKICAgIGZpeCB2YXJpb3VzIGNvbW1lbnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IDc4MTdjYjIwODNkOTgyOTIzNzUyZmUwZjEyYjY3YzBlN2MwOWEwMjcKQXV0aG9yOiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDM6MzA6NDYgMjAwNyArMDEwMAoKICAgIGZpeCBjb21tZW50cyB3aXRoIG5ldyBkcml2ZXJzIG9yZ2FuaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCBhOWI0MTBkYzdkMmE0NzIxYzQwOGIxM2FiZmMwMzc5ODgxNTBmMTQ1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgRGVjIDI4IDEyOjUwOjU5IDIwMDcgKzA5MDAKCiAgICBSZW1vdmUgdGhlIG9ic29sZXRlIHRlcnNlIHZlcnNpb24gb2YgZG9fbWlpKCkKCiAgICBXZSBub3cgaGF2ZSBtb3JlIHVzZWZ1bCB2ZXJzaW9uIG9mIGRvX21paSgpIGFuZCBldmVyeWJvZHkgdXNlIGl0LgogICAgR2VyYWxkIFZhbiBCYXJlbiBzYXlzOgoKICAgID4gV2hlbiBJIG9yaWdpbmFsbHkgd3JvdGUgdGhlIG1paSBjb21tYW5kIDYoISkgeWVhcnMgYWdvLCBJIHdyb3RlIGEKICAgID4gdmVyYm9zZSB2ZXJzaW9uIHRoYXQgcHJpbnRlZCBodW1hbiByZWFkYWJsZSBkZWNvbXBvc2l0aW9uIG9mIHRoZSBmbGFncywKICAgID4gZXRjLiwgYW5kIGEgdGVyc2Ugb25lIHRoYXQgZGlkbid0IHByaW50IGFzIG11Y2ggc3R1ZmYgYW5kIHRodXMgaGFkIGEKICAgID4gc21hbGxlciBtZW1vcnkgZm9vdHByaW50LgogICAgPgogICAgPiBJdCBzb3VuZHMgbGlrZSB0aGUgdGVyc2UgdmVyc2lvbiBoYXMgd2l0aGVyZWQgYW5kIGRpZWQsIGFwcGFyZW50bHkKICAgID4gcGVvcGxlIGFyZSBvbmx5IHVzaW5nIHRoZSB2ZXJib3NlIHZlcnNpb24gKHdoaWNoIGlzIHZlcnkgdW5kZXJzdGFuZGFibGUsCiAgICA+IEkgZG8gbXlzZWxmKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDAxYzY4N2FhNmUwNjViZDRmYWY4MGY3MjMzNjFlNzk4OTQxZGQ2YjAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBEZWMgMjcgMTM6NDI6NTYgMjAwNyAtMDUwMAoKICAgIERvIG5vdCByZWZlcmVuY2Ugc2hhMS5jIHdoZW4gYnVpbGRpbmcgbWtpbWFnZS4KCiAgICByZW1vdmUgc2hhMS5vIGZyb20gbWtpbWFnZSBsaW5raW5nIHNpbmNlIGl0IGlzbid0IGFjdHVhbGx5IHVzZWQuCgogICAgU2lnbmVkLU9mZi1CeTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI5MTczYWY3M2U1MjRkMzdjODEyZjIxMDE3M2NmODMzODVjNTE3MWEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTU6Mzk6NTQgMjAwNyArMDkwMAoKICAgIGNvbW1vbi9jbWRfbWlpLmM6IEFkZCBzYW5pdHkgYXJnYyBjaGVjawoKICAgIElmIHR5cGUgbWlpIGNvbW1hbmQgd2l0aG91dCBhcmd1bWVudHMsIHdlIHN1ZmZlciBmcm9tIHVuaW5pdGlhbGl6ZWQgYXJndltdCiAgICBlbnRyaWVzOyBmb3IgZXhhbXBsZSB3ZSBNSVBTIGdldCBzdHVjayBieSBUTEIgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDUwMDg1NmViMTcwN2VkMTdkOTIwNGJhYTYxZGQ1OTk0OGQzYjI4OTkKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDkgMTk6Mzk6MzYgMjAwOCArMDEwMAoKICAgIEFQSSBmb3IgZXh0ZXJuYWwgYXBwbGljYXRpb25zLgoKICAgIFRoaXMgaXMgYW4gQVBJIGZvciBleHRlcm5hbCAoc3RhbmRhbG9uZSkgYXBwbGljYXRpb25zIHJ1bm5pbmcgb24gdG9wIG9mCiAgICBVLUJvb3QsIGFuZCBpcyBtZWFudCB0byBiZSBtb3JlIGV4dGVuc2libGUgYW5kIHJvYnVzdCB0aGFuIHRoZSBleGlzdGluZwogICAganVtcHRhYmxlIG1lY2hhbmlzbS4gSXQgaXMgc2ltaWxhciB0byBVTklYIHN5c2NhbGwgYXBwcm9hY2guIFNlZSBhcGkvUkVBRE1FCiAgICBmb3IgbW9yZSBkZXRhaWxzLgoKICAgIEluY2x1ZGVkIGlzIHRoZSBkZW1vIGFwcGxpY2F0aW9uIHVzaW5nIHRoaXMgbmV3IGZyYW1ld29yayAoYXBpX2V4YW1wbGVzKS4KCiAgICBQbGVhc2Ugbm90ZSB0aGlzIGlzIHN0aWxsIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLCBhbmQgaXMgdHVybmVkIG9mZiBieQogICAgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZlOGRkMGIyMjIwYjdjMDJiMGQ0YzljNGY5OTY3ODc5OTcwNDc3YjEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTI6MTQ6NTUgMjAwOCAtMDYwMAoKICAgIDg2eHg6IFJlbW92ZSBjYWNoZSBjb25maWcgZnJvbSBjb25maWdzLmgKCiAgICBKdXN0IHVzZSB0aGUgc3RhbmRhcmQgZGVmaW5lcyBpbiBhc20vY2FjaGUuaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2YTQxNzkwZjhlYmExOWFkNDUwZTE4YWU5MTM1MWRhZjQ4NWIzZTIKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDkgMTg6MDU6MjcgMjAwOCArMDEwMAoKICAgIEdsb2JhbGl6ZSBlbnZtYXRjaCgpCgogICAgVGhlIG5ld2x5IGludHJvZHVjZWQgQVBJIChyb3V0aW5lcyByZWxhdGVkIHRvIGVudiB2YXJzKSB3aWxsIG5lZWQgdG8gY2FsbAogICAgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgWmFiZHlyIDxhcm1vQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZGYxNzBmOGIyYTk5ZTFlMmY5NDBmOWYwYjU2NTExZTFlNGM5ZTFmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiA0IDEyOjA3OjI3IDIwMDggLTA2MDAKCiAgICBDb252ZXJ0IE1QQzg2MTBIUENEIHRvIHVzZSBsaWJmZHQuCgogICAgQXNzdW1lcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIGFsaWFzZXMgbm9kZSBpbiB0aGUgRFRTIHRvCiAgICBsb2NhdGUgdGhlIHBjaSBhbmQgc2VyaWFsIG5vZGVzIGZvciBmaXh1cHMuCgogICAgVXNlIGNvbnNpc3RlbnQgZmR0YWRkciBhbmQgZmR0ZmlsZSBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOTk3NGFiMGE0ZDM3MzFjZGI3NmE3NTk5ZDlmZTk0NDVkNzY0ZDYwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiA0IDExOjU4OjIzIDIwMDggLTA2MDAKCiAgICA4NjEwOiBGaXggbGluZ2VyaW5nIGNvbXBpbGUgd2FybmluZ3MuCgogICAgVHVybiBvZmYgREVCVUcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MDA3ZjMyNTFjMDk2N2FkYzEzZjJlZDhiZTFiOTI0ZGRjMzAxMjRkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDE1OjE0OjQ2IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmM2NDE0ZWNhNTVmMWZjMTA4ZmIxMmZjOGNkYzQzYmQ4YjQ0NjNmOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyAxOCAwNDoyOTo1NSAyMDA3IC0wNTAwCgogICAgZml4IGVhc3lsb2dvIG9uIGJpZyBlbmRpYW4gZGV2IHN5c3RlbXMKCiAgICBkaWRudCByZWFsaXplIGhvdyBvdXQgb2Ygc2hhcGUgZWFzeWxvZ28gYWN0dWFsbHkgd2FzIHVudGlsIGkgdHJpZWQgdXNpbmcgaXQuCiAgICB0aGlzIHBhdGNoIGRvZXMgYnl0ZSBzd2FwcGluZyBhcyBuZWVkIGJlIG9uIHRoZSBpbnB1dCB0Z2EgaGVhZGVyIHNpbmNlIHRoZSB0Z2EKICAgIGlzIGluIGxpdHRsZSBlbmRpYW4gYnV0IHRoZSBob3N0IGNvdWxkIGp1c3QgYXMgd2VsbCBiZSBiaWcgZW5kaWFuLglpIGRpZG50CiAgICBib3RoZXIgdXNpbmcgYnN3YXAgbWFjcm9zIG9yIHN1Y2ggc3R1ZmYgZnJvbSBzeXN0ZW0gaGVhZGVycyBhcyBub3RoaW5nIGluCiAgICBQT1NJWCBkaWN0YXRlcyBieXRlIHN3YXBwaW5nIGZ1bmN0aW9uYWxpdHkuCgogICAgU2lnbmVkLU9mZi1CeTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDM4ZDI5OWMyZGI4MWJkODg5YzYwMWI1ZGZjMTJjNGU4M2VmODMzMzMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBEZWMgMTggMDM6MjM6MjUgMjAwNyAtMDUwMAoKICAgIGNsZWFudXAgZWFzeWxvZ28KCiAgICAtIG1ha2UgdGhlIE1ha2VmaWxlIG5vdCBzdWNrCiAgICAtIGluY2x1ZGUgcHJvcGVyIGhlYWRlcnMgZm9yIHByb3RvdHlwZXMKICAgIC0gZml4IG9idmlvdXMgYnJva2VuIGhhbmRsaW5nIG9mIHN0cmNocigpIHdoZW4gaGFuZGxpbmcgJy4nIGluIGZpbGVuYW1lcwoKICAgIFNpZ25lZC1PZmYtQnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4ODNlMzkyNWQ5OWE4ZGQ2OWM1YjAyMDFjYmE1YjE4ODdmODhmOTVjCkF1dGhvcjogcmFwdG9yYnJpbm9AYWltLmNvbSA8cmFwdG9yYnJpbm9AYWltLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAyMToyMzoyOCAyMDA3IC0wNTAwCgogICAgRml4IGJ1aWxkIHByb2JsZW1zIHVuZGVyIEN5Z3dpbgoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIHUtYm9vdCB0byBidWlsZCB3aXRob3V0IGVycm9yIGluIGEgY3lnd2luCiAgICBlbnZpcm9ubWVudC4gIEN5Z3dpbiBkb2VzIG5vdCBkZWZpbmUgX191NjQgaW4gaXQncwogICAgaW5jbHVkZS9hc20vdHlwZXMuaCBmaWxlLiAgVGhlIC1pZGlyYWZ0ZXIgZmxhZyBpbiB0aGUgdS1ib290CiAgICBidWlsZCBjYXVzZXMgdGhlIGluY2x1c2lvbiBvZiB0aGUgY3lnd2luIHR5cGVzLmggZmlsZSBhcyBvcHBvc2VkCiAgICB0byB1LWJvdC9pbmNsdWRlL2FzbS90eXBlcy5oIGZpbGUgd2hpY2ggZG9lcyBkZWZpbmUgX191NjQuCiAgICBTdWJzZXF1ZW50bHksIHNoYTEuYyBjb21waWxlIGZhaWxzIGR1ZSB0byB1bmtub3duIHN5bWJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcmlhbiBNaWxsZXIgPHJhcHRvcmJyaW5vQG5ldHNjYXBlLm5ldD4KCmNvbW1pdCA0M2VmMWMzODFmOTE5NTUwNGEyNDg4ZjVjYjkwOTIyN2ViOTdkNDc1CkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJRnJpIE5vdiAzMCAxNzoyOTo1OSAyMDA3ICswMTAwCgogICAgY21kX2JtcDogQWRkIHN1cHBvcnQgZm9yIGRpc3BsYXlpbmcgZ3ppcCBjb21wcmVzc2VkIGJtcHMKCiAgICBUaGUgZXhpc3RpbmcgY29kZSBjYW4gc2hvdyBpbmZvcm1hdGlvbiBhYm91dCBhIGd6aXAgY29tcHJlc3NlZCBCTVAKICAgIGltYWdlLCBidXQgY2FuJ3QgYWN0dWFsbHkgZGlzcGxheSBpdC4KCiAgICBUaGVyZWZvcmUsIG1vdmUgdGhlIGRlY29tcHJlc3Npb24gY29kZSBvdXQgb2YgYm1wX2luZm8oKSBhbmQgdXNlIGl0IGluCiAgICBibXBfZGlzcGxheSgpIGFzIHdlbGwgaW4gb3JkZXIgdG8gZGlzcGxheSBhIGNvbXByZXNzZWQgQk1QIGltYWdlLgoKICAgIEFsc28sIGNsZWFuIHRoaW5ncyB1cCBhIGJpdCBhbmQgZml4IGEgbWVtb3J5IGxlYWsgd2hpbGUgd2UncmUgYXQgaXQuCgogICAgW2hza2lubmVtb2VuQGF0bWVsLmNvbTogYSBiaXQgb2YgcmVmYWN0b3JpbmddCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkMTk3ZmZkODE3MmM2ZmRlZjM4NzMzNDI0NjQwYTlhNDcyOTVkNmU5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgTm92IDI5IDIxOjE1OjU2IDIwMDcgKzAxMDAKCiAgICBGaXggYW5kIG9wdGltaXplIE1JSSBvcGVyYXRpb25zIG9uIEZFQyAoTVBDOHh4KSBjb250cm9sbGVycwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgc2V2ZXJhbCBpc3N1ZXMgYXQgbGVhc3Qgb24gYSBNUEM4ODUgYmFzZWQgc3lzdGVtIHdpdGggdHdvCiAgICBGRUMgaW50ZXJmYWNlcyB1c2VkIGluIE1JSSBtb2RlLgoKICAgIDEuIFBIWSBkaXNjb3Zlcnkgc2hvdWxkIGZpcnN0IHJlYWQgUEhZX1BIWUlEUjIgcmVnaXN0ZXIgYW5kIG9ubHkgdGhlbgogICAgICAgUEhZX1BIWUlEUjEgbGlrZSBjcHUvbXBjOHh4L2ZlYy5jOjptaWlfZGlzY292ZXJfcGh5KCkgZG9lcyBpdCwKICAgICAgIG90aGVyd2lzZSB0aGUgdmFsdWVzIHJlYWQgYXJlIHdyb25nLiBBbHNvIG5vdGljZSwgdGhhdCBQSFkgZGlzY292ZXJ5CiAgICAgICBjYW5ub3Qgd29yayBvbiBNUEM4OHggLyBNUEM4N3ggaW4gc2V0dXBzIHdpdGggYm90aCBGRUNzIGFjdGl2ZSBhdCBhbGwKICAgICAgIGluIGl0cyBwcmVzZW50IGZvcm0sIGJlY2F1c2UgZm9yIGJvdGggaW50ZXJmYWNlcyB0aGUgcmVnaXN0ZXJzIGZyb20gRkVDCiAgICAgICAxIGFyZSB1c2VkIHRvIGNvbW11bmljYXRlIG92ZXIgTUlJLgoKICAgIDIuIFJlbW92ZSBjb2RlIGR1cGxpY2F0aW9uIGZvciByZXNldHRpbmcgdGhlIEZFQyBieSBpc29sYXRpbmcgaXQgaW50byBhCiAgICAgICBzZXBhcmF0ZSBmdW5jdGlvbi4KCiAgICAzLiBJbml0aWFsaXplIE1JSSBvbiBGRUMgMSB3aGVuIGNvbW11bmljYXRpbmcgb3ZlciBGRUMgMiBpbiBmZWNfaW5pdCgpLgoKICAgIDQuIE9wdGltaXplIG1paV9pbml0KCkgdG8gb25seSByZXNldCB0aGUgRkVDIDEgY29udHJvbGxlciBvbmNlLgoKICAgIDUuIEZpeCBhIHR5cG8gaW4gbWlpX2luaXQoKSB1c2luZyBpbmRleCBpIGluc3RlYWQgb2YgaiB0aHVzIHBvdGVudGlhbGx5CiAgICAgICBsZWFkaW5nIHRvIHVucHJlZGljdGFibGUgcmVzdWx0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNmE1ZTFkNzViZjEwNmZhMTU3ZTljZTY4YmNhZjRiMTNlOGExZDIxNApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyMCAxMzoxNDoyMCAyMDA3ICswMTAwCgogICAgRml4IGVuZGlhbm5lc3MgY29udmVyc2lvbnMgaW4gcnRsODE2OSBkcml2ZXIKCiAgICBJdCBpcyB1bmNsZWFyIG9uIHdoYXQgcGxhdGZvcm1zIHRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZCwgc2luY2UKICAgIG5vb25lIHVwIHRvIG5vdyBkZWZpbmVzIENPTkZJR19SVEw4MTY5IGluIHRoZSBib2FyZCBjb25maWd1cmF0aW9uCiAgICBoZWFkZXIuIE5vdyBpdCBoYXMgYmVlbiBmaXhlZCBmb3IgYSBiaWctZW5kaWFuIG1wYzgyNDEgYmFzZWQKICAgIGxpbmtzdGF0aW9uIHBsYXRmb3JtLiBUaGlzIHBhdGNoIHByZXNlbnRzIHRoZSBuZWNlc3NhcnkgZW5kaWFubmVzcwogICAgY29udmVyc2lvbiBmaXhlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNTg2OTRmOTcwOWMwYzNlMzE3OGUzNDlhZTc0OGQ5OGNmYjBjNjM5YQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMyAxMDo1MToxNSAyMDA4ICswODAwCgogICAgQWRkIEN0cmwgY29tYm8ga2V5IHN1cHBvcnQgdG8gdXNiIGtleWJvYXJkIGRyaXZlci4KCiAgICBDdHJsIGNvbWJvIGtleSBzdXBwb3J0IGlzIGFkZGVkLCB3aGljaCBpcyB2ZXJ5IHVzZWZ1bCB0byBpbnB1dCBDdHJsLUMKICAgIGZvciBpbnRlcnJ1cHQgY3VycmVudCBqb2IuCiAgICBBbHNvIGFkZCB1c2JfZXZlbnRfcG9sbCgpIGNhbGxpbmcgdG8gdXNiX2tiZF90ZXN0YygpLCB3aGljaCBjYW4gZ2V0CiAgICBrZXkgaW5wdXQgd2hlbiB0c3RjKCkgaXMgY2FsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDA3ZWIwMjY4N2YwMDg3MjE5NzRhMmZiNTRjZDdmZGMyODAzM2FiM2MKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTM6NDM6MzggMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVuYXVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjMjZhY2MxYTQzYjMxZGRjYTVhZGQ0MmZkMDM2MGZmMGVlZTkwYzgwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MTM6MTEgMjAwNyArMDEwMAoKICAgIFJlbW92ZSBiaXQgc3dhcHBpbmcgaW4gWGlsaW54IFNwYXJ0YW4gYml0ZmlsZSBsb2FkaW5nCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSB1bm5lY2Vzc2FyeSBiaXQgc3dhcHBpbmcgd2hlbgogICAgYm9vdGluZyAuYml0IGZpbGVzIHdpdGggdGhlICdmcGdhIGxvYWRiJyBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDQzN2ZjNzMyN2YwNjExZjgyOTM3ODU4ZjJkODBlNGNkNjFiNDA5ODQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMzowNSAyMDA3ICswMTAwCgogICAgRml4IE1TQiBjaGVjayBpbiBYaWxpbnggU3BhcnRhbiBzbGF2ZSBzZXJpYWwgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDNiZmY0ZmZhMzM3MjlhNDI2NDVlMzI4YTIxZThkMTY0ODg4NzI5NTgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMjo1NiAyMDA3ICswMTAwCgogICAgQWRkIG5ldyBYaWxpbnggU3BhcnRhbiBGUEdBIHR5cGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMjFkMzlkNTk4YzRlNzRkNGU3NzYxNjA4Yzc5ZGJhMjcxNWQ0MGE0YwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEyOjQzIDIwMDcgKzAxMDAKCiAgICBBZGQgcHJlIGFuZCBwb3N0IGNvbmZpZ3VyYXRpb24gY2FsbGJhY2tzIGZvciBTcGFydGFuIEZQR0FzCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgcG9zdCBjb25maWd1cmF0aW9uIGNhbGxiYWNrIGZvciBTcGFydGFuMi8zIEZQR0FzLgogICAgcHJlIGFuZCBwb3N0IGNvbmZpZ3VyYXRpb24gY2FsbGJhY2sgYXJlIG5vdyBvcHRpb25hbCBhbmQKICAgIG5vdCBjYWxsZWQgd2hlbiB0aGUgZnVuY3Rpb24gcG9pbnRlciBpcyBzZXQgdG8gTlVMTC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAwMTMzNTAyZTM5ZmY4OWI2N2MyNmNiNDAxNWUwZTdlOGQ5NTcxMTg0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MTI6MzQgMjAwNyArMDEwMAoKICAgIEltcHJvdmUgY29uZmlndXJhdGlvbiBvZiBGUEdBIHN1YnN5c3RlbQoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgRlBHQSBzdWJzeXN0ZW0gY29uZmlndXJhdGlvbiB0aHJvdWdoCiAgICB0aGUgQ09ORklHX0ZQR0EgYml0bWFzayBjb25maWd1cmF0aW9uIG9wdGlvbi4KCiAgICBTZWUgUkVBRE1FIGZvciB0aGUgbmV3IG9wdGlvbnM6CgoJQ09ORklHX0ZQR0EsCglDT05GSUdfRlBHQV88dmVuZG9yPiwKCUNPTkZJR19GUEdBXzxmYW1pbHk+CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgOTVjNmJjN2Q0YTM1ODhiNDUyYmFjYTYxMGY4Yzc5NWE4MzYzMDQ3NwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE2OjU1OjE3IDIwMDcgKzAxMDAKCiAgICBBZGQgRXBzb24gUlg4MDI1IFJUQyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMTIwOGEyZGZkZTAyYmVkZDNjNWJkYTI5YTYwNjYzMmI4ZTBiZTA1OApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE2OjU3OjIzIDIwMDcgKzAxMDAKCiAgICBzZXJpYWw6IE1ha2UgZGVmYXVsdF9zZXJpYWxfY29uc29sZSgpIGEgd2VhayBmdW5jdGlvbgoKICAgIFdpdGggdGhpcyBwYXRjaCBpdCBpcyBwb3NzaWJsZSB0byByZWltcGxlbWVudCBkZWZhdWx0X3NlcmlhbF9jb25zb2xlKCkKICAgIGluIGJvYXJkIHNwZWNpZmljIGNvZGUuIFRoaXMgd2lsbCBiZSBkb25lIGluIHRoZSB1cGNvbW1pbmcgUE1DNDQwCiAgICBVLUJvb3QgcG9ydC4gVGhpcyBhbHNvIGFsbG93cyB0aGUgbHdtb24gYm9hcmQgbWFpbnRhaW5lciB0bwogICAgcmVtb3ZlIHRoZSAnI2lmICFkZWZpbmVkKENPTkZJR19MV01PTikgLi4uJyBmcm9tIGNvbW1vbi9zZXJpYWwuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkMTY0NzFlZTA1Y2U3YWM1MzkyYmMwZTlmZTNmZjRiNThhNzY4ZjMzCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDoxNDo0NyAyMDA3ICswMTAwCgogICAgYWRkICd0ZXJtaW5hbCBwcm9ncmFtJyBmdW5jdGlvbmFsaXR5CgogICAgVGhpcyBwYXRjaCBhZGRzIGEgJ2N1JyBsaWtlIHNlcmlhbCB0ZXJtaW5hbCBjb21tYW5kIHRvIHUtYm9vdAogICAgdXNpbmcgd2hpY2ggeW91IGNhbiBhY2Nlc3Mgb3RoZXIgc2VyaWFsIHBvcnRzIGZyb20gdGhlIHN5c3RlbSBjb25zb2xlLgoKICAgIE9wZW5Nb2tvIHVzZXMgdGhpcyBpbiB0aGVpciBOZW8xOTczIHBob25lcyB0byBnZXQgYWNjZXNzIHRvIHRoZSBHU00KICAgIE1vZGVtIGFuZCBHUFMgY2hpcCBmcm9tIHRoZSBib290bG9hZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgNjJkNGY0MzY1MzQxNTc2ZjVhNTMwN2IyYjIwNWE1YWEyZTNjNmJlNgpBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MTI6NTMgMjAwNyArMDEwMAoKICAgIFJlLWludHJvZHVjZSB0aGUgJ25hbmQgcmVhZC5vb2InIGFuZCAnbmFuZCB3cml0ZS5vb2InIGNvbW1hbmRzCiAgICB0aGF0IHVzZWQgdG8gZXhpc3Qgd2l0aCB0aGUgbGVnYWN5IE5BTkQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgZjU0MGM0MmQ5NTY0ODU0YjE5Y2U5YmJiNzBhZmZlMTcyNTI5ZmU3MApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MDk6NTggMjAwNyArMDEwMAoKICAgIEZpeCBidWlsZGluZyB3aXRoIENSQU1GUyBidXQgbm90IEpGRlMyIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IDIzZDBiYWY5NjdmZWNkYWYxODA0ZjA0NWY2MzM5MzM3YzU2MDdlZWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjUyOjU4IDIwMDcgKzAxMDAKCiAgICBBbGxvdyBDT05GSUdfQVVUT19DT01QTEVURSBhbmQgY29tbWFuZCBoaXN0b3J5IENPTkZJR19DTURMSU5FX0VESVRJTkcgYXQgdGhlIHNhbWV0aW1lCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyMzc3NmZmMjkyOTY2YTg1ZDgxMTEyNjkzMzgzMGJlZDQ4MjExODI2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIERlYyAxMSAxMDo1MzoxMiAyMDA3ICswMTAwCgogICAgQVJNOiBzdXBwb3J0IGJvYXJkLXNwZWNpZmljIGV0aGVybmV0IFBIWSBpbml0CgogICAgQWRkIHVudGlsIHRoZSBuZXcgcGh5bGliIHdpbGwgYmUgYXJyaXZlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2I3NGViZTcyM2U1NzZiYWVkZjVhOGI2MjQwNTg5YjE5Yjg0NWExYgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgOCAxNjozNDowOCAyMDA3ICswMTAwCgogICAgSVhQOiBBZGQgZnVsbCBiYXVkLXJhdGUgc3VwcG9ydCBmb3IgaXhwNDJ4LCBpeHA0NXggYW5kIGl4cDQ2eAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTJkZjRkYTMxYjFhMWU0MWUzZTllMTM1OGNmYzUyYjgwNjA0NmNlMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBEZWMgOSAxMTowMToxMCAyMDA3ICswMTAwCgogICAgQWRkIG1pc3NpbmcgZmlsZSBpbiBnaXRpZ25vcmUgYW5kIGNvbW1lbnRzCgogICAgYmFzZWQgb24gTGludXggc291cmNlIHRyZWUncyAuZ2l0aWdub3JlIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0MzVkYzhmY2RiM2JjNjFkM2Q0OTA3NzNhOGYzNjlmOThhMjBjODY4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDExOjM2OjIxIDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjJlMjE0MmM1MDBjNDhhNTdmMThmOWRkMzBlNjZjMTNjYWVhMDk3MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjM4OjU4IDIwMDggKzAxMDAKCiAgICBQT1NUOiBFeGVjdXRlIFNQUiB0ZXN0IGFmdGVyIHJlbG9jYXRpb24KCiAgICBPbiBMV01PTjUgd2Ugbm93IHVzZSBkLWNhY2hlIGFzIGluaXQtcmFtIGFuZCBzdGFjay4gVGhlIFNQUiBQT1NUIHRlc3QgdXNlcwogICAgc2VsZiBtb2RpZnlpbmcgY29kZSBhbmQgdGhpcyBkb2Vzbid0IHdvcmsgd2l0aCBzdGFjayBpbiBkLWNhY2hlLCBzaW5jZQogICAgSSBjYW4ndCBtb3ZlIHRoZSBjb2RlIGZyb20gZC1jYWNoZSB0byBpLWNhY2hlLiBXZSBtb3ZlIHRoZSBTUFIgdGVzdCB0bwogICAgYmUgZXhlY3V0ZWQgYSBsaXR0bGUgbGF0ZXIsIGFmdGVyIHJlbG9jYXRpb24uIFRoZW4gc3RhY2sgaXMgbG9jYXRlZCBpbgogICAgU0RSQU0gYW5kIHRoaXMgc2VsZi1tb2RpZnlpbmcgY29kZSBpcyBubyBwcm9ibGVtIGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhmMjRlMDYzN2FlMTEzNTAwZDhiZDYwZDgwZDU3YWZjYzBhYThiZGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMDoyODoyMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDaGFuZ2UgTFdNT041IHRvIG5vdCB1c2UgT0NNIGZvciBpbml0LXJhbSBhbmQgUE9TVCBhbnltb3JlCgogICAgVGhpcyBwYXRjaCBjb25maWd1cmVzIHRoZSBMV01PTjUgcG9ydCB0byB1c2UgZC1jYWNoZSBhcyBpbml0LXJhbSBhbmQKICAgIHRoZSB1bnVzZWQgR1BUMF9DT01QNiBhcyBQT1NUIFdPUkQgc3RvcmFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTc1NGY1MGI3MTAxOTRmODg2YjZmMjgzMTgwM2Q4OTYwMTcxYTE0ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjI1OjQ2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBDRkdfUE9TVF9BTFRfV09SRF9BRERSIHRvIHN1cHBvcnQgbm9uIE9DTSBQT1NUIFdPUkQgc3RvcmFnZQoKICAgIFRoZSBwcml2aW91cyA0eHggUE9TVCBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRlZCBzdG9yaW5nIHRoZSBQT1NUCiAgICBXT1JEIGluIE9DTS4gU2luY2Ugd2UgbmVlZCB0byByZXNlcnZlIHRoZSBPQ00gb24gTFdNT041IGZvciB0aGUgbG9nYnVmZmVyCiAgICB3ZSBuZWVkIHRvIHN0b3JlIHRoZSBQT1NUIFdPUkQgaW4gc29tZSBvdGhlciBub24gdm9sYXRpbGUgbG9jYXRpb24uCiAgICBUaGlzIHBhdGNoIGFkZHMgQ0ZHX1BPU1RfQUxUX1dPUkRfQUREUiB0byBzcGVjaWZ5IGFuIGFkZHJlc3MgZm9yIHN1Y2gKICAgIGEgbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwMmM1MjFkOTRiNDVkN2IwNWFhNTIyZTRjY2RlNmI3NGJmNWZlNTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMDoyMzoxNiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDR4IGNhY2hlIGxvY2tpbmcgdG8gYmV0dGVyIHN1cHBvcnQgaW5pdC1yYW0gaW4gZC1jYWNoZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBsb2NraW5nIHRoZSBpbml0LXJhbS9zdGFjayBpbiBkLWNhY2hlLAogICAgc28gdGhhdCBvdGhlciByZWdpb25zIG1heSB1c2UgZC1jYWNoZSBhcyB3ZWxsCgogICAgTm90ZSwgdGhhdCB0aGlzIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gbG9ja3MgZXhhY3RseSA0ayBvZiBkLWNhY2hlLAogICAgc28gcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHlvdSBkb24ndCBkZWZpbmUgYSBiaWdnZXIgaW5pdC1yYW0gYXJlYS4gVGFrZQogICAgYSBsb29rIGF0IHRoZSBsd21vbjUgNDQwRVB4IGltcGxlbWVudGF0aW9uIGFzIGEgcmVmZXJlbmNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGRiODk2MDFhOGQyOWU4MDhkYjQ1MDM2Njc1MmZmZGM2MjY3YzUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjE2OjMzIDIwMDggKzAxMDAKCiAgICBGaXggbWVtc2V0IGJ1ZyBpbiBleHQyZnNfcmVhZF9maWxlKCkKCiAgICBleHQyZnNfcmVhZF9maWxlKCkgaGFkIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMgc3dhcHBlZC4KCiAgICBQb2ludGVkIG91dCBieSBNaWtlIE1vbnRvdXIsIDE5IERlYyAyMDA3IDIyOjM0OjI1IC0wODAwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzMmQ2ZjFiYzA5MTc1ZjNiNzc0Njk3NzFlODM5YmM3MjU1YTlmMjJlCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA1IDA4OjE3OjE1IDE5ODggKzAxMDAKCiAgICBGaXggcHJvYmxlbXMgd2l0aCB1c2Igc3RvcmFnZSBkZXZpY2VzIG9uIE1QQzUyMDAgL1RRTTUyMDAKCiAgICBUaGUgTVBDNTIwMCBPSENJIGNvbnRyb2xsZXIgb3BlcmF0ZXMgaW4gYmlnIGVuZGlhbiwgc28KICAgIENGR19PSENJX0JFX0NPTlRST0xMRVIgbXVzdCBiZSBkZWZpbmVkIGZvciBpdCB0byB3b3JrIHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgNDZmNmU1MDE5MDQ4YjEwM2Q3NjkzZDUzMTBkZTBmMWNmYmFmNGMxOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOCAyMjo1ODoyNyAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGUgcHJvYmxlbSB3aXRoIG5ldyBlbnYgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY0YjM3MjdiOTc3OWQ4NjEyN2NkNTc2ZTM5MmE5ODdkZTVlYmI5ZmQKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDI3IDEwOjIzOjIwIDIwMDcgKzAxMDAKCiAgICB0b29sczogZml4IGZ3X3ByaW50ZW52IHRvb2wgdG8gY29tcGlsZSBhZ2FpbgoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgZndfcHJpbnRlbnYvZndfc2V0ZW52IHVzZXJzcGFjZSB0b29sIHRvIGluY2x1ZGUKICAgIHRoZSBjb3JyZWN0IE1URCBoZWFkZXIgaW4gb3JkZXIgdG8gY29tcGlsZSBhZ2FpbnN0IGN1cnJlbnQga2VybmVsCiAgICBoZWFkZXJzLiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzIHByZXNlcnZlZCBieSBpbnRyb2R1Y2luZyBhbiBvcHRpb24KICAgIE1URF9WRVJTSU9OIHdoaWNoIGNhbiBiZSBzZXQgdG8gIm9sZCIgZm9yIGNvbXBpbGF0aW9uIHVzaW5nIHRoZSBvbGQgTVRECiAgICBoZWFkZXJzLiBBbG9uZyB3aXRoIHRoaXMgYSBudW1iZXIgb2Ygd2FybmluZ3MgYXJlIGZpeGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMWY4NDAyMWE4NWFiZWI4MzdkMmNlMGRjODQyOTdiNGYxZDQ1ZDUxNgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTU6NDA6MDkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogYXNzaWduIFBDSSBpbnRlcnJ1cHRzIG9uIHNldXFvaWEgYm9hcmRzCgogICAgU29tZSBvcGVyYXRpbmcgc3lzdGVtcyByZWx5IG9uIGFzc2lnbmVkIFBDSSBpbnRlcnJ1cHRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDZlOTIzM2QzMGFmZTU3Y2I2ZTE0OGZiZmE0ODk1ZTc4MTAxOTZmYWMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE1OjUwOjQ5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE1vdmUgY3B1L3BwYzR4eC92ZWNudW0uaCBpbnRvIGluY2x1ZGUgcGF0aAoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIHRoZSB1c2Ugb2YgNHh4IGludGVycnVwdCB2ZWN0b3IgbnVtYmVyIGRlZmluZXMKICAgIGluIGJvYXJkIHNwZWNpZmljIGNvZGUgb3V0c2lkZSBjcHUvcHBjNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDU4MGQxZDMxODZhMmJjNmRiZGI2MjY5NDFiNzE2ZGFlMTc4OGU1MWUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE1OjM5OjAxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBVSUMyIHZlY3RvciBudW1iZXIgYmFzZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGZmNWZiOGE2Y2NiYTU2ZTM0ODJkMGUyOTdkOGNmYjdmYWEwNDA4MTEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEphbiA4IDEyOjQ5OjU4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBQTEIvUENJIGRpdmlkZXIgZm9yIFBNQzQ0MCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgUExCL1BDSSBkaXZpZGVyIHdoZW4gcnVubmluZyBhdAogICAgNDAwTUh6IENQVSBmcmVxdWVuY3kgZnJvbSA0IHRvIDMgd2hpY2ggcmVzdWx0cyBpbiA0NE1IeiBQQ0kgc3luYyBjbG9jay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3ZDVkNzU2MzMxNzQ4NjczMTZhMGMwZjJmY2E1Y2ViMmNmMzEyY2RlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxMToxMzowOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBEaXNhYmxlIGVycm9yIG1lc3NhZ2Ugd2hlbiBubyBOQU5EIGNoaXAgaXMgaW5zdGFsbGVkIG9uIFBNQzQ0MAoKICAgIEFkZCBDRkdfTkFORF9RVUlFVF9URVNUIG9wdGlvbiB0byBkaXNhYmxlIGVycm9yIG1lc3NhZ2Ugd2hlbgogICAgbm8gTkFORCBjaGlwIGlzIGluc3RhbGxlZCBvbiBQTUM0NDAgYm9hcmRzLgoKICAgIERpc2FibGUgYSBjb3VwbGUgb2YgY29uZmlnIGRlZmluZXMgdGhhdCBhcmUgb25seSB1c2VkIGZvciBOQU5EX1VfQk9PVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjODNkN2NhNGRhZGQ0NGFlNDMwMjM1MDc3ZjYzYjY0YTExZjM2ZjZlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA4IDIyOjU4OjI3IDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsZSBwcm9ibGVtIHdpdGggbmV3IGVudiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmRlNjZiMzU0MjYzMTJhMjExNzRhOWJmMDU3NmEwOTRlMjkwNGJlYQpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjcgMTA6MjM6MjAgMjAwNyArMDEwMAoKICAgIHRvb2xzOiBmaXggZndfcHJpbnRlbnYgdG9vbCB0byBjb21waWxlIGFnYWluCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBmd19wcmludGVudi9md19zZXRlbnYgdXNlcnNwYWNlIHRvb2wgdG8gaW5jbHVkZQogICAgdGhlIGNvcnJlY3QgTVREIGhlYWRlciBpbiBvcmRlciB0byBjb21waWxlIGFnYWluc3QgY3VycmVudCBrZXJuZWwKICAgIGhlYWRlcnMuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgcHJlc2VydmVkIGJ5IGludHJvZHVjaW5nIGFuIG9wdGlvbgogICAgTVREX1ZFUlNJT04gd2hpY2ggY2FuIGJlIHNldCB0byAib2xkIiBmb3IgY29tcGlsYXRpb24gdXNpbmcgdGhlIG9sZCBNVEQKICAgIGhlYWRlcnMuIEFsb25nIHdpdGggdGhpcyBhIG51bWJlciBvZiB3YXJuaW5ncyBhcmUgZml4ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBhZDMwMDZmZTdlODQ2NjcwMjE3NTNiNzQyNDdiMGJhZmQ5N2JhMzVmCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEphbiA3IDIzOjQ3OjMyIDIwMDggLTA1MDAKCiAgICBMSUJGRFQ6IHVzZSBtZW1tb3ZlKCkgaW5zdGVhZCBvZiBtZW1jcHkoKQoKICAgIFRoaXMgaXMgcGFydGlhbCBwYXRjaCBmcm9tIHRoZSBEVEMvbGliZmR0CiAgICBjb21taXQgIDY3YjZiMzNiOWI0MTNhNDUwYTcyMTM1YjVkYzU5YzBhMWUzM2U2NDcKICAgIEF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CiAgICBEYXRlOiAgIFdlZCBOb3YgMjEgMTE6NTY6MTQgMjAwNyArMTEwMAoKCVRoZSBwYXRjaCBhbHNvIGZpeGVzIG9uZSBnZW51aW5lIGJ1ZyBjYXVnaHQgYnkgdmFsZ3JpbmQgLQoJX3BhY2tibG9ja3MoKSBpbiBmZHRfcncuYyB3YXMgdXNpbmcgbWVtY3B5KCkgd2hlcmUgaXQgc2hvdWxkIGhhdmUgYmVlbgoJdXNpbmcgbWVtbW92ZSgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYWVjNzEzNWJjMzAwZTMzNDBkMThmMjAzMzQ3ZWUwMGM1YjVmNjhjMApBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglNb24gRGVjIDE3IDE0OjQyOjA3IDIwMDcgKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBtb3JlIGRvY3VtZW50YXRpb24gKHBhdGNoIHRoZSBzZXZlbnRoKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBtb3JlIGRvY3VtZW50aW5nIGNvbW1lbnRzIHRvIGxpYmZkdC5oLiAgU3BlY2lmaWNhbGx5LAogICAgdGhlc2UgZG9jdW1lbnQgdGhlIHJlYWQvd3JpdGUgZnVuY3Rpb25zIChub3QgaW5jbHVkaW5nIGZkdF9vcGVuX2ludG8oKQogICAgYW5kIGZkdF9wYWNrKCksIGZvciBub3cpLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDlkNDQ1MGI1YWRjMzY2MjNlOWMxZGUxZjkyNTM5ZGI3N2FkMGM1N2UKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIERlYyAxNyAxNDo0MTo1MiAyMDA3ICsxMTAwCgogICAgbGliZmR0OiBBZGQgbW9yZSBkb2N1bWVudGF0aW9uIChwYXRjaCB0aGUgc2l4dGgpCgogICAgVGhpcyBwYXRjaCBhZGRzIHNvbWUgbW9yZSBkb2N1bWVudGluZyBjb21tZW50cyB0byBsaWJmZHQuaC4KICAgIFNwZWNpZmljYWxseSB0aGlzIGRvY3VtZW50cyBhbGwgdGhlIHdyaXRlLWluLXBsYWNlIGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCBiNjBhZjNkNGMxNjgwNDg3ZWUzN2UxMWFhMWIzZGI2ZGVjMDRkOGYwCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IERlYyAyOSAyMjo0NToyNyAyMDA3IC0wNTAwCgogICAgRmluZSBncmFpbmVkIHBlciBwcm9wZXJ0eSAvY2hvc2VuIHVwZGF0aW5nLgoKICAgIEltcGxlbWVudCBhIHN1Z2dlc3Rpb24gYnkgU2NvdHQgV29vZCB0byBtYWtlIHRoZSAvY2hvc2VuIGhhbmRsaW5nIGZpbmUKICAgIGdyYWluZWQuICBEb24ndCBvdmVyd3JpdGUgcHJlLWV4aXN0aW5nIHByb3BlcnRpZXMgb24gYSBwZXItcHJvcGVydHkgYmFzaXMsCiAgICBzbyBpZiAvY2hvc2VuIGV4aXN0cyBidXQgYSBuZWNlc3NhcnkgL2Nob3Nlbi9wcm9wZXJ0eSBkb2Vzbid0LCBpdCBnZXRzCiAgICBjcmVhdGVkLiAgSWYgYSAvY2hvc2VuIHByb3BlcnR5IGV4aXN0cywgaXQgaXMgTk9UIG92ZXJ3cml0dGVuIHVubGVzcyB0aGUKICAgICJmb3JjZSIgZmxhZyBpcyB0cnVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMjM4Y2I3YTQyM2M2ZWFhMzY0OTZlZmI3ODhjZmI5Nzk4Y2VhN2Y5NQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBKYW4gNSAxNTozMzoyOSAyMDA4IC0wNTAwCgogICAgSW1wcm92ZSB0aGUgRkRUIGhlbHAgbWVzc2FnZS4KCiAgICBBZGQgYSBub3RlIHRoYXQgImZkdCBjb3B5IiBtYWtlcyB0aGUgbmV3IGFkZHJlc3MgYWN0aXZlLgogICAgUmVtb3ZlIG1vc3Qgb2YgdGhlIGV4dHJhIGhpbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGZkdCBoZWxwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZWE2ZDhiZTE1M2NlYWYxNjk1OGY4MDA5Y2VhNmQ3NWYzZmY1OGQ5MgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBKYW4gNSAxNDo1MjowNCAyMDA4IC0wNTAwCgogICAgU3VwcG9ydCBzZXR0aW5nIEZEVCBwcm9wZXJ0aWVzIHdpdGggb3B0aW9uYWwgdmFsdWVzLgoKICAgIEZpeCBhIGJ1ZyBmb3VuZCBhbmQgZG9jdW1lbnRlZCBieSBCYXJ0bG9taWVqIFNpZWthIHdoZXJlIHRoZSBvcHRpb25hbAogICAgdmFsdWUgb24gImZkdCBzZXQgPHBhdGg+IDxwcm9wPiBbPHZhbD5dIiB3YXNuJ3Qgb3B0aW9uYWwuCgogICAgPT4gZmR0IG1rbm9kZSAvIHRlc3Rub2RlCiAgICA9PiBmZHQgcHJpbnQgL3Rlc3Rub2RlCiAgICB0ZXN0bm9kZSB7CiAgICB9OwogICAgPT4gZmR0IHNldCAvdGVzdG5vZGUgdGVzdHByb3AKICAgID0+IGZkdCBwcmludCAvdGVzdG5vZGUKICAgIHRlc3Rub2RlIHsKCSAgICB0ZXN0cHJvcDsKICAgIH07CgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyMmZiMjI0NmRmOTFiZmM4NDBkODdmMGM1OTEwODE4YmFkNTU1NzdhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTE6NTY6MzAgMjAwNyArMDEwMAoKICAgIEFkZCBmZHRfZmluZF9hbmRfc2V0cHJvcCgpIHRvIGZkdF9zdXBwb3J0LmgKCiAgICBmZHRfZmluZF9hbmRfc2V0cHJvcCgpIGlzIHVzZWQgYnkgc2V2ZXJhbCA0eHggYm9hcmRzIGFuZCBpdCdzCiAgICBtaXNzaW5nIGluIHRoZSBhcHByb3ByaWF0ZSBoZWFkZXIuIFRoaXMgcGF0Y2ggZWxpbWluYXRlcyBhCiAgICB3YXJuaW5nIHdoZW4gYnVpbGRpbmcgVS1Cb290IGZvciBzdWNoIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODAyYjc2OWJhYzE3YjA1NjBkMzUzNWE0MmM1MDI0NjllZTE5MGNkMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA4IDE4OjM5OjMwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFJldHVybiAwIG9uIHN1Y2Nlc3MgaW4gNHh4IGV0aGVybmV0IGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2Nzc1YzY4NjgzYTUzYzdhYmM3Nzg3NzQ2NDFhYWM2ZjgzM2EyY2JmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiA4IDA5OjU5OjQ5IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggbWlzc2VkIHBjaV9ob3NlIC0+IGhvc2UgY29udmVyc2lvbiBmb3IgbmV3IGxpYmZkdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NGZhYjI1ZjVmMWE3ZDFjMGNjNjNjMTdlODEzZWE4OTQzZmU0OWM3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxNjoyODozNCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogcm0gcmVtYWluaW5nIEZMQVRfVFJFRSBjb2RlCgogICAgLi5pbiBib2FyZCBwY2kuYyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjM0NThkMmNkNTVkMDE3MzJlMzBhNzZkODk4YWZkOTllODcxY2Q2NwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTU6NTc6MjggMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHJlbW92ZSBGTEFUX1RSRUUgY29kZQoKICAgIG5lZWQgdG8gcm0gaXQgZnJvbSBwY2kgY29kZSwgdG9vIQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWI4YmM2MDZjNjE0NTY1NjZhZjY5MTJmODE4YTE1M2I2YjA2ZjI0MgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTQ6MDk6MjIgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGNvbnZlcnQgdG8gdXNpbmcgZG9fZml4dXBfKigpCgogICAgY29udmVydCB0byB1c2luZyBzaW1wbGVyIG1wYzg1eHggc3R5bGUgZmR0IHVwZGF0ZSBjb2RlOyBzdHJlYW1saW5lIGJ5CiAgICBlbGltaW5hdGluZyBtYWNyb3MgT0ZfU09DLCBPRl9DUFUsIGV0Yy4gd2hpY2ggYWxsb3dzIHVzIHRvIHJtCiAgICB0aGUgb2xkIHNjaG9vbCBGTEFUX1RSRUUgY29kZSBmcm9tIDgzeHggKHNpbmNlIHRoZSBzYmM4MzQ5IHdhcyBqdXN0CiAgICBjb252ZXJ0ZWQgb3ZlciB0byB1c2luZyBsaWJmZHQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTQ5Njg2NWVjYzMxYTJmZTJmOWFiZmU3OTgzMzRiYjAyYWFmMDVhYgpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDIwIDEyOjU4OjUxIDIwMDcgLTA1MDAKCiAgICBzYmM4MzQ5OiBlbmFibGUgbGliZmR0IGJ5IGRlZmF1bHQgb24gV1JTIFNCQzgzNDkgYm9hcmQuCgogICAgTWFrZSBsaWJmZHQgdGhlIGRlZmF1bHQgZm9yIHRoZSBXUlMgU0JDODM0OSBib2FyZC4KICAgIFBhcmFsbGVsIG9mIGNvbW1pdCAzNWNjNGU0ODIzNjY4ZTg3NDU4NTQ4OTljZmFlZGQ0NDg5YmViMGVmCiAgICBkb25lIGZvciB0aGUgb3RoZXIgODN4eCBiYXNlZCBib2FyZHMuICBBbHNvIGZpeCBhIHR5cG8gaW4gQ09ORklHX1BDSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCAyNDA4YjNmMjBiY2JkZDljNmMzOTdjZDAzYWIwZDcxZDU0NjgwYTQwCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTI6NTg6MTYgMjAwNyAtMDUwMAoKICAgIHNiYzgzNDk6IG1pZ3JhdGUgYm9hcmQgdG8gbGliZmR0CgogICAgVGhpcyBhZGRzIGxpYmZkdCBzdXBwb3J0IGNvZGUgZm9yIHRoZSBXaW5kIFJpdmVyIHNiYzgzNDkgYm9hcmQuCgogICAgUGFyYWxsZWwgb2YgY29tbWl0IDNmZGU5ZThiMjJjZmJkN2FmNDg5MjE0NzU4Zjk4MzlhMjA2NTc2Y2IgZm9yCiAgICB0aGUgb3RoZXIgRnJlZXNjYWxlIDgzeHggYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDI3YTI1NmE5MGNjODYzOTJhYzliZjAwMzlhM2FmZTYzOGVjMmMxOGQKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxMjo1NjoxOSAyMDA3IC0wNTAwCgogICAgc2JjODM0OTogUmVtb3ZlIGJvYXJkIHNwZWNpZmljIEVDQyBjb2RlCgogICAgRUNDIGNvZGUgaXMgbm93IHNoYXJlZCBmb3IgYWxsIDgzeHggYm9hcmRzLCBzbyByZW1vdmUgYm9hcmQgc3BlY2lmaWMgb25lLgogICAgU2VlIGNvbW1pdCBkYWFiOGM2N2QyZGVmZWY3M2RjMjZhYjA3ZjBjM2FmZDFiMDVkMDE5IGZvciByZWZlcmVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgYTFlMWFjODQ5MjQ5MzEwZTVlMmU1YzcxNDhlOWZiMzUzYTgzMTdhNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMjAgMDE6MzA6NDggMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBDT05GSUcgb3B0aW9ucyByZWxhdGVkIHRvIE9GIHRoYXQgd2UgZG9udCB1c2UgKG9uIDgzN3gpCgogICAgY29udGludWF0aW9uIG9mIGNvbW1pdCAzNzM5NWZhMmIwZDlkNjE3ZjI4ZDQ0Y2ExMTU5MjI2MGVmMTYxMDVhIHRvIDgzN3gKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNjZjIxYzMxMWU2OGQ0ODM5OWVmZjFlNzI5MzYwNTI4ODVmNmUzZjcKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJVGh1IERlYyA2IDE2OjQzOjQwIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBDT05GSUdfVUVDX0VUSDMgaW4gTVBDODN4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgoKY29tbWl0IGU2YWY5OTMyZDMxMTcxZTM1ZGI4ODBlN2IyZjI5ZjkwM2IxYjc2NjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDExOjAwOjU0IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgQ09ORklHIG9wdGlvbnMgcmVsYXRlZCB0byBPRiB0aGF0IHdlIGRvbnQgdXNlCgogICAgVGhlIE1QQzgzNjBFIE1EUyBjb25maWcgZGVmaW5lZDoKCUNPTkZJR19PRl9IQVNfQkRfVAoJQ09ORklHX09GX0hBU19VQk9PVF9FTlYKCiAgICBXaGljaCB3ZSBkb24ndCB1c2Ugb3IgZXZlciBuZWVkZWQuCVRoaXMgc2VlbXMgbGlrZSBjb3B5LXBhc3RlIGZlYXR1cmUgY3JlZXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNjAyMDgyYjRiN2VkNGVlMTY0MzIwNjdjYzY3YTBhMjRmZWRjNzE1CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxMCAxNDoxNjoyMiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogc3VwcmVzcyBjb21waWxlciB3YXJuaW5nCgogICAgbXBjODM2MGVtZHMuYzogSW4gZnVuY3Rpb24g4oCYZnRfYm9hcmRfc2V0dXDigJk6CiAgICBtcGM4MzYwZW1kcy5jOjMzNTogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQogICAgbXBjODM2MGVtZHMuYzozNDU6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxNmU0NGZhODM1ZmI5ZWVjOTgyZDkxOTg2M2EwNGUyZjc4ZTVjZTcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI3IDE0OjE3OjI5IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggcmVtYWluaW5nIGZkdF9maW5kX25vZGVfYnlfcGF0aCByZWZlcmVuY2VzCgogICAgcmVuYW1lIHRvIGZkdF9wYXRoX29mZnNldAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTIxZDRiMTlhZDFiZTcwNGRmNTg3MjU0ODVkOTI5MmRjMDQxNGFkZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgMTkgMTI6MzA6MDkgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBDRkdfRU5WX0FERFIgYW5kIENGR19FTlZfU0VDVF9TSVpFIGRlZmluaXRpb25zIGZvciA4Mzd4CgogICAgRml4IHRoZSBkZWZpbml0aW9ucyBvZiBDRkdfRU5WX0FERFIgYW5kIENGR19FTlZfU0VDVF9TSVpFIGZvciA4Mzd4LgogICAgVGhpcyBjaGFuZ2UgZ3VhcmFudGVlcyB0aGF0IHRoZSBlbnZpcm9ubWVudCB3aWxsIGJlIGxvY2F0ZWQgb24gdGhlCiAgICBmaXJzdCBmbGFzaCBzZWN0b3IgYWZ0ZXIgdGhlIFUtQm9vdCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI0Zjg2ODQzM2I1MGVjYmFhODhlMTE4YWFkYzdiZDI1NDAxM2M2YWUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDkgMTQ6Mjg6MDggMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IG1wYzgzNjAgcmV2LjIuMSBlcnJhdHVtIDI6IHJlcGxhY2UgcmdtaWktaWQgd2l0aCByZ21paS1yeGlkCgogICAgdS1ib290IGl0c2VsZiB1c2VzIEdNSUkgbW9kZSBvbiB0aGUgODM2MC4gIEZpeCB1cCBVQ0MgcGh5LWNvbm5lY3Rpb24tdHlwZQogICAgcHJvcGVydGllcyBpbiB0aGUgZGV2aWNlIHRyZWUgc28gdGhlIFBIWSBnZXRzIGNvbmZpZ3VyZWQgZm9yIGludGVybmFsIGRlbGF5IG9uCiAgICBSWCBvbmx5IGJ5IHRoZSBPUywgYXMgcHJlc2NyaWJlZCBieSBtcGM4MzYwIHJldi4gMi4xIHBiIG1kcyBlcnJhdHVtICMyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjJiNDQ4ZGJmYmUyYTk4ZjAxZmY0YWRjM2MzOTc5ZjhjNTQxYWQ3YgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjo0MToxNSAyMDA3ICswODAwCgogICAgbXBjODN4eDogdXBkYXRlIHRoZSBDUkVESVRTIGFuZCBNQUlOVEFJTkVSUwoKICAgIHVwZGF0ZSB0aGUgQ1JFRElUUyBhbmQgTUFJTlRBSU5FUlMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMjFhZGQ0YjQyYWY3Yjc2NzQ0ODI1MWI1OTliOTEwNjZhMTYwZTBkCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjQwOjIxIDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBhZGQgTUFJTlRBSU5FUiBhbmQgTUFLRUFMTCBlbnRyaWVzIGZvciB0aGUgbXBjODM3eGVtZHMKCiAgICBBZGQgdGhlIE1BSU5UQUlORVIgYW5kIE1BS0VBTEwgZW50cmllcyBmb3IgbXBjODM3eGVtZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY4OTAwY2U5MDk0YzQ2MjM1NWViNzkyZWVhMjY0ZmYxNmFjOGZkMTYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6Mzg6NTMgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgTVBDODM3eEVNRFMgYm9hcmQgcmVhZG1lCgogICAgQWRkIHRoZSBSRUFETUUubXBjODM3eGVtZHMgdG8gL2RvYwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTk1ODBlNjYwY2M4ZGE0OWYxNjUzNmE4YmQ3OGMwNDdjN2JjMTJlNQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjozNzo1NyAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBzdXBwb3J0IG9mIE1QQzgzN3hFTURTIGJvYXJkCgogICAgVGhlIE1QQzgzN3hFTURTIGJvYXJkIHN1cHBvcnQ6CiAgICAqIEREUjIgNDAwTUh6IGhhcmRjb2RlZCBhbmQgU1BEIGluaXQKICAgICogTG9jYWwgYnVzIE5PUiBGbGFzaAogICAgKiBJMkMsIFVBUlQsIE1JSSBhbmQgUlRDCiAgICAqIGVUU0VDIFJHTUlJCiAgICAqIFBDSSBob3N0CgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NTVkYTYxNzAyNzcxZmUwZjc2ZjNkZTIzYjRlNzU5MGYzNzA0MTYxCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjM2OjU4IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIHN1cHBvcnQgb2YgTVBDODMxNUUgU29DCgogICAgVGhlIE1QQzgzMTVFIFNvQyBpbmNsdWRpbmcgZTMwMGMzIGNvcmUgYW5kIG5ldyBJUCBibG9ja3MsCiAgICBzdWNoIGFzIFRETSwgUENJIEV4cHJlc3MgYW5kIFNBVEEgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzMDUxYzNkMzVjOTk4MWNlYWEwNTkwMDU2NjBlNjk5ZjNlYWNmMWMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6MzY6MTEgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgc3VwcG9ydCBvZiBNUEM4Mzd4IFNvQwoKICAgIFRoZSBNUEM4Mzd4IFNvQyBpbmNsdWRpbmcgZTMwMGM0IGNvcmUgYW5kIG5ldyBJUCBibG9ja3MsCiAgICBzdWNoIGFzIFNESEMsIFBDSSBFeHByZXNzIGFuZCBTQVRBIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NTFkOTZmN2U0Yzg0YWRjZGI5OGVmMDdlYzg3OGMyMDMyNmUzMzU5CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBOb3YgMTQgMTg6NTQ6NTMgMjAwNyArMDMwMAoKICAgIE1QQzgzNjBFLU1EUzogY29uZmlndXJlIGFuZCBlbmFibGUgc2Vjb25kIFVBUlQKCiAgICBEZXNwaXRlIHVzZXIgbWFudWFsLCBCQ1NSOS43IGlzIG5lZ2F0ZWQgKGhpZ2gpIG9uIEhSU1QsIHNvCiAgICBVQVJUMiBpcyBkaXNhYmxlZC4gRml4IHRoYXQgYW5kIGNvbmZpZ3VyZSBRRSBwaW5zIHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGIyODkzZTFmY2IyOGZhZDhjOGIzMTcxMDRkZjhjZWUwMTQyYzc2MzEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTm92IDUgMDk6MzQ6MDYgMjAwNyAtMDYwMAoKICAgIDgzeHg6IGZpeCBDRkdfRU5WX0FERFIgYW5kIENGR19FTlZfU0VDVF9TSVpFIGRlZmluaXRpb25zCgogICAgRml4IHRoZSBkZWZpbml0aW9ucyBvZiBDRkdfRU5WX0FERFIgYW5kIENGR19FTlZfU0VDVF9TSVpFIGZvciBhbGwgb2YgdGhlCiAgICBjdXJyZW50bHktZGVmaW5lZCA4M3h4IGJvYXJkcy4gIFRoaXMgY2hhbmdlIGd1YXJhbnRlZXMgdGhhdCB0aGUgZW52aXJvbm1lbnQKICAgIHdpbGwgYmUgbG9jYXRlZCBvbiB0aGUgZmlyc3QgZmxhc2ggc2VjdG9yIGFmdGVyIHRoZSBVLUJvb3QgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA1MzI5NTE2YTEzNjE2YjUzMjQwY2Q4NWI3MzkyMTdjMmJmODdmMQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglGcmkgSmFuIDQgMTM6Mjc6MDIgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHdlYWsgYmluZGluZyBmcm9tIGNvbW1vbiBEZW5hbGkgZGF0YS1leWUgc2VhcmNoIGNvZGUKCiAgICBOb3cgdGhhdCB0aGVyZSBhcmUgbm8gYm9hcmQtc3BlY2lmaWMgdmVyc2lvbnMgb2YKICAgICJkZW5hbGlfY29yZV9zZWFyY2hfZGF0YV9leWUoKSIsIHRoZSB3ZWFrIGJpbmRpbmcgb24gdGhlIGNvbW1vbiB2ZXJzaW9uCiAgICBjYW4gYmUgcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA1YmE1NzZjMDE2MDJmZDMyODgwMGE0Mjc5NjRjMzZhMGEwNWM1ZGNlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDUgMDk6MTM6NDYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHVudXNlZCBDT05GSUdfRUNDX0VSUk9SX1JFU0VUIGZyb20gNDR4X3NwZF9kZHIyLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODQ1YzZjOTVkYmZlNmM5MTVjZTY4YTBhMTE1ODUyZmExNzkzMmZiNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA1IDA5OjEyOjQxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLYXRtYWkvNDR4X3NwZF9kZHIyLmMgY29kZSBmb3Igb3B0aW1hbCBERFIyIHNldHVwCgogICAgT24gS2F0bWFpIHRoZSBjb21wbGV0ZSBhdXRvLWNhbGlicmF0aW9uIHNvbWVob3cgZG9lc24ndCBzZWVtIHRvCiAgICBwcm9kdWNlIHRoZSBiZXN0IHJlc3VsdHMsIG1lYW5pbmcgb3B0aW1hbCB2YWx1ZXMgZm9yIFJRRkQvUkZGRC4KICAgIFRoaXMgd2FzIGRpc2NvdmVyZWQgYnkgR0RBIHVzaW5nIGEgaGlnaCBiYW5kd2lkdGggc2NvcGUsCiAgICBhbmFseXppbmcgdGhlIEREUjIgc2lnbmFscy4gR0RBIHByb3ZpZGVkIGEgZml4ZWQgdmFsdWUgZm9yIFJRRkQsCiAgICBzbyBub3cgb24gS2F0bWFpICJvbmx5IiBSRkZEIGlzIGF1dG8tY2FsaWJyYXRlZC4KCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBSRENDIGNhbGlicmF0aW9uIGFzIG1lbnRpb25lZCBvbiBwYWdlIDcgb2YKICAgIHRoZSBBTUNDIFBvd2VyUEM0NDBTUC9TUGUgRERSMiBhcHBsaWNhdGlvbiBub3RlOgogICAgIkREUjEvRERSMiBJbml0aWFsaXphdGlvbiBTZXF1ZW5jZSBhbmQgRHluYW1pYyBUdW5pbmciCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ5ZGI0N2I4YWU2YWZmZjJiODk4YmUzMTI5NDhmZjUwMTM1N2RjODAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIEphbiAyIDE2OjQ4OjQyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBzZHJhbS5oIGZyb20gUE1DNDQwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMzQwNjVhMmNlMGQ4OTcyZjJlYzY2NTIwNzYwMTRhYjI0M2QyY2U4YQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgSmFuIDIgMTY6NDg6MzQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogdXNlIGNvbW1vbiBkZW5hbGkgY29yZSBkZWZpbmVzIGFuZCBkYXRhIGV5ZSBzZWFyY2ggY29kZSBmb3IgUE1DNDQwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgOWFjNmI2ZjNkM2YxYjA3MmQ4OTI2OGIyZWZlNDdlOTVlNjY1OTQ4OQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgSmFuIDIgMTI6MDU6MTQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTW9yZSBjbGVhbnVwIGZvciBlc2QncyBMQ0QgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGZlOWMyNmIzMzBhMjFjZTczZTUyYjViZDM0N2Q3MjVjYjgxZTNjZmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNCAxMjowMDowMSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggU2VxdW9pYSBOQU5EIGJvb3RpbmcgdGFyZ2V0CgogICAgVGhlIFNlcXVvaWEgTkFORCBib290aW5nIHRhcmdldCBub3cgdXNlcyB0aGUgcmVjZW50bHkgZXh0cmFjdGVkCiAgICBjcHUvcHBjNHh4L2RlbmFsaV9kYXRhX2V5ZS5jIGZpbGUgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGRkOTY5YWVjNTMyYmQ3ZWFlMzBmYzA5NTkwNDg4YTNhYWE2MjlhCkF1dGhvcjogTGF3cmVuY2UgUi4gSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBKYW4gMyAxNTowMjowMiAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBVc2UgQ0ZHXzR4eF9HUElPX1RBQkxFIHRvIGNvbmZpZ3VyZSBLb3JhdCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGIwNWU4YmY1OGJlOWQ4OTU2ZmRmZGUzZDhjOGU4N2MxNDA0MTQ2NjMKQXV0aG9yOiBMYXdyZW5jZSBSLiBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJRnJpIEphbiA0IDAyOjExOjU2IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFVzZSBDRkdfNHh4X0dQSU9fVEFCTEUgdG8gY29uZmlndXJlIFNlcXVvaWEgYm9hcmQKCiAgICBOb3RlOiB0aGlzIHBhdGNoIGNoYW5nZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygc29tZSBHUElPIHJlZ2lzdGVyczoKCiAgICAgICBSZWdpc3RlciAgICAgIE9sZCBWYWx1ZQkgTmV3IFZhbHVlCiAgICAtLS0tLS0tLS0tLS0tLS0gIC0tLS0tLS0tLS0gIC0tLS0tLS0tLS0KICAgIERDUiBHUElPMF9UQ1IgICAgMHgwMDAwMDAwRiAgMHgwMDAwRjBDRgogICAgRENSIEdQSU8wX1RTUkggICAweDU1MDA1MDAwICAweDAwMDAwMDAwCiAgICBEQ1IgR1BJTzFfVENSICAgIDB4QzIwMDAwMDAgIDB4RTIwMDAwMDAKICAgIERDUiBHUElPMV9UU1JMICAgMHgwQzAwMDAwMCAgMHgwMDIwMDAwMAogICAgRENSIEdQSU8xX0lTUjJMICAweDAwMDUwMDAwICAweDAwMTEwMDAwCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgNWFiODg0YjI1NGNhMmU3MDdhYjUwNTQ1Y2Q3MDVmMzAxMDhjZjQ5MQpBdXRob3I6IExhd3JlbmNlIFIuIEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglUaHUgSmFuIDMgMTg6NTQ6MDAgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogQWRkIGZ1bmN0aW9uYWxpdHkgdG8gR1BJTyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBtYWtlcyB0d28gYWRkaXRpb25zIHRvIEdQSU8gc3VwcG9ydDoKCiAgICBGaXJzdCwgaXQgYWRkcyBmdW5jdGlvbiBncGlvX3JlYWRfaW5fYml0KCkgdG8gcmVhZCB0aGUgYSBiaXQgZnJvbSB0aGUKICAgIEdQSU8gSW5wdXQgUmVnaXN0ZXIgKEdQSU94X0lSKSBpbiB0aGUgc2FtZSB3YXkgdGhhdCBmdW5jdGlvbgogICAgZ3Bpb19yZWFkX291dF9iaXQoKSByZWFkcyBhIGJpdCBmcm9tIHRoZSBHUElPIE91dHB1dCBSZWdpc3RlcgogICAgKEdQSU94X09SKS4KCiAgICBTZWNvbmQsIGl0IG1vZGlmaWVzIGZ1bmN0aW9uIGdwaW9fc2V0X2NoaXBfY29uZmlndXJhdGlvbigpIHRvIHByb3ZpZGUKICAgIGFuIGFkZGl0aW9uYWwgb3B0aW9uIGZvciBjb25maWd1cmluZyB0aGUgR1BJTyBmcm9tIHRoZQogICAgIkNGR180eHhfR1BJT19UQUJMRSIuCgogICAgQWNjb3JkaW5nIHRvIHRoZSA0NDBFUHggVXNlcidzIE1hbnVhbCwgd2hlbiBhbiBhbHRlcm5hdGUgb3V0cHV0IGlzIHVzZWQsCiAgICB0aGUgdGhyZWUtc3RhdGUgY29udHJvbCBpcyBjb25maWd1cmVkIGluIG9uZSBvZiB0d28gd2F5cywgZGVwZW5kaW5nIG9uCiAgICB0aGUgcGFydGljdWxhciBvdXRwdXQuICBUaGUgZmlyc3Qgb3B0aW9uIGlzIHRvIHNlbGVjdCB0aGUgY29ycmVzcG9uZGluZwogICAgYWx0ZXJuYXRlIHRocmVlLXN0YXRlIGNvbnRyb2wgaW4gdGhlIEdQSU94X1RSU0gvTCByZWdpc3RlcnMuICBUaGUgc2Vjb25kCiAgICBvcHRpb24gaXMgdG8gc2VsZWN0IHRoZSBHUElPIFRocmVlLVN0YXRlIENvbnRyb2wgUmVnaXN0ZXIgKEdQSU94X1RDUikgaW4KICAgIHRoZSBHUElPeF9UUlNIL0wgcmVnaXN0ZXJzLCBhbmQgc2V0IHRoZSBjb3JyZXNwb25kaW5nIGJpdCBpbiB0aGUKICAgIEdQSU94X1RDUiByZWdpc3RlciB0byBlbmFibGUgdGhlIG91dHB1dC4gIEZvciBleGFtcGxlLCB0aGUgTWFudWFsCiAgICBzcGVjaWZpZXMgY29uZmlndXJpbmcgdGhlIEdQSU8wMCBBbHRlcm5hdGUgMSBTaWduYWwgKFByZUFkZHIwNykgdG8gdXNlCiAgICB0aGUgYWx0ZXJuYXRlIHRocmVlLXN0YXRlIGNvbnRyb2wgKGZpcnN0IG9wdGlvbiksIGFuZCBzcGVjaWZpZXMKICAgIGNvbmZpZ3VyaW5nIHRoZSBHUElPMzIgQWx0ZXJuYXRlIDEgU2lnbmFsIChVU0IyT00wKSB3aXRoIHRoZSBvdXRwdXQKICAgIGVuYWJsZWQgaW4gdGhlIEdQSU94X1RDUiByZWdpc3RlciAoc2Vjb25kIG9wdGlvbikuCgogICAgQ3VycmVudGx5LCBncGlvX3NldF9jaGlwX2NvbmZpZ3VyYXRpb24oKSBjb25maWd1cmVzIGFsbCBhbHRlcm5hdGUgc2lnbmFsCiAgICBvdXRwdXRzIHRvIHVzZSB0aGUgZmlyc3Qgb3B0aW9uLiAgVGhpcyBwYXRjaCBhbGxvdyB0aGUgc2Vjb25kIG9wdGlvbiB0bwogICAgYmUgc2VsZWN0ZWQgYnkgc2V0dGluZyB0aGUgIm91dF92YWwiIGVsZW1lbnQgaW4gdGhlIHRhYmxlIGVudHJ5IHRvCiAgICAiR1BJT19PVVRfMSIuICBUaGUgZmlyc3Qgb3B0aW9uIGlzIHVzZWQgd2hlbiB0aGUgIm91dF92YWwiIGVsZW1lbnQgaXMKICAgIHNldCB0byAiR1BJT19PVVRfMCIuICBCZWNhdXNlICJvdXRfdmFsIiBpcyBub3QgY3VycmVudGx5IHVzZWQgd2hlbiBhbgogICAgYWx0ZXJuYXRlIHNpZ25hbCBpcyBzZWxlY3RlZCwgYW5kIGJlY2F1c2UgYWxsIGN1cnJlbnQgR1BJTyB0YWJsZXMgc2V0CiAgICAib3V0X3ZhbCIgdG8gIkdQSU9fT1VUXzAiIGZvciBhbGwgYWx0ZXJuYXRlIHNpZ25hbHMsIHRoaXMgcGF0Y2ggc2hvdWxkCiAgICBub3QgY2hhbmdlIGFueSBleGlzdGluZyBjb25maWd1cmF0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAxOTY0MDRjZGMxZGU0OTVkNjE4MmU4NDczMWMyMDBmYzU3NDhkZjE1CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDE6MDE6NTQgMjAwNyAtMDUwMAoKICAgIFBQQzR4eDogUmVtb3ZlIHNkcmFtLmggZnJvbSBib2FyZC9sd21vbjUKCiAgICBUaGVzZSBkZWZpbml0aW9ucyBhcmUgbm93IGluICJpbmNsdWRlL3BwYzQ0MC5oIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBlZjE2ZmNjZjk2ZTU1ZWFiOTNmZTI1ZDAzZWJlMmU5YjU2ZTUzMzJiCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDE6MDE6MzIgMjAwNyAtMDUwMAoKICAgIFBQQzR4eDogVXNlIGNvbW1vbiBjb2RlIGZvciBMV01PTjUgYm9hcmQgU0RSQU0gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgY29kZSBzbyB0aGF0IHRoZSBkYXRhLWV5ZQogICAgc2VhcmNoIGlzIG5vdyBkb25lIHdpdGggd2l0aCB0aGUgY2FjaGUgZGlzYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgNjJjYzM5NTFhYjcyMTM1ZDljMTAxZjE4NDViNzk0ZTYzYTBmYTE4OQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTdW4gRGVjIDMwIDAxOjAxOjE0IDIwMDcgLTA1MDAKCiAgICBQUEM0eHg6IFJlbW92ZSBzZHJhbS5oIGZyb20gYm9hcmQvYW1jYy9zZXF1b2lhCgogICAgVGhlc2UgZGVmaW5pdGlvbnMgYXJlIG5vdyBpbiAiaW5jbHVkZS9wcGM0NDAuaCIuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgY2UzOTAyZTE3NjViYmZiMDdjZjViYmU5OGJlOWE2OGUzMDA5OTk2YQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTdW4gRGVjIDMwIDAxOjAwOjUwIDIwMDcgLTA1MDAKCiAgICBQUEM0eHg6IFVzZSBjb21tb24gY29kZSBmb3IgU2VxdW9pYSBib2FyZCBTRFJBTSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOGIwYzVjMTI3NjkwMzM1NzU4MTAwYzI1ZWFlYzJiODRkYjk3YzEwMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE2OjU4OjQxIDIwMDcgKzAxMDAKCiAgICBuZXQ6IEFkZCBDT05GSUdfTkVUX0RPX05PVF9UUllfQU5PVEhFUiBvcHRpb24KCiAgICBXaGVuIENPTkZJR19ORVRfRE9fTk9UX1RSWV9BTk9USEVSIGlzIGRlZmluZWQgVS1Cb290J3MKICAgIG5ldHdvcmtpbmcgc3RhY2sgZG9lcyBub3QgYXV0b21hdGljYWxseSBzd2l0Y2ggdG8KICAgIGFub3RoZXIgaW50ZXJmYWNlLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRvdWNoIHRoZSBkZWZhdWx0CiAgICBiZWhhdmlvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNTA1YmU4N2E2NWU0Zjg3YWQ3ZDhkYTFkNTdlYTRkY2Q0ODdkN2UzMgpBdXRob3I6IFVwYWt1bCBCYXJrYWthdHkgPHVwYWt1bEBnbWFpbC5jb20+CkRhdGU6CVRodSBOb3YgMjkgMTI6MTY6MTMgMjAwNyArMDUzMAoKICAgIE5FVDogUHJvcGVyIHJldHVybiBjb2RlIGhhbmRsaW5nIGluIGV0aF9pbml0KCkgZnVuY3Rpb24gaW4gZmlsZSBldGguYwoKICAgIFRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIHJldHVybiBjb2RlIGhhbmRsaW5nIGluIHRoZSBldGhfaW5pdCgpCiAgICBmdW5jdGlvbiwgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHRoZSBoYW5kbGluZyBvZiB0aGUgcmV0dXJuIGNvZGVzIGluCiAgICB0aGUgb3RoZXIgbmV0d29yayBzdGFjayBmaWxlcy4gSXQgbm93IHJldHVybnMgYSAwIG9uIFN1Y2Nlc3MgYW5kIC0xIG9uCiAgICBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBVcGFrdWwgQmFya2FrYXR5IDx1cGFrdWwuYmFya2FrYXR5QGNvbmV4YW50LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNWNhMmQwOTUzZTQ1NzlhODA4MTA5NjZjY2EyMDc3ZTIwZDkxMmM5NwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAyMDoyNzowNCAyMDA3ICswOTAwCgogICAgbmV0L2V0aC5jOiBGaXggZW52X2VuZXRhZGRyIHNpZ25lZCBvdmVyZmxvdwoKICAgIEFzc2lnbmluZyB0aGUgb3V0cHV0IG9mIHNpbXBsZV9zdHJ0b3VsKENCOkE5Ojg3OjY1OjQzOjIxKSB0byBgY2hhcicsIHdlIGFyZQogICAgd2FybmVkIGFzIGJlbG93OgoKICAgICAgVS1Cb290IDEuMi4wIChBdWcgMzAgMjAwNyAtIDA4OjI3OjM3KQoKICAgICAgRFJBTTogIDI1NiBNQgogICAgICBGbGFzaDogMzIgTUIKICAgICAgSW46ICAgIHNlcmlhbAogICAgICBPdXQ6ICAgc2VyaWFsCiAgICAgIEVycjogICBzZXJpYWwKICAgICAgTmV0OiAgIE5FQy1DYW5keQogICAgICBXYXJuaW5nOiBORUMtQ2FuZHkgTUFDIGFkZHJlc3NlcyBkb24ndCBtYXRjaDoKICAgICAgQWRkcmVzcyBpbiBTUk9NIGlzCSAwMDowMDo0Qzo4MDo5MjpBMgogICAgICBBZGRyZXNzIGluIGVudmlyb25tZW50IGlzICBGRkZGRkZDQjpGRkZGRkZBOTpGRkZGRkY4Nzo2NTo0MzoyMQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBlbnZfZW5ldGFkZHIgdHlwZSBmcm9tIGBjaGFyJyB0byBgdW5zaWduZWQgY2hhcicuCgogICAgQ2M6IE1hc2FraSBJc2hpa2F3YSA8aXNoaWthd2EtbWFzYWtpQGNudC5teGUubmVzLm5lYy5jby5qcD4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZjg1YjYwNzEwNTcxYjM3MjkzZDIyMzM5MzNiNzZlMmFhM2RiNTYzNQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTg6MTk6MDIgMjAwNyArMDEwMAoKICAgIEludHJvZHVjZSBuZXcgZXRoX3JlY2VpdmUgcm91dGluZQoKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgcm91dGluZSBpcyByZWNlaXZpbmcgYSBzaW5nbGUgbmV0d29yayBmcmFtZSwgb3V0c2lkZSBvZgogICAgVS1Cb290J3MgTmV0TG9vcCgpLiBFeHBvcnRpbmcgaXQgdG8gc3RhbmRhbG9uZSBwcm9ncmFtcyB0aGF0IHJ1biBvbiB0b3Agb2YKICAgIFUtQm9vdCB3aWxsIGxldCB0aGVtIHV0aWxpc2UgbmV0d29ya2luZyBmYWNpbGl0aWVzLiBGb3Igc2VuZGluZyBhIHJhdyBmcmFtZQogICAgdGhlIGFscmVhZHkgZXhpc3RpbmcgZXRoX3NlbmQoKSBjYW4gYmUgdXNlZC4KCiAgICBUaGUgZGlyZWN0IGNvbnN1bWVyIG9mIHRoaXMgcm91dGluZSBpcyB0aGUgbmV3bHkgaW50cm9kdWNlZCBBUEkgbGF5ZXIgZm9yCiAgICBleHRlcm5hbCBhcHBsaWNhdGlvbnMgKGVuYWJsZWQgd2l0aCBDT05GSUdfQVBJKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNWM3NDA3MTFmMGVhNWI1MTQxNGIzNDFiNzE1OTdjNGEwNzUxYmU3NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMyAxMDo0MTowNCAyMDA4IC0wNjAwCgogICAgODYxMDogTW92ZSBpbmNsdWRlIG9mIGNvbmZpZy5oIGVhcmxpZXIuCgogICAgSW5jbHVkZSBjb25maWcuaCBlYXJsaWVyIGluIHRoZSBzZXQgb2YgI2luY2x1ZGVzCiAgICBzbyBhcyB0byBhdm9pZCBhIGluY2lkZW50YWwgYW5kIGR1cGxpY2F0ZSBkZWZpbml0aW9uCiAgICBvZiBDRkdfQ0FDSEVMSU5FX1NJWkUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyCgpjb21taXQgNjFkMzQyMWJkZWEwOTBiZDAzOTliMTRjM2UxMGEzYmViY2M4ZDVmZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgNCAxMDo1MzozNCAyMDA3IC0wNjAwCgogICAgRG9uJ3Qgc2xhbSAjdW5kZWYgREVCVUcgaW4gdGhlIDg2NDFIUENOIGNvbmZpZyBmaWxlLgoKICAgIERvaW5nIHNvIHByZXZlbnRzIGl0IGZyb20gYmVpbmcgaW5kaXZpZHVhbGx5IHNldAogICAgYW5kIHVzZWZ1bCBpbiBvdGhlciBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVhOWY3Mzk1ZWMzNjI1ODRlNWU0ZjI2NmJkMGIwYzQ0MjJjZjZhNGMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDI4IDE0OjQ3OjE4IDIwMDcgLTA2MDAKCiAgICBDb252ZXJ0IE1QQzg2NDFIUENOIHRvIHVzZSBsaWJmZHQuCgogICAgQXNzdW1lcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIGFsaWFzZXMgbm9kZSBpbiB0aGUgRFRTIHRvCiAgICBsb2NhdGUgdGhlIGV0aGVybmV0LCBwY2kgYW5kIHNlcmlhbCBub2RlcyBmb3IgZml4dXBzLgoKICAgIFVzZSBjb25zaXN0ZW50IGZkdGFkZHIgYW5kIGZkdGZpbGUgaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2UzNzQyMmQwMDAyZTEwNDkwZTI2ODM5MmUwYzRlMzAyOGU1MmNlYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyIDE0OjA2OjI2IDIwMDggKzAxMDAKCiAgICBjZmlfZmxhc2g6IEZpeCBidWcgaW4gZmxhc2hfaXNzZXQoKSB0byB1c2UgY29ycmVjdCAzMmJpdCBmdW5jdGlvbgoKICAgIFRoaXMgYnVnIHdhcyBkZXRlY3RlZCBvbiB0aGUgTFdNT041IHRhcmdldCB3aGljaCBoYXMgMiBJbnRlbCAxNmJpdCB3aWRlCiAgICBmbGFzaCBjaGlwcyBjb25uZWN0ZWQgdG8gYSAzMmJpdCB3aWRlIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDExODJlOWY4ZTNiOTJmYzM3MmQ2NDk0MzI5M2RlNTNkYWEyZTI2Y2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTU6NTg6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxlIHByb2JsZW0gaW50cm9kdWNlZCBieSAiY2xlYW51cCIgY29tbWl0IDNkZmQ3MDhjCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYWFhYjliZmFlMGIzYjJlZTJiNDE4YzIyYzY1MTI4MGVlN2I2NWM3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyIDE1OjU0OjQ1IDIwMDggKzAxMDAKCiAgICBNYWtlIHNjcmlwdHMgYW5kIE1ha2VmaWxlcyBQT1NJWCBjb21wbGlhbnQKCiAgICBUaGUgYmFzaCBidWlsdGluIHZlcnNpb25zIG9mIHRoZSAidGVzdCIgKHJlc3AuICJbIikgY29tbWFuZCBhbGxvdwogICAgdXNpbmcgIj09IiBmb3Igc3RyaW5nIGNvbXBhcmlzb25zLCBidXQgUE9TSVggY29tcGF0aWJsZSBpbXBsZW1lbi0KICAgIHRhdGlvbnMgKGxpa2UgL3Vzci9iaW4vdGVzdCkgaW5zaXN0IG9uIHVzaW5nICI9IiBvbmx5LiBPbiBzdWNoIHN5c3RlbXMKICAgIHlvdSB3aWxsIHNlZToKCgkkIC91c3IvYmluL3Rlc3QgYSA9PSBhICYmIGVjaG8gT0sKCS91c3IvYmluL3Rlc3Q6ID09OiBiaW5hcnkgb3BlcmF0b3IgZXhwZWN0ZWQKCiAgICBUaGlzIHBhdGNoIGZpeGVzIE1ha2VmaWxlcyBhbmQgc2NyaXB0cyB0byB1c2UgUE9TSVggc3R5bGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0N2NjMjNjYmU5YTY2OWM1MTAxODNmNGYwNDliZjcwM2VmNDQ1ZjNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTQ6MDU6MzcgMjAwOCArMDEwMAoKICAgIGNmaV9mbGFzaDogRml4IGJ1ZyBpbiBmbGFzaF9pc3NldCgpIHRvIHVzZSBjb3JyZWN0IDMyYml0IGZ1bmN0aW9uCgogICAgVGhpcyBidWcgd2FzIGRldGVjdGVkIG9uIHRoZSBMV01PTjUgdGFyZ2V0IHdoaWNoIGhhcyAyIEludGVsIDE2Yml0IHdpZGUKICAgIGZsYXNoIGNoaXBzIGNvbm5lY3RlZCB0byBhIDMyYml0IHdpZGUgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2RmZDcwOGNjMWIyYTk2NmFkNDU0Y2E5ZWQxMjVkZDE3ZGJhZGJjYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxMjozODo0MyAyMDA4ICswMTAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMTc0YWMzNGFkZjVkNTY1M2RmMTJiYzNjZjE5YzUyMDYzYTcxMjY5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDI4IDE3OjI5OjU2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhiYTEzMmNhYjE4YWU0MzhiNmRkNWIwMjE0YzI4YThmYzBkOTc2ZTUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzowNzoyNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBDb21wbGV0ZSBQTUM0NDAgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYnJpbmdzIHRoZSBQTUM0NDAgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlLgogICAgRmluYWxseSBpdCBlbmFibGVzIHRoZSBQTUM0NDAgYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA0MDc4NDNhNTgyNTYwZmM1MjMxMjk5NTYxYWIzYzJiNmI2Y2QzMzk3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MDc6MTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIEZQR0Egc3VwcG9ydCBhbmQgQlNQIGNvbW1hbmRzIGZvciBQTUM0NDAgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIHNvbWUgQlNQIGNvbW1hbmRzIGFuZCBGUEdBIGJvb3Rpbmcgc3VwcG9ydAogICAgZm9yIGVzZCdzIFBNQzQ0MCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNzJjNWQ1MmFlZGNjZTM1ZTRiNGZhNTg5NTYwNTU1NDgyNWI2YTc2ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjA3OjE0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIGVzZCBQTUM0NDAgYm9hcmQgZmlsZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGZpcnN0IGZpbGVzIGZvciB0aGUgbmV3IGVzZCBQTUM0NDAgYm9hcmRzLgogICAgVGhlIG5leHQgdHdvIHBhdGNoZXMgd2lsbCBjb21wbGV0ZSB0aGUgUE1DNDQwIGJvYXJkIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZjZlMGYxZjYxODk2Y2U3NzI5YmExYmNlYTJmZmJkMTM4ZDM5NDdmNQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjEwOjM2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBFRVBST00gd3JpdGUgcHJvdGVjdGlvbiBmb3IgUExVNDA1IGJvYXJkcyArIG1pc2MuIHVwZGF0ZXMKCiAgICAtIGFkZCBFRVBST00gd3JpdGUgcHJvdGVjdGlvbiBmb3IgZXNkIFBMVTQwNSBib2FyZHMuCiAgICAtIGluaXRpYWxpemUgTkFORCBHUElPcwogICAgLSB1c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMKICAgIC0gY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDc3NjYwYzRiNTkwNTVkNjIxZDJhODU5NWJkNGMxOGJiMjc3MjY4ZmMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzoxMDo0NCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiB1c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgZm9yIGVzZCdzIExDRCBjb2RlCgogICAgVGhpcyBwYXRjaCBmaXhlcyBlc2QncyBMQ0QgZGVjdGVjdGlvbiBjb2RlIHRvIHdvcmsgY29ycmVjdGx5IHdpdGgKICAgIG5ld2VyIGdjYyB2ZXJzaW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiNTZiZDBmY2ZjMWM3M2RiNzIyZTM0NjJjOGE5YmY2MDdiYTc3NzVlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MTA6NDIgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFpbnRlbmFuY2UgcGF0Y2ggZm9yIFZPSDQwNSBib2FyZHMKCiAgICAtIGFkZCBFRVBST00gd3JpdGUgcHJvdGVjdGlvbgogICAgLSBpbml0aWFsaXplIE5BTkQgR1BJT3MKICAgIC0gdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzCiAgICAtIHNsb3cgZG93biBJMkMgY2xvY2sgdG8gMTAwa0h6CiAgICAtIGVuYWJsZSBleHQuIEkyQyBidXMKICAgIC0gY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGMwNTU2OTA2NmRiY2JhM2ZkZjM2ZDRkMTk0M2RmMjY1ZGMzMTZhODYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjggMTY6MDg6MDggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIDQwNUVQIFBDSSBhcmJpdGVyIHBlciBkZWZhdWx0IG9uIGFsbCBib2FyZHMKCiAgICBJbiBhbiBhdHRtZW10IHRvIGNsZWFuIHVwIHRoZSA0eHggc3RhcnQuUyBmaWxlLCBJIHJlbW92ZWQgdGhlIGVuYWJsaW5nCiAgICBvZiB0aGUgaW50ZXJuYWwgNDA1RVAgUENJIGFyYml0ZXIuIFRoaXMgaXMgbmVlZGVkIGZvciBtdWx0aXBsZSBvdGhlcgogICAgNDA1RVAgcGxhdGZvcm1zLCBsaWtlIG1vc3Qgb2YgdGhlIGVzZCA0MDVFUC4gTm93IHRoZSBpbnRlcm5hbCBQQ0kKICAgIGFyYml0ZXIgaXMgZW5hYmxlZCBhZ2FpbiBwZXIgZGVmYXVsdCBhcyBpdCBoYXMgYmVlbiBiZWZvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGJlYzkyNjQ2MTZmYjc4MjczYTFkOTNlODdmZjRiMGI2N2M3YmVjMWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjggMTU6NTM6NDYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGJ1ZyBpbiBjcHVfaW5pdC5jICg0MDVFUCBpbnN0ZWFkIG9mIDQ1MEVQKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmYjgzYTY1YzYwYWI1Y2ExMjM1OGI3NWYxMjU3ZTVlZWU2Y2RiZjc5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRGVjIDI4IDA2OjA2OjA0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtIG9mIGtpbGF1ZWEvaGFsZWFrYWxhIG5hbmQgYm9vdGluZyB0YXJnZXQKCiAgICBVc2UgY29ycmVjdCBsaW5rIHRvIG5hbmRfZWNjIG5vdyBsb2NhdGVkIGluIGRyaXZlcnMvbXRkL25hbmQvIGZvciB0aGUKICAgIHBsYXRmb3JtcyBtZW50aW9uZWQgYWJvdmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI1NjhmZDI1NTc0MTgxYTNiMTJhZTNkNjZiMjkxMzkwMzQ0MmNiODMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzowMzo0NiAyMDA3ICswMTAwCgogICAgUmVtb3ZlIENQQ0k0NDAgYm9hcmQKCiAgICBUaGlzIGJvYXJkIG5ldmVyIGxlZnQgcHJvdG90eXBpbmcgc3RhdGUgYW5kIGl0CiAgICBiZWNhbWUgYSBtaWxsc3RvbmUgcm91bmQgbXkgbmVjay4gU28gcmVtb3ZlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGM1OTFkZmZlMGNiYWNkODk2Y2NiYWQwNjAxMWZlNmQ2YWZhMDgwZGEKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxMToyODo1MSAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEtvcmF0IFBQQzQ0MEVQeCBib2FyZAoKICAgIFRoZXNlIHBhdGNoZXMgYWRkIHN1cHBvcnQgZm9yIHRoZSBQUEM0NDBFUHgtYmFzZWQgIktvcmF0IiBib2FyZCB0bwogICAgVS1Cb290LiAgVGhleSBhcmUgYmFzZWQgcHJpbWFyaWx5IG9uIHN1cHBvcnQgZm9yIHRoZSBTZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDg3ZGMwOTY4MjllNmE2MzYzZjRmZGQ3MzY1M2IwMDkzYTg1YWRiZTAKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNToxNjoyNSAyMDA3IC0wNTAwCgogICAgQWRkIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgS29yYXQgYm9hcmQKCiAgICBUaGlzIHBhdGNoIHN1cHBsaWVzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBLb3JhdCBQUEM0NDBFUHgtCiAgICBwcm9jZXNzb3IgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOGViNTJkNWQ5ODJiNzY0YjM5Yzg4ZDlkMTA2NGQ1NmM1Mzk3YmZhNQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE2OjExIDIwMDcgLTA1MDAKCiAgICBBZGQgZGVuYWxpX2RhdGFfZXllLm8gYW5kIGRlbmFsaV9zcGRfZGRyMi5vIHRvIFBQQzR4eCBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGFiYTE5NjA0ZDg0OGIyODM4Y2ZiOWViZTgxODkwOWU2YTIxNjA1OGUKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxMDo1NDo0OCAyMDA3IC0wNTAwCgogICAgQWRkIDQ0MEVQeCBERFIyIFNQRCBESU1NIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgU1BEIEREUjIgc3VwcG9ydCBmb3IgdGhlIDQ0MEVQeCAoIkRlbmFsaSIpIFNEUkFNCiAgICBjb250cm9sbGVyLiAgSXQgc2hvdWxkIGFsc28gd29yayBvbiB0aGUgNDQwR1J4LiAgSXQgaXMgYmFzZWQgb24gdGhlIEREUjIKICAgIFNQRCBjb2RlIGZvciB0aGUgNDQwRVAvNDQwRVB4LCBidXQgbWFrZXMgbm8gcHJvdmlzaW9uIGZvciBERFIxIHN1cHBvcnQuCgogICAgVGhpcyBjb2RlIGhhcyBiZWVuIHRlc3RlZCBvbiBwcm90b3R5cGUgS29yYXQgYm9hcmRzIHdpdGggdGhyZWUgS2luZ3N0b24KICAgIERJTU1TOiA1MTIgTWlCIEVDQyAob25lIHJhbmspLCA1MTIgTWlCIG5vbi1FQ0MgKG9uZSByYW5rKSBhbmQgMSBHaUIgRUNDCiAgICAodHdvIHJhbmtzKS4gIFRoZSBLb3JhdCBib2FyZCBoYXMgYSBzaW5nbGUgRElNTSBzb2NrZXQsIGJ1dCBzdXBwb3J0IGhhcwogICAgYmVlbiBwcm92aWRlZCAodGhvdWdoIG5vdCB0ZXN0ZWQpIGZvciBib2FyZHMgd2l0aCB0d28gRElNTSBzb2NrZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDhhMjRhNjk2MzAwMmNiODY3ZDVhNmI3MGUzNTYwZjBiMTQ2N2Y1NWYKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IERlYyAyMiAxNToxNTozMCAyMDA3IC0wNTAwCgogICAgQ29weSA0NDBFUHgvR1J4IFNEUkFNIGRhdGEtZXllIHNlYXJjaCB0byBjb21tb24gZGlyZWN0b3J5CgogICAgVGhpcyBwYXRjaCBjcmVhdGVzIGEgbm9uLWJvYXJkLXNwZWNpZmljIGZpbGUgZm9yIHBlcmZvcm1pbmcgdGhlIFNEUkFNCiAgICBkYXRhLWV5ZSBzZWFyY2guICBJdCBhbHNvIGFkZHMgRUNDIGVycm9yIGNoZWNraW5nIHRvIHRoZSB0ZXN0IG9mIHZhbGlkCiAgICBkYXRhIG9uIHJlYWRiYWNrIHdoZW4gRUNDIGlzIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYzQ2ZjUzMzMzYjIyYjFmOTA5ODY3NmJlYTg4ODRmYzdkYjgyMGNmMwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE1OjEzIDIwMDcgLTA1MDAKCiAgICBBZGQgZGVmaW5pdGlvbnMgZm9yIDQ0MEVQeC9HUnggU0RSQU0gY29udHJvbGxlciB0byBwcGM0NDAuaAoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgRGVuYWxpIFNEUkFNIGNvbnRyb2xsZXIgZGVmaW5pdGlvbnMgdG8gInBwYzQ0MC5oIi4KICAgIEl0IGFsc28gZml4ZXMgdHdvIHR5cG9zIGluIHRoZSBkZWZpbml0aW9ucywgc28gdGhlIGJvYXJkLXNwZWNpZmljCiAgICAic2RyYW0uaCIgZmlsZXMgY29udGFpbmluZyB0aGVzZSBkZWZpbml0aW9ucyBhcmUgYWxzbyBmaXhlZCB0byBhdm9pZAogICAgY29tcGlsZXIgd2FybmluZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYzM0ODU3OGJmNjEyZDBjNTZkOGQzNzZkMjNjYWUxNmRlZmJkODZhZgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgRGVjIDI3IDEwOjUwOjU1IDIwMDcgLTA1MDAKCiAgICBBZGQgRXRoZXJuZXQgMTAwMEJBU0UtWCBzdXBwb3J0IGZvciBQUEM0eHgKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgc3dpdGNoOiAiQ09ORklHX1BIWV9EWU5BTUlDX0FORUciLiAgV2hlbiB0aGlzIHN5bWJvbAogICAgaXMgZGVmaW5lZCwgdGhlIFBIWSB3aWxsIGFkdmVydGlzZSBpdCdzIGNhcGFiaWxpdGllcyBmb3IgYXV0b25lZ290aWF0aW9uCiAgICBiYXNlZCBvbiB0aGUgY2FwYWJpbGl0aWVzIHNob3duIGluIHRoZSBQSFkncyBzdGF0dXMgcmVnaXN0ZXJzLCBpbmNsdWRpbmcKICAgIDEwMDBCQVNFLVguICBXaGVuICJDT05GSUdfUEhZX0RZTkFNSUNfQU5FRyIgaXMgbm90IGRlZmluZWQsIHRoZSBQSFkgd2lsbAogICAgYWR2ZXJ0aXNlIGhhcmQtY29kZWQgY2FwYWJpbGl0aWVzLCBhcyBiZWZvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOWUyYzM0NzE1MWRiNWFlOGFjZjVmMThiOTk0OTNjZDUzZTY2MzdlMwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgRGVjIDI3IDA5OjUyOjE3IDIwMDcgLTA1MDAKCiAgICBBZGQgZHJpdmVyIGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNzMgdGVtcGVyYXR1cmUgc2Vuc29yCgogICAgVGhpcyBkcml2ZXIgaXMgYmFzZWQgb24gdGhlIGRyaXZlciBmb3IgdGhlIExNNzUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMTI2MTgyNzg2ODhlYTliM2Q3NjUzNjk2MGE1YWQyZTM3OTBmYWM0MApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE0OjAwIDIwMDcgLTA1MDAKCiAgICBBZGQgZHJpdmVyIGZvciBTVE1pY3JvZWxlY3Ryb25pY3MgTTQxVDYwIFJUQwoKICAgIFRoaXMgZHJpdmVyIGlzIGJhc2VkIG9uIHRoZSBkcml2ZXIgZm9yIHRoZSBNNDFUMTEuCUluIHRoZSBpbnRlbmRlZAogICAgYXBwbGljYXRpb24sIHRoZSBSVEMgd2lsbCBiZSBwb3dlcmVkIGJ5IGEgbGFyZ2UgY2FwYWNpdG9yLCByYXRoZXIgdGhhbiBhCiAgICBiYXR0ZXJ5LiAgVGhlIGRyaXZlciB0aGVyZWZvcmUgY2hlY2tzIHRvIHNlZSB3aGV0aGVyIHRoZSBSVEMgaGFzIGxvc3QKICAgIHBvd2VyLiAgVGhlIGNoaXAncyBPVVQgYml0IGlzIG5vcm1hbGx5IHJlc2V0IGZyb20gaXRzIHBvd2VyLXVwIHN0YXRlLiAgSWYKICAgIHRoZSBPVVQgYml0IGlzIHJlYWQgYXMgc2V0LCBvciBpZiB0aGUgZGF0ZSBhbmQgdGltZSBhcmUgbm90IHZhbGlkLCB0aGVuIHRoZQogICAgUlRDIGlzIGFzc3VtZWQgdG8gaGF2ZSBsb3N0IHBvd2VyLCBhbmQgaXRzIGRhdGUgYW5kIHRpbWUgYXJlIHJlc2V0IHRvCiAgICAxOTAwLTAxLTAxIDAwOjAwOjAwLgoKICAgIFN1cHBvcnQgZm9yIGFkanVzdGluZyB0aGUgc3BlZWQgb2YgdGhlIGNsb2NrIHRvIGltcHJvdmUgYWNjdXJhY3kgaXMKICAgIHByb3ZpZGVkIHRocm91Z2ggYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZDM0NzExNzNlMTRiNzU0NGJiNjAzMzllZGE4ZDNkMzkwNjY5NGIwYQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjM0OjM5IDIwMDcgLTA1MDAKCiAgICBVc2Ugb3V0X2JlMzIoKSBhbmQgZnJpZW5kcyB0byBhY2Nlc3MgbWVtb3J5LW1hcHBlZCByZWdpc3RlcnMgaW4gc2VxdW9pYS5jCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYzY4ZjU5ZmUzZWMxNjc2OWY4MmI1ZmNhNzQyMTk4M2MzMzZkM2FhYwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjM0OjIwIDIwMDcgLTA1MDAKCiAgICBVc2UgZGVmaW5pdGlvbnMgZnJvbSAiYXNtLXBwYy9tbXUuaCIgaW4gaW5pdC5TIGZvciBTZXF1b2lhCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMGQ5Y2RlYWMxZDNmYThkNjJlZDdkODgzYWNjOTUwYzM2NGY1YmRhOApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjIzOjUwIDIwMDcgLTA1MDAKCiAgICBDb3NtZXRpYyBjaGFuZ2VzIHRvIEVDQyBQT1NUIGZvciBBTUNDIERlbmFsaSBjb3JlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMmU1ODNkNmM4MTAzNGY4MGEyNjdiODlmYTU1NDk4YWUwNjNjY2VmMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIERlYyAyNiAyMDoyMDoxOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gcHJvYmxlbSBpbiA0MDUgY2FjaGUgUE9TVCB0ZXN0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyZDU1ZWEwYmRlMDZlNDdkNWEzYjQ5YjBkOTEwMDJhY2Q4ZTU3MDgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgMjIgMTI6MjA6MDkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTW92ZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgUE9TVCBjYWNoZSB0ZXN0IHRvIGJpZ2dlciBhZGRyZXNzCgogICAgT24gU2VxdW9pYSAmIExXTU9ONSB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBQT1NUIGNhY2hlIHRlc3QgaXMgbm93CiAgICBtb3ZlZCB0byBhIGJpZ2dlciBhZGRyZXNzLiBUaGlzIGVuYWJsZXMgdXNhZ2Ugb2YgbW9yZSBtZW1vcnkgb24gdGhvc2UKICAgIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDkxNzIyMTAyY2Y2M2Y3N2EwMTQ4ZWQzZjNkNTRhMjZkODc1NzVlOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IERlYyAyMiAxMjoxODoyNiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiA0NHggY2FjaGUgUE9TVCByb3V0aW5lCgogICAgQXMgcmVwb3RlZCBieSBMYXJyeSBKb2huc29uLCBydW5uaW5nICJkaWFnIHJ1biBjYWNoZSIgY2F1c2VkIGEgY3Jhc2gKICAgIGluIFUtQm9vdC4gVGhpcyBwcm9ibGVtIHdhcyBpbnRyb2R1Y2VkIGJ5IGEgcGF0Y2ggdGhhdCByZW1vdmVkIHRoZQogICAgVExCIGVudHJ5IGZvciB0aGUgY2FjaGUgdGVzdCBhZnRlciB0aGUgdGVzdCBoYXMgY29tcGxldGVkLiBTaW5jZSB0aGlzCiAgICBUTEIgd2FzIG9ubHkgc2V0dXAgb25jZSwgYSAybmQgYXR0ZW1wdCB0byBydW4gdGhpcyBjYWNoZSB0ZXN0CiAgICBmYWlsZWQgd2l0aCBhIGNyYXNoLiBOb3cgdGhpcyBUTEIgZW50cnkgaXMgY3JlYXRlZCBldmVyeSB0aW1lIHRoZQogICAgcm91dGluZSBpcyBjYWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGIwMjY1YjU3NmJiOGZhOTQ2NWY5OWU5OWMzMjM3NjhiNTYyZmFkYzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjEgMDc6NTE6MjkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIE1ha2FsdSBmZHQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiZjgzMjRlNGE1MDc1OGRhZmY4Y2RkZDA0YzZhMmZmOGVkNzc1YmVhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRGVjIDE5IDA5OjA1OjQwIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBmZHQgc3VwcG9ydCB0byBBTUNDIEthdG1haSBldmFsIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMyOGEzNDAzOTJhNWRmOWFhZjAwNzkyYmU5ODlkZjczZTc1MDg1OWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTggMDg6NDQ6NTEgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogZmR0OiBDbGVhbnVwIHNldHVwIG9mIGNwdSBub2RlIHNldHVwCgogICAgTm93IHRoZSBjcHUgbm9kZSBzZXR1cCAoInRpbWViYXNlLWZyZXF1ZW5jeSIgYW5kICJjbG9jay1mcmVxdWVuY3kiKSBpcwogICAgd2l0aG91dCB1c2luZyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgY3B1IG5vZGUuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUKICAgIHRvIHVzZSB0aGlzIFUtQm9vdCB2ZXJzaW9uIHdpdGggYm90aCB2ZXJzaW9ucyBvZiBjcHUtbm9kZSBuYW1pbmcKICAgICJjcHVAMCIgYW5kIHRoZSBmb3JtZXIgIlBvd2VyUEMsNDQwRVB4QDAiLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ODEyYmM0YTJlMjQzNmViYmMwY2U1YjRlOTljMWRmYzJlNzdlYjViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRGVjIDE3IDE3OjI2OjIxIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBsd21vbjUgY29tcGlsYXRpb24gcHJvYmxlbQoKICAgIE5vdyB0aGF0IHRoZSA0NDBFUHggRUNDIHRlc3QgaXMgbm90IGJvYXJkIHNwZWNpZmljIGFueW1vcmUKICAgIHJlbW92ZSB0aGlzIE1ha2VmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MmVkMzNmZmUxMzVmNjE4NjgwZjlkNmU5NzEyZWIzNWE4NWJjYjYyCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdHNjaGluQHQtb25saW5lLmRlPgpEYXRlOglXZWQgRGVjIDUgMTc6NDM6MjAgMjAwNyArMDEwMAoKICAgIEZpeCBwcGM0eHggY2xlYXJfYnNzKCkgY29kZQoKICAgIHBwYzR4eCBjbGVhcl9ic3MoKSBmYWlscyBpZiBCU1Mgc2VnbWVudCBzaXplIGlzIG5vdAogICAgZGl2aXNpYmxlIGJ5IDQgd2l0aG91dCByZW1haW5kZXIuIFRoaXMgcGF0Y2ggcHJvdmlkZXMKICAgIGZpeCBmb3IgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA4NWRjMmE3ZjgyZDExZTE3ZjBjYTJhNDQ4MTE4YWVkN2Y3YTRiODVkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIE5vdiAzMCAxODozNToxMSAyMDA3ICswMTAwCgogICAgUFBDNHh4OiBNaW5pbWFsIGNoYW5nZXMgdG8gYWRkIHZ4V29ya3Mgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMDUyNDQwYjAyMmNhODk4MWQzOWI2ZjhjMTBkMWFhNjMyNmY0NzQ4MApBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMjMgMTM6MDk6MTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIENPTkZJR19CT09UUF9TVUJORVRNQVNLIHRvIFNlcXVvaWEgYm9hcmQgY29uZmlnCgogICAgV2hlbiB1c2luZyBkaGNwL2Jvb3RwIHRoZSAibmV0bWFzayIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90CiAgICBzZXQgYmVjYXVzZSBDT05GSUdfQk9PVFBfU1VCTkVUTUFTSyBpcyBub3QgZGVmaW5lZC4gQnV0IHVzdWFsbHkgdGhpcyBpcwogICAgZGVzaXJlYWJsZSwgc28gdGhlIGZvbGxvd2luZyBwYXRjaCBhZGRzIHRoaXMgdGhpcyBvcHRpb24gdG8gdGhlIGJvYXJkCiAgICBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNzI0YTliNDBjN2ZiZWI2YWRlMTkzY2E1MjMyMWI0NDFlYWVjYjRlCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBPY3QgMjcgMTI6NDg6MTUgMjAwNyAtMDQwMAoKICAgIEZpeC9lbmhhbmNlIEVDQyBQT1NUIGZvciA0NDBFUHgvR1J4CgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdGhlIEVDQyBQT1NUIHRvIGJlIHVzZWQgZm9yIGRpZmZlcmVudCBib2FyZHMgd2l0aCB0aGUKICAgIFBQQzQ0MCBEZW5hbGkgU0RSQU0gY29udHJvbGxlci4gIE1vZGlmaWNhdGlvbnMgaW5jbHVkZSBza2lwcGluZyB0aGUgdGVzdAogICAgaWYgRUNDIGlzIG5vdCBlbmFibGVkIChhcyBmb3Igbm9uLUVDQyBESU1NcykgYW5kIGFkZGluZyBzeW5jaHJvbml6YXRpb24KICAgIHRvIHByZXZlbnQgdGltaW5nIGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA0NTRhNmNmOGQ0OThmNzBkMmIzZTE4ZjA3ODM3NjAzZWIyNGIxMmQ0CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBPY3QgMjcgMTI6NDg6MDUgMjAwNyAtMDQwMAoKICAgIFBQQzR4eDogTW92ZS9yZW5hbWUgRUNDIFBPU1QgZm9yIDQ0MEVQeC9HUngKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjMjlkMmQzNjgwMDQ2ZDQzMDAyMmM1NWU1MGZjYjI3ZjU4NjY1MTdlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTE6MjA6MzMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzIGZvciA0eHggZXRoZXJuZXQgUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGJhNzlmZGU1OGE0OGMwYTZmZjhlMmE5NmNhYmE5NTE1OTQxNDIyMDMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxMToxOTo1NiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBmaXggZmx1c2ggKyBpbnZhbGlkYXRlX2RjYWNoZV9yYW5nZSBhcmd1bWVudHMKCiAgICBmbHVzaCArIGludmFsaWRhdGVfZGNhY2hlX3JhbmdlKCkgZXhwZWN0IHRoZSBzdGFydCBhbmQgc3RvcCsxIGFkZHJlc3MuCiAgICBTbyB0aGUgc3RvcCBhZGRyZXNzIGlzIHRoZSBmaXJzdCBhZGRyZXNzIGJlaGluZCAoISkgdGhlIHJhbmdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDg3MWU2Y2UxODhhN2M2YmM3MzIxYmNmODM3Mjg1NzAzNWQyMGYxY2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMTQgMDg6NDE6MjkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogZmR0OiB1c2UgZmR0X2ZpeHVwX2V0aGVybmV0KCkKCiAgICBCeSB1c2luZyBhbGlhc2VzIGluIHRoZSBkdHMgZmlsZSwgdGhlIGV0aGVybmV0IG5vZGUgZml4dXAgaXMKICAgIG11Y2ggZWFzaWVyIHdpdGggdGhlIHJlY2VudGx5IGFkZGVkIGZ1bmN0aW9ucy4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBkdHMgZmlsZSBuZWVkcyB0aGUgYWxpYXNlcyBmb3IgdGhpcyB0byB3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMzYyODg4NDdlM2IwNGYyZmYzNTdhMDY3YWQ0NWUxMGFmYTBhMjRjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDEzIDE0OjUyOjUzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEJyaW5nIDR4eCBmZHQgc3VwcG9ydCB1cC10by1kYXRlCgogICAgVGhpcyBwYXRjaCB1cGRhdGUgdGhlIDR4eCBmZHQgc3VwcG9ydC4gSXQgZW5hYmxlZCBmZHQgYm9vdGluZwogICAgb24gdGhlIEFNQ0MgS2lsYXVlYSBhbmQgU2VxdW9pYSBmb3Igbm93LiBNb3JlIGNhbiBmb2xsb3cgbGF0ZXIKICAgIHF1aXRlIGVhc2lseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRjODBlMjc1OWZiYTg1OWNjYzRjZGFkYzYzMzU3N2NhMjk3MWYzZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyNyAwNzo1MDo1NCAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgbWlzc2luZyBjaGVjayBmb3IgZXJhc2VkIGRlc3QgdG8gZmxhc2hfd3JpdGVfY2ZpYnVmZmVyKCkKCiAgICBUaGUgY2hlY2sgZm9yIGFuIHN1ZmZpY2llbnRseSBlcmFzZWQgZGVzdGluYXRpb24gd2FzIG1pc3NpbmcgaW4gdGhlCiAgICBidWZmZXJlZCB3cml0ZSBmdW5jdGlvbiBvZiB0aGUgY2ZpIGZsYXNoIGRyaXZlciAod2hlbgogICAgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgaXMgZGVmaW5lZCkuIFRoaXMgcGF0Y2ggYWRkcyB0aGlzIGNoZWNrIHRvIHRoYXQKICAgIHdyaXRpbmcgdG8gc3VjaCBhIHJlZ2lvbiB3aWxsIGZhaWwgd2l0aCB0aGUgY3VycmVjdCBlcnJvciBtZXNzYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzM2VkNzNiYzBlMzhkMGYyYjVjMTgzZDQ2MjlkOGYyMDdlNWI5OTk0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBOb3YgMTIgMTA6NTY6MTcgMjAwNyArMDEwMAoKICAgIFNvbWUgY29uZmlndXJhdGlvbiB1cGRhdGVzIGZvciB0aGUgVFFNNTIwMCBiYXNlZCBUQjUyMDAgYm9hcmQ6CgogICAgLSBlbmFibGUgY29tbWFuZCBsaW5lIGhpc3RvcnkKICAgIC0gaW5jcmVhc2UgbWFsbG9jIHNwYWNlIChiZWNhdXNlIG9mIGJpZ2dlciBmbGFzaCBzZWN0b3JzKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGUzMThkOWU5MDIxYTBhZjc1MDgxNzFmODRlZDA5ZDBlNzlmMDI4NGUKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJVGh1IFNlcCAyNyAxMToxMDowOCAyMDA3ICswMjAwCgogICAgVFFNOHh4OiB1c2UgdGhlIENGSSBmbGFzaCBkcml2ZXIgb24gYWxsIFRRTTh4eCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCAxMWQ5ZWVjNDc5YjQ3MGVhYjkyNDJhYjkzN2ZjYTcwYTg3NmQ5Mzc2CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTYgMjAwNyArMDIwMAoKICAgIFRRTTg4NUQ6IGFkanVzdCBmb3IgZG91YmxlZCBmbGFzaCBzZWN0b3Igc2l6ZSArIHNvbWUgbWlub3IgZml4ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCAyMmQxYTU2Y2JmYjBiZmYzNGY0NzdiNGRiNmE1NWQwNzZkODI5YjgzCkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTQgMjAwNyArMDIwMAoKICAgIFRRTTg4NUQ6IEV4Y2hhbmdlZCBTRFJBTSB0aW1pbmcgYnkgYSBtb3JlIHJlbGF4ZWQgdGltaW5nLgoKICAgIENBUy1MYXRlbmN5PTIsIFdyaXRlIFJlY292ZXJ5IFRpbWUgdFdSPTIKICAgIFRoZSBtYXguIHN1cHBvcnRlZCBidXMgZnJlcXVlbmN5IGlzIDY2IE1Iei4gVGhlcmVmb3JlLCBjaGFuZ2VkCiAgICB0aHJlc2hvbGQgdG8gc3dpdGNoIGZyb20gMToxIG1vZGUgdG8gMjoxIGZyb20gODAgTUh6IHRvIDY2IE1Iei4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBiOTg4YjhjZDQ0Mzk4OWJlNjUxNjE4ODhlZWEwMTI3YWQwM2Y4NDZmCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTYgMjAwNyArMDIwMAoKICAgIFRRTTg4NUQ6IHVzZSBjYWxjdWxhdGVkIGNwdWNsayBpbnN0ZWFkIG9mIG1lYXN1cmluZyBpdAoKICAgIE9uIHRoZSBUUU04ODVEIHRoZSBtZWFzdXJlbWVudCBvZiBjcHVjbGsgd2l0aCB0aGUgUElUIHJlZmVyZW5jZQogICAgdGltZXIgaXN0IG5vdCBuZWNlc3NhcnkuIFNpbmNlIGFsbCBtb2R1bGUgdmFyaWFudHMgdXNlIHRoZSBzYW1lCiAgICBleHRlcm5hbCAxMCBNSHogb3NjaWxsYXRvciwgdGhlIGNwdWNsayBvbmx5IGRlcGVuZHMgb24gdGhlIFBMTAogICAgY29uZmlndXJhdGlvbiAtIHdoaWNoIGlzIHJlYWRhYmxlIGJ5IHNvZnR3YXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDQ5MmM3MDQ5ODY5MzQ4ZDMxMTY4ZGU4ZGFkODk2NTEzMTVlNDY4ZTAKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxqZW5zLmdlaHJsZWluQHRxcy5kZT4KRGF0ZToJVGh1IFNlcCAyNyAxNDo1NDo0NiAyMDA3ICswMjAwCgogICAgVFFNODg1RDogZml4IFNEUkFNIHJlZnJlc2gKCiAgICBBdCAxMzMgTUh6IHRoZSBjdXJyZW50IFNEUkFNIHJlZnJlc2ggcmF0ZSBpcyB0b28gZmFzdAogICAgKG1lYXN1cmVkIDQgKiAxLjE3IHVzKS4KICAgIENGR19NQU1SX1BUQSBjaGFuZ2VzIGZyb20gMzkgdG8gMTI4LiBUaGlzIHJlc3VsdAogICAgaW4gYSByZWZyZXNoIHJhdGUgb2YgNCAqIDcuOCB1cyBhdCB0aGUgZGVmYXVsdCBjbG9jawogICAgNjYgTUh6LiBBdCAxMzMgTUh6IHRoZSB2YWx1ZSB3aWxsIGJlIHRoZW4gNCAqIDMuOCB1cy4KICAgIFRoaXMgaXMgYSBjb21wcm9taXNlIHVudGlsIGEgbmV3IG1ldGhvZCBpcyBmb3VuZCB0bwogICAgYWRqdXN0IHRoZSByZWZyZXNoIHJhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZGFiYWQ0YjliYzQ2OTA4ZTMwMWY3M2NlNzZiMzhiMjM2MjZhOTZlOQpBdXRob3I6IEplbnMgR2VocmxlaW4gPGplbnMuZ2VocmxlaW5AdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDE0OjU0OjQ2IDIwMDcgKzAyMDAKCiAgICBUUU04NjBNOiBTdXBwb3J0IGZvciAxMGNvbCBTRFJBTXMsIG1heC4gMTI4IE1pQgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDYxZmIxNWM1MTZmZWY1NjMxZTMwNWYxOTc2ZDdiM2E2Nzk3MjU4NTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDI3IDAxOjUyOjUwIDIwMDcgKzAxMDAKCiAgICBGaXggY29kaW5nIHN0eWxlIGlzc3VlczsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ2N2JjZWUxMWZlMjZhZDQyMmYyZGU5NzFhYTcwODY2MDc5ODcwZjIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNTozNjoxOCAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgbWFudWZhY3R1cmVyLXNwZWNpZmljIGZpeHVwcwoKICAgIFJ1biBmaXh1cHMgYmFzZWQgb24gdGhlIEpFREVDIG1hbnVmYWN0dXJlciBJRCBpbmRlcGVuZGVudCBvZiB0aGUKICAgIGNvbW1hbmQgc2V0IElELgoKICAgIFRoaXMgY2hhbmdlcyBjdXJyZW50IGJlaGF2aW91cjogUHJldmlvdXNseSwgZ2VvbWV0cnkgcmV2ZXJzYWwgZm9yIEFNRAogICAgY2hpcHMgd2VyZSBkb25lIGJhc2VkIG9uIHRoZSBjb21tYW5kIHNldCBJRCwgd2hpbGUgdGhleSBhcmUgbm93IGRvbmUKICAgIGJhc2VkIG9uIHRoZSBKRURFQyBtYW51ZmFjdHVyZXIgYW5kIGRldmljZSBJRC4KCiAgICBBbHNvIGFkZCBmaXh1cCBmb3IgdG9wLWJvb3QgQXRtZWwgY2hpcHMuIEEgZml4dXAgaXMgbmVlZGVkIGZvcgogICAgQVQ0OUJWNjQxNihUKSB0b28sIGJ1dCBzaW5jZSB1LWJvb3QgY3VycmVudGx5IG9ubHkgcmVhZHMgdGhlIGxvdyBieXRlCiAgICBvZiB0aGUgZGV2aWNlIElELCB0aGVyZSdzIG5vIHdheSB0byB0ZWxsIGl0IGFwYXJ0IGZyb20gQVQ0OUJWNjQyRCwKICAgIHdoaWNoIHNob3VsZCBub3QgaGF2ZSB0aGlzIGZpeHVwLiBTaW5jZSBBVDQ5QlY2NDJEIHN1cHBvcnQgaXMKICAgIG5lY2Vzc2FyeSB0byBnZXQgQVROR1cxMDAgYm9hcmQgc3VwcG9ydCBpbnRvIG1haW5saW5lLCBJJ3ZlIGNvbW1lbnRlZAogICAgb3V0IHRoZSBmaXh1cCBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDBkZGYwNmRkZjZiNGJkMDU3YWQ0YzVmMGRmZmVhNzg3MGJhMDZhMmEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNTozNjoxNyAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgY21kc2V0LXNwZWNpZmljIGluaXQgZnVuY3Rpb25zCgogICAgTW92ZSB0aGluZ3MgbGlrZSByZWFkaW5nIEpFREVDIElEcyBhbmQgZml4aW5nIHVwIGdlb21ldHJ5IHJldmVyc2FsCiAgICBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4gVGhlIGdlb21ldHJ5IHJldmVyc2FsIGZpeHVwIGlzIG5vdyBwZXJmb3JtZWQKICAgIGJ5IGFsdGVyaW5nIHRoZSBxcnkgc3RydWN0dXJlIGRpcmVjdGx5LCB3aGljaCBtYWtlcyB0aGUgc2VjdG9yIGluaXQKICAgIGNvZGUgc2xpZ2h0bHkgY2xlYW5lci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlMjM3NDFmNGE2ZDgwNDc1MjBlZjBkNDk3MTc2Mjc0OWIzNTg3ZDMyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBEZWMgMTQgMTU6MzY6MTYgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogUmVhZCB3aG9sZSBRUlkgc3RydWN0dXJlIGluIG9uZSBnbwoKICAgIFJlYWQgb3V0IHRoZSB3aG9sZSBDRkkgU3RhbmRhcmQgUXVlcnkgc3RydWN0dXJlIGFmdGVyIHN1Y2Nlc3NmdWwgY2ZpCiAgICBpZGVudGlmaWNhdGlvbi4gVGhpcyBhbGxvd3Mgc3Vic2VxdWVudCBjb2RlIHRvIGFjY2VzcyB0aGlzIGluZm9ybWF0aW9uCiAgICBkaXJlY3RseSB3aXRob3V0IGhhdmluZyB0byBnbyB0aHJvdWdoIGZsYXNoX3JlYWRfdWNoYXIoKSBhbmQgZnJpZW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkZjljMjVlYTA0YjM4YTBlMDVkNGY4YzczYzVjYzE0NGNkYWZhN2RiCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBEZWMgMTcgMTE6MDI6NDQgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBGaXggbG9naWMgaW52ZXJzaW9uIGluIGRpc2FibGVfaW50ZXJydXB0cygpCgogICAgZGlzYWJsZV9pbnRlcnJ1cHRzKCkgc2hvdWxkIHJldHVybiBub256ZXJvIGlmIGludGVycnVwdHMgd2VyZQogICAgX2VuYWJsZWRfIGJlZm9yZSwgbm90IGRpc2FibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGFjYWM0NzUyMTJjYmVkYjE3YjMyMWEzNjNhMWM4NzhlMmI0N2IzN2YKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNjo1MToyMiAyMDA3ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBpbnRlcnJ1cHRzIGF0IGJvb3R1cAoKICAgIFRoZSB0aW1lciBjb2RlIGRlcGVuZHMgb24gdGhlIHRpbWVyIGludGVycnVwdCB0byBrZWVwIHRyYWNrIG9mIHRoZQogICAgdXBwZXIgMzIgYml0cyBvZiB0aGUgY3ljbGUgY291bnRlci4gVGhpcyBvYnZpb3VzbHkgZG9lc24ndCB3b3JrIHdoZW4KICAgIGludGVycnVwdHMgYXJlIGRpc2FibGVkIHRoZSB3aG9sZSB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDk1NzBiY2Q4N2Y0ZGIyNTU1MTRmNDNiNjcwMTc0NmM0MTJmOGZlZjAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAxMDowMzo0NSAyMDA3ICswMTAwCgogICAgQVZSMzI6IEZpeCB3cm9uZyBwaW4gc2V0dXAgZm9yIFVTQVJUMwoKICAgIEFzIHJlcG9ydGVkIGJ5IEdlcmhhcmQgQmVyZ2hvZmVyOgoKICAgIGluICJncGlvX2VuYWJsZV91c2FydDMiIHRoZSBjb3JyZWN0IHBpbnMgZm9yIFVTQVJUIDMgYXJlIFBCMTcgYW5kIFBCMTgKICAgIGluc3RlYWQgb2YgUEIxOCBhbmQgUEIxOS4KCiAgICB3aGljaCBpcyBvYnZpb3VzbHkgY29ycmVjdC4gVGhlcmUncyBjdXJyZW50bHkgbm8gY29kZSB0aGF0IHVzZXMKICAgIFVTQVJUMywgYnV0IGN1c3RvbSBib2FyZHMgbWF5IHJ1biBpbnRvIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA5ZWEwZGUwM2RjYzNlZTdhZjA0NWIwYjU3MjIyN2JkYTJjMWM5MTgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE5vdiAxIDEyOjQ0OjIwIDIwMDcgKzAxMDAKCiAgICBSRUFETUU6IFJlbW92ZSBBVFNUSzEwMDAgZGF1Z2h0ZXJib2FyZCBsaXN0CgogICAgQXMgbm90ZWQgYnkgS2ltIFBoaWxsaXBzLCB0aGVzZSBsaXN0cyB0ZW5kIHRvIGJlY29tZSBvdXQgb2YgZGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjODFjYmJhZDIxY2IwYWU5ODNlMmU3OTYyMTEyMDIyMzRjZGM4YmUyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVR1ZSBPY3QgMzAgMTQ6NTY6MzYgMjAwNyArMDEwMAoKICAgIEFkZCBBVFNUSzEwMFsyMzRdIHRvIE1BSU5UQUlORVJTCgogICAgQWRkIGFsbCB0aGUgQVRTVEsxMDAwIGRhdWdodGVyYm9hcmRzIHRvIE1BSU5UQUlORVJTIGFsb25nIHdpdGggdGhlaXIKICAgICJtb3RoZXIiLiBBbHNvIHVwZGF0ZSB0aGUgZW50cnkgZm9yIEFUU1RLMTAwMCB0byBiZSBub3Qgb25seSBhYm91dCB0aGUKICAgIEFQNzAwMCBDUFU7IGl0J3MgaW50ZW5kZWQgdG8gaGFuZGxlIGFsbCBDUFVzIGluIHRoZSBBVDMyQVAgZmFtaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDY0ZmYyMzU3YjE3MjcyMTM4MDM1OTE4MTNkYmM3NzljOTI0YmY3NzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzowMjo1NCAyMDA3ICswMTAwCgogICAgQVZSMzI6IEFkZCBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDA0IGJvYXJkCgogICAgQVRTVEsxMDA0IGlzIGEgZGF1Z2h0ZXJib2FyZCBmb3IgQVRTVEsxMDAwIHdpdGggdGhlIEFUMzJBUDcwMDIgQ1BVLAogICAgd2hpY2ggaXMgYSBkZXJpdmF0aXZlIG9mIEFUMzJBUDcwMDAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjY3NTY4ZGIxNTdmMzc0Yjg1YWJkN2UwMzU5NmRkZDFmMGIyNTY4MQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjAyOjU0IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogQWRkIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDMgYm9hcmQKCiAgICBBVFNUSzEwMDMgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciBBVFNUSzEwMDAgd2l0aCB0aGUgQVQzMkFQNzAwMSBDUFUsCiAgICB3aGljaCBpcyBhIGRlcml2YXRpdmUgb2YgQVQzMkFQNzAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1ZmVlODRhNzk0YTUxZWM4MzA1NDhjZGE0ODVhNzcwZWZiMDE4YjkyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MjM6MzMgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBNYWtlIHNvbWUgQVQzMkFQNzAweCBwZXJpcGhlcmFscyBvcHRpb25hbAoKICAgIEFkZCBhIGNoaXAtZmVhdHVyZXMgZmlsZSBwcm92aWRpbmcgZGVmaW5pdGlvbnMgb2YgdGhlIGZvcm0KCiAgICBBVDMyQVA3MDB4X0NISVBfSEFTXzxwZXJpcGhlcmFsPgoKICAgIHRvIGluZGljYXRlIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIGdpdmVuIHBlcmlwaGVyYWwgb24gdGhlIGN1cnJlbnRseQogICAgc2VsZWN0ZWQgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzNmYyOGY4YTk2MDVlZTVkY2ZhMzMwNDgyY2ZjNjIxNzEyNjFhZjk3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MDk6NTYgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBSZW5hbWUgYXQzMmFwNzAwMCAtPiBhdDMyYXA3MDB4CgogICAgVGhlIFNvQy1zcGVjaWZpYyBjb2RlIGZvciBhbGwgdGhlIEFUMzJBUDcwMHggQ1BVcyBpcyBwcmFjdGljYWxseQogICAgaWRlbnRpY2FsOyB0aGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgc29tZSBjaGlwcyBoYXZlIGxlc3MgZmVhdHVyZXMKICAgIHRoYW4gb3RoZXJzLiBCeSBkb2luZyB0aGlzIHJlbmFtZSwgd2UgY2FuIGFkZCBzdXBwb3J0IGZvciB0aGUgQVA3MDAwCiAgICBkZXJpdmF0aXZlcyBzaW1wbHkgYnkgbWFraW5nIHNvbWUgZmVhdHVyZXMgY29uZGl0aW9uYWwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNGQ1ZmE5OWM3M2YzNTRlN2NmOTg1ZWZjZjQxN2VhNTVjYTJmNmE1ZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSnVuIDI5IDE4OjIyOjM0IDIwMDcgKzAyMDAKCiAgICBhdG1lbF9tY2k6IFNob3cgU1Igd2hlbiBibG9jayByZWFkIGZhaWxzCgogICAgU2hvdyBjb250cm9sbGVyIHN0YXR1cyBhcyB3ZWxsIGFzIGNhcmQgc3RhdHVzIHdoZW4gYW4gZXJyb3Igb2NjdXJzCiAgICBkdXJpbmcgYmxvY2sgcmVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA4Njk3ZTZhMTliMTBmNTE0NTExYjZhOWM4NmRlODhiZDEwOGM0ZjhkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDEzIDE0OjUyOjUzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEJyaW5nIDR4eCBmZHQgc3VwcG9ydCB1cC10by1kYXRlCgogICAgVGhpcyBwYXRjaCB1cGRhdGUgdGhlIDR4eCBmZHQgc3VwcG9ydC4gSXQgZW5hYmxlZCBmZHQgYm9vdGluZwogICAgb24gdGhlIEFNQ0MgS2lsYXVlYSBhbmQgU2VxdW9pYSBmb3Igbm93LiBNb3JlIGNhbiBmb2xsb3cgbGF0ZXIKICAgIHF1aXRlIGVhc2lseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTJkMzBhYTc5Nzc5YzJhYTdhOTk4YmJhZTRjMDc1ZjgyMmE1MzAwNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjM0IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IFVzZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkKCiAgICBVc2UgbWFwX3BoeXNtZW0oKSBhbmQgdW5tYXBfcGh5c21lbSgpIHRvIGNvbnZlcnQgZnJvbSBwaHlzaWNhbCB0bwogICAgdmlydHVhbCBhZGRyZXNzZXMuIFRoaXMgZ2l2ZXMgdGhlIGFyY2ggYSBjaGFuY2UgdG8gcHJvdmlkZSBhbiB1bmNhY2hlZAogICAgbWFwcGluZyBmb3IgZmxhc2ggYWNjZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNGQ3ZDY5MzZlYjI5YWY3Y2NhMzMwOTM3ODA4MzEyYWE1ZjYxNDU0ZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjMzIDIwMDcgKzAxMDAKCiAgICBJbnRyb2R1Y2UgbWFwX3BoeXNtZW0oKSBhbmQgdW5tYXBfcGh5c21lbSgpCgogICAgbWFwX3BoeXNtZW0oKSByZXR1cm5zIGEgdmlydHVhbCBhZGRyZXNzIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyBhCiAgICBnaXZlbiBwaHlzaWNhbCBhZGRyZXNzIHdpdGhvdXQgaW52b2x2aW5nIHRoZSBjYWNoZS4gdW5tYXBfcGh5c21lbSgpCiAgICBzaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIHZpcnR1YWwgYWRkcmVzcyByZXR1cm5lZCBieSBtYXBfcGh5c21lbSgpIGlzCiAgICBubyBsb25nZXIgbmVlZGVkLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHN0dWIgaW1wbGVtZW50YXRpb24gd2hpY2ggc2ltcGx5IHJldHVybnMgdGhlCiAgICBwaHlzaWNhbCBhZGRyZXNzIGNhc3QgdG8gYSB1Y2hhciAqIGZvciBhbGwgYXJjaGl0ZWN0dXJlcyBleGNlcHQgQVZSMzIsCiAgICB3aGljaCBjb252ZXJ0cyB0aGUgcGh5c2ljYWwgYWRkcmVzcyB0byBhbiB1bmNhY2hlZCB2aXJ0dWFsIG1hcHBpbmcuCiAgICB1bm1hcF9waHlzbWVtKCkgaXMgYSBuby1vcCBvbiBhbGwgYXJjaGl0ZWN0dXJlcywgYnV0IGlmIGFueQogICAgYXJjaGl0ZWN0dXJlIG5lZWRzIHRvIGRvIHN1Y2ggbWFwcGluZ3MgdGhyb3VnaCB0aGUgVExCLCB0aGlzIGlzIHRoZQogICAgaG9vayB3aGVyZSB0aG9zZSBUTEIgZW50cmllcyBjYW4gYmUgaW52YWxpZGF0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgY2RiYWVmYjVmNWYwM2U1NDQ1NWQwNDM5ZGNmNmRiZDk3ZWFkMWY5ZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjMyIDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEludHJvZHVjZSByZWFkIGFuZCB3cml0ZSBhY2Nlc3NvcnMKCiAgICBJbnRyb2R1Y2UgZmxhc2hfcmVhZHs4LDE2LDMyLDY0KSBhbmQgZmxhc2hfd3JpdGV7OCwxNiwzMiw2NH0gYW5kIHVzZQogICAgdGhlbSB0byBhY2Nlc3MgdGhlIGZsYXNoIG1lbW9yeS4gVGhpcyBtYWtlcyBpdCBjbGVhcmVyIHdoZW4gdGhlIGZsYXNoCiAgICBpcyBhY3R1YWxseSBiZWluZyBhY2Nlc3NlZDsgbWVyZWx5IGRlcmVmZXJlbmNpbmcgYSB2b2xhdGlsZSBwb2ludGVyCiAgICBsb29rcyBqdXN0IGxpa2UgYW55IG90aGVyIGtpbmQgb2YgYWNjZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDgxMjcxMWNlNmIzYTM4NjEyNWRjZjBkNmE1OTU4OGU0NjFhYmJiODcKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAxMjo1NjozMSAyMDA3ICswMTAwCgogICAgSW1wbGVtZW50IF9fcmF3X3tyZWFkLHdyaXRlfVtid2xdIG9uIGFsbCBhcmNoaXRlY3R1cmVzCgogICAgVGhpcyBhZGRzIGltcGxlbWVudGF0aW9ucyBvZiBfX3Jhd19yZWFkW2J3bF0gYW5kIF9fcmF3X3dyaXRlW2J3bF0gdG8KICAgIG02OGssIHBwYywgbmlvcyBhbmQgbmlvczIuIFRoZSBtNjhrIGFuZCBwcGMgaW1wbGVtZW50YXRpb25zIHdlcmUgdGFrZW4KICAgIGZyb20gTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYmU2MGE5MDIxYzgyZmM1YWVjZDViMmIxZmM5NmY3MGE5YzgxYmJjZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgT2N0IDYgMTg6NTU6MzYgMjAwNyArMDIwMAoKICAgIGNmaV9mbGFzaDogUmVvcmRlciBmdW5jdGlvbnMgYW5kIGVsaW1pbmF0ZSBleHRyYSBwcm90b3R5cGVzCgogICAgUmVvcmRlciB0aGUgZnVuY3Rpb25zIGluIGNmaV9mbGFzaC5jIHNvIHRoYXQgZWFjaCBmdW5jdGlvbiBvbmx5IHVzZXMKICAgIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiBkZWZpbmVkIGJlZm9yZSBpdC4gVGhpcyBhbGxvd3MgdGhlIHN0YXRpYwogICAgcHJvdG90eXBlIGRlY2xhcmF0aW9ucyBuZWFyIHRoZSB0b3AgdG8gYmUgZWxpbWluYXRlZCBhbmQgbWlnaHQgYWxsb3cKICAgIGdjYyB0byBkbyBhIGJldHRlciBqb2IgaW5saW5pbmcgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDMwNTU3OTNiY2JkZjI0YjFmODExN2Y2MDZmZmI3NjZkMzJlYjc2NmYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAxMjo1NjoyOSAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBNYWtlIHNvbWUgbmVlZGxlc3NseSBnbG9iYWwgZnVuY3Rpb25zIHN0YXRpYwoKICAgIE1ha2UgZnVuY3Rpb25zIG5vdCBkZWNsYXJlZCBpbiBhbnkgaGVhZGVyIGZpbGUgc3RhdGljLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDdlNWI5YjQ3MTUxOGM1NjUyZmViYzY4YmE2MmI0MzIxOTNkNmFiZjQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAxMjo1NjoyOCAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBCcmVhayBsb25nIGxpbmVzCgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBrZWVwIGFsbCBsaW5lcyBpbiB0aGUgY2ZpX2ZsYXNoIGRyaXZlciBiZWxvdyA4MAogICAgY29sdW1ucy4gVGhlcmUgYXJlIGEgZmV3IGxpbmVzIGxlZnQgd2hpY2ggZG9uJ3QgZml0IHRoaXMgcmVxdWlyZW1lbnQKICAgIGJlY2F1c2UgSSBjb3VsZG4ndCBmaW5kIGFueSB0cml2aWFsIHdheSB0byBicmVhayB0aGVtIChpLmUuIGl0IHdvdWxkCiAgICB0YWtlIHNvbWUgcmVzdHJ1Y3R1cmluZywgd2hpY2ggSSBpbnRlbmQgdG8gZG8gaW4gYSBsYXRlciBwYXRjaC4pCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNDIwMjZjOWNiM2E3Njg0OWI0MWU2ZTI0YWJmYjdiNTY4MDdhNWMxYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBEZWMgMTEgMTM6NTk6NTcgMjAwNyArMDEwMAoKICAgIENGSTogc3luY2hyb25pemUgY29tbWFuZCBvZmZzZXRzIHdpdGggTGludXggQ0ZJIGRyaXZlcgoKICAgIEZpeGVzIG5vbi13b3JraW5nIENGSSBGbGFzaCBvbiB0aGUgSW5rYTR4MCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDhmZjNkZTYxZmM1ZjliM2IyMTY0N2JjZTA4MWEzYjdmNzEwZjBkNGQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMTI6MTc6MzQgMjAwNyAtMDYwMAoKICAgIEhhbmRsZSBNUEM4NXh4IFBDSWUgcmVzZXQgZXJyYXRhIChQQ0ktRXggMzgpCgogICAgT24gdGhlIE1QQzg1eHggYm9hcmRzIHRoYXQgaGF2ZSBQQ0llIGVuYWJsZSB0aGUgUENJZSBlcnJhdGEgZml4LgogICAgKE1QQzg1NDREUywgTVBDODU0OENEUywgTVBDODU2OE1EUykuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4MmFjOGM5NzE0NWE0YzNiZjhiM2RiZmFkMDBmYTk2ZTkyMGY5YjljCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIERlYyA3IDEyOjA0OjMwIDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgRnJlZXNjYWxlIE1QQzg1eHggQURTL0NEUy9NRFMgYm9hcmQgY29uZmlnCgogICAgKiBFbmFibGVkIENPTkZJR19DTURfRUxGCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkNDM1NzkzMjI5Y2UyOWE0Mjc5N2MxZWRjMzlmNWIzNGY5ODdmOTFhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIERlYyA3IDA0OjU5OjI2IDIwMDcgLTA2MDAKCiAgICBIYW5kbGUgQXN5bmNocm9ub3VzIEREUiBjbG9jayBvbiA4NXh4CgogICAgVGhlIE1QQzg1NzIgaW50cm9kdWNlcyB0aGUgY29uY2VwdCBvZiBhbiBhc3luY2hyb25vdXMgRERSIGNsb2NrIHdpdGgKICAgIHJlZ2FyZHMgdG8gdGhlIHBsYXRmb3JtIGNsb2NrLgoKICAgIEludHJvZHVjZSBnZXRfZGRyX2ZyZXEoKSB0byByZXBvcnQgdGhlIEREUiBmcmVxIHJlZ2FyZGxlc3Mgb2Ygc3luYy9hc3luYwogICAgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDIyYWJiMmQyZWFmN2I3OTVhNjkyM2M2MjczZWM5Y2I1M2ZkYTlhMTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjM0OjI4IDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgRnJlZXNjYWxlIE1QQzg1eHggQURTL0NEUy9NRFMgYm9hcmQgY29uZmlnCgogICAgKiBSZW1vdmVkIHNvbWUgbWlzYyBlbnZpcm9ubWVudCBzZXR1cAogICAgKiBFbmFibGVkIENPTkZJR19DTURMSU5FX0VESVRJTkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQxNWE2MTNiYWJiODRkNWU1ZDViNDJlOGU1NTM4NjhjNzFmYzNhNjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjQ3OjQ0IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTQxL01QQzg1NTUvTVBDODU0OCBDRFMgYm9hcmQgdW5kZXIgYm9hcmQvZnJlZXNjYWxlLgoKICAgIE1pbm9yIHBhdGggY29ycmVjdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSBidWlsZGFiaWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjMmQ5NDNmZmJmZDMzNTliM2I0NWQxNzdiNDM3Mzc5ZDJjYjg2ZmJmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAxMDoxNjoxOCAyMDA3IC0wNjAwCgogICAgTW92ZSB0aGUgTVBDODU0MCBBRFMgYm9hcmQgdW5kZXIgYm9hcmQvZnJlZXNjYWxlLgoKICAgIE1pbm9yIHBhdGggY29ycmVjdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSBidWlsZGFiaWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4NzBjZWFjNWIzYTM0ODZjMTA5Mzk2ZTAwNWFmODFhZTc2MmI1NzEwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAxMDoxNDo1MCAyMDA3IC0wNjAwCgogICAgTW92ZSB0aGUgTVBDODU2MCBBRFMgYm9hcmQgdW5kZXIgYm9hcmQvZnJlZXNjYWxlLgoKICAgIE1pbm9yIHBhdGggY29ycmVjdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSBidWlsZGFiaWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhY2JjYTg3NmZiM2ZlYzI1Y2Q5YzU1YjBlZmM4MWZmNjE4ZmY1MjYyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAxMDoxMzo0NyAyMDA3IC0wNjAwCgogICAgTW92ZSB0aGUgTVBDODU2OCBNRFMgYm9hcmQgdW5kZXIgYm9hcmQvZnJlZXNjYWxlLgoKICAgIE1pbm9yIHBhdGggY29ycmVjdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSBidWlsZGFiaWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhODUzZDU2YzU5YjMzNDE1MzA0NTMxNDQzNjMzODA4NzM2YWNmYzZlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMjoxODo1OSAyMDA3IC0wNjAwCgogICAgVXNlIHN0YW5kYXJkIExBV0FSX1RSR1RfSUZfKiBkZWZpbmVzIGZvciBMQVcgc2V0dXAgb24gODV4eAoKICAgIFdlIGFscmVhZHkgaGFkIGRlZmluZXMgZm9yIExBV0FSX1RSR1RfSUZfKiB0aGF0IHdlIHNob3VsZCB1c2UKICAgIHJhdGhlciB0aGFuIGNyZWF0aW5nIG5ldyBvbmVzLiAgQWxzbywgYWRkZWQgc29tZSBtaXNzaW5nIGRlZmluZXMgZm9yCiAgICBQQ0lFIHRhcmdldHMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwNGRiNDAwODkyZGEzN2I3NmE1ODVlMzMyYTBjMTM3OTU0YWQyMDE1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMjoxMDowOSAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IG9uIDg1eHgKCiAgICBJbiB0aGUgZnV0dXJlIHRoZSBvZmZzZXRzIHRvIHZhcmlvdXMgYmxvY2tzIG1heSBub3QgYmUgaW4gc2FtZSBsb2NhdGlvbi4KICAgIE1vdmUgdG8gdXNpbmcgQ0ZHX01QQzg1eHhfKl9BRERSIGFzIHRoZSBiYXNlIG9mIHRoZSByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjcxNDIyM2Y4ZTA0YWIzZTQxMzNmZjY1ODcyZWVmMzY2ZDkwYmZlYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDE6MjM6MDkgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBDT05GSUdfT0ZfRkxBVF9UUkVFIHJlbGF0ZWQgY29kZSBmcm9tIG1wYzg1eHggc2luY2Ugd2Ugbm93IHVzZSBsaWJmZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGM0ODA4NjFiZjAwMDE1NmU2YTNlOTMyYzI1OGRiNTlmZjIyMTJkZDMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAxOjA2OjE5IDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODU2OCBNRFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1NjggTURTIGNvbmZpZyB0byB1c2UgbGliZmR0IGFuZCBhc3N1bWUgdXNlIG9mIGFsaWFzZXMgZm9yCiAgICBldGhlcm5ldCwgcGNpLCBhbmQgc2VyaWFsIGZvciB0aGUgdmFyaW91cyBmaXh1cHMgdGhhdCBhcmUgZG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDE1NjNmNTZlMGM2OGY2OTIwZjk1NjM4MmQ2ZDEzYmVlM2YwMWMwZjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDE0IDE1OjUyOjA2IDIwMDcgLTA1MDAKCiAgICBBZGQgUENJIEV4cHJlc3Mgc3VwcG9ydCBvbiBNUEM4NTY4TURTCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYjkwZDI1NDk3NjI1YjkwZmZhM2YyOTExYTA4OTVjYTIzNzU1NmZmNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDA6MTE6NDQgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NXh4IENEUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODV4eCBDRFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGZkNWVjNjZiMTA1MjFhMDU3YWQ3M2U2OWFiNWYwZjllYWZiYTI1NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjggMjI6NTQ6MjcgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTQwIEFEUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODU0MCBBRFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWNlNzE1ODAyZjZjNTBkYzc4YjM0MDViOTJmMTg0YjFlMzcxMDUxOQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjggMjI6NDA6MzEgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTYwIEFEUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODU2MCBBRFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWFmZWVmYmRiOGIwMjlmNWNhMmExOTU1OThkMGE1MDFhNjA2ZWVhOQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjggMDA6MzY6MzMgMjAwNyAtMDYwMAoKICAgIFN0b3AgdXNpbmcgaW1tYXBfdCBmb3IgY3BtIG9mZnNldCBvbiA4NXh4CgogICAgSW4gdGhlIGZ1dHVyZSB0aGUgb2Zmc2V0cyB0byB2YXJpb3VzIGJsb2NrcyBtYXkgbm90IGJlIGluIHNhbWUgbG9jYXRpb24uCiAgICBNb3ZlIHRvIHVzaW5nIENGR19NUEM4NXh4X0NQTV9BRERSIGFzIHRoZSBiYXNlIG9mIHRoZSBDUE0gcmVnaXN0ZXJzCiAgICBpbnN0ZWFkIG9mIGdldHRpbmcgaXQgdmlhICZpbW1hcC0+aW1fY3BtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjU5YjU1YTViOGZjYWRhYTk5NzgxYmE0OGU3YTM4ZTk1NmFmYTUyNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBOb3YgMjcgMjM6MjU6MDIgMjAwNyAtMDYwMAoKICAgIFN0b3AgdXNpbmcgaW1tYXBfdCBmb3IgZ3V0cyBvZmZzZXQgb24gODV4eAoKICAgIEluIHRoZSBmdXR1cmUgdGhlIG9mZnNldHMgdG8gdmFyaW91cyBibG9ja3MgbWF5IG5vdCBiZSBpbiBzYW1lIGxvY2F0aW9uLgogICAgTW92ZSB0byB1c2luZyBDRkdfTVBDODV4eF9HVVRTX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIGd1dHMgcmVnaXN0ZXJzCiAgICBpbnN0ZWFkIG9mIGdldHRpbmcgaXQgdmlhICZpbW1hcC0+aW1fZ3VyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTBjMDNjOGNmNDk0ZDkxY2RlYzM5NjcwZDk1MzM3Yzc0M2UxNmVjOQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBOb3YgMjcgMjI6NDI6MzQgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTQ0IERTIGNvbmZpZwoKICAgICogUmVtb3ZlZCBIQVNfRVRIMi9IQVNfRVRIMyAtIE1QQzg1NDQgb25seSBoYXMgVFNFQzEvMgogICAgKiBSZW1vdmVkIHNvbWUgbWlzYyBlbnZpcm9ubWVudCBzZXR1cAogICAgKiBNb3ZlZCB0byB1c2luZyBmZHRmaWxlICYgZmR0YWRkciBhcyBmZHQgZW52IHZhciBuYW1lcwogICAgKiBFbmFibGVkIENPTkZJR19DTURMSU5FX0VESVRJTkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFkZGNlNTdlMmU0YzQ5ZTc3ZmZiMjAyMGE4NDY5MDcxM2JiMThiNDcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDE3OjEyOjI0IDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODU0NERTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTQ0RFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjg1MmNlNzJmMTAwY2FiZDFmMTFjMjFjMDg1YTBhZDhlY2E5ZmI2NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDA6MTU6MzAgMjAwNyAtMDYwMAoKICAgIEFkZCBsaWJmZHQgYmFzZWQgZnRfY3B1X3NldHVwIGZvciBtcGM4NXh4CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzYjlhYmRjNDQ4YTFjMmM2YTRjMmFhMjkyNzI0YjRkMWEwNTE2NmE5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDExIDEzOjM4OjE5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENvcnJlY3QgR1BJTyBvZmZzZXQgaW4gZ3Bpb19jb25maWcoKQoKICAgIFRoYW5rcyB0byBHYXJ5IEplbm5lam9obiBmb3IgcG9pbnRpbmcgdGhpcyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4MDlhMjcxM2IxY2VhZjNkYTU1ZDlkNzg1NDcwMjk0ZjE1ZGUwNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTEgMTE6NDY6MDEgMjAwNyArMDEwMAoKICAgIHJ0YzogRml4IG1lcmdpbmcgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3Y2ZjMTJhN2RjZmRiMzUwZTJhYjc2ZGI0ZGFmY2MzMGY3ZTc3YzJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgRGVjIDggMTQ6NDc6MzQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogNDA1RVg6IENvcnJlY3RseSBlbmFibGUgVVNCIHBpbnMKCiAgICBUaGlzIHBhdGNoIHNlbGVjdHMgdGhlIFVTQiBkYXRhIHBpbnMgaW4gdGhlIDQwNUVYIEdQSU8gYW5kIE1GQyAobXVsdGkKICAgIGZ1bmN0aW9uIGNvbnRyb2wpIHJlZ2lzdGVycy4gVGhpcyBpcyBkb25lIGZvciB0aGUgQU1DQyBLaWxhdWVhIGFuZAogICAgTWFrYWx1IGV2YWwgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NjkyYzI3MzRhNDdmMjNiNDRhMGY2ODA0MmEzZTJjYThkMWJmYjM5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgRGVjIDggMDg6MjU6MDkgMjAwNyArMDEwMAoKICAgIENGSTogQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODFiMjBjY2MyZDc5NWFlOWExMTk5ZGI1YTUwYWQ5YzI4ZDFlNGQyMgpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CUZyaSBEZWMgNyAyMzozNTowMiAyMDA3ICswMTAwCgogICAgQ0ZJOiBzdXBwb3J0IEpFREVDIGZsYXNoIHJvbXMgaW4gQ0ZJLWZsYXNoIGZyYW1ld29yawoKICAgIFRoZSBmb2xsb3dpbmcgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBub24tQ0ZJIGZsYXNoIFJPTVMsIGJ5IGhvb2tpbmcgaW50byB0aGUKICAgIENGSSBmbGFzaCBjb2RlIGFuZCB1c2luZyBtb3N0IG9mIGl0cyBjb2RlLCBhcyByZWNlbnRseSBkaXNjdXNzZWQgaGVyZSBpbiB0aGUKICAgIHRocmVhZCAiTWl4aW5nIENGSSBhbmQgbm9uLUNGSSBmbGFzaHMiLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzAxYjE3ZGQ4NTZmYTEyMGIyOTcwZjUwZDk1OTg1NDZhNDkyN2VjMwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBOb3YgMjggMjE6MjQ6NTAgMjAwNyAtMDUwMAoKICAgIENvbmRpdGlvbmFsbHkgY29tcGlsZSBmZHRfZml4dXBfZXRoZXJuZXQoKQoKICAgIEZpeCBjb21waWxlciB3YXJuaW5nczogT24gYm9hcmRzIHRoYXQgZG9uJ3QgaGF2ZSBldGhlcm5ldHMgZGVmaW5lZCwKICAgIGRvbid0IGNvbXBpbGUgZmR0X2ZpeHVwX2V0aGVybmV0KCkuCgpjb21taXQgMjQ2ZDRhZTZiYzI4MmJjMTg0MTIyNGUxYzVmYzQ5ZGM5MjVlMGJmNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBOb3YgMjcgMjE6NTk6NDYgMjAwNyAtMDYwMAoKICAgIENvbnZlcnQgYm9hcmRzIHRoYXQgc2V0IG1lbW9yeSBub2RlIHRvIHVzZSBmZHRfZml4dXBfbWVtb3J5KCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDE1MWM4YjA5YjM1ZWViZThmZDkxMzljYjZjMWQ5MWMyN2IyMmYwNTgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDE3OjA2OjE1IDIwMDcgLTA2MDAKCiAgICBBZGRlZCBmZHRfZml4dXBfc3Rkb3V0IHRoYXQgdXNlcyBhbGlhc2VzIHRvIHNldCBsaW51eCxzdGRvdXQtcGF0aAoKICAgIFdlIHVzZSBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzZXJpYWxOIGFsaWFzIGFuZCBDT05GSUdfQ09OU19JTkRFWCB0bwogICAgZGV0ZXJtaW5lIHdoaWNoIHNlcmlhbCBhbGlhcyB3ZSBzaG91bGQgc2V0IGxpbnV4LHN0ZG91dC1wYXRoIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2M5MjcyODEzZmFkODRjNjkxZDBlNDk4OWJiMThhM2ZmZWJkZWJmYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTQ6NTc6NDUgMjAwNyAtMDYwMAoKICAgIEFkZCBjb21tb24gbWVtb3J5IGZpeHVwIGZ1bmN0aW9uCgogICAgQWRkIHRoZSBmdW5jdGlvbiBmZHRfZml4dXBfbWVtb3J5KCkgdG8gZml4dXAgdGhlIC9tZW1vcnkgbm9kZSBvZiB0aGUgZmR0CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5YzkxMDllN2ZjZjdhYzJjYTE5Yzk1YjhhYzU0YjhkMWM3NzNiMTU3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxMToxOToxMiAyMDA3IC0wNjAwCgogICAgQ29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9zdXBwb3J0LmMKCiAgICBNb2RpZnkgY29tbW9uL01ha2VmaWxlIHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBmZHRfc3VwcG9ydC5jIGJhc2VkCiAgICBvbiBDT05GSUdfT0ZfTElCRkRULgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDg4ZTdiYTA5ODA3NzM0NzllMWE2NGJhZGIyOTMxMTYwNzFiN2VmMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTA6NDE6NDAgMjAwNyAtMDYwMAoKICAgIEZpeCBidWlsZCBicmVha2FnZSBkdWUgdG8gbGliZmR0IGltcG9ydAoKICAgIFRoZSBJRFM4MjQ3IGdvdCBsb3N0IGluIHRoZSB1cGRhdGUgYW5kIG5lZWQgYW4gQVBJIHVwZGF0ZQogICAgZG8gdG8gcmVuYW1lIG9mIGZ1bmN0aW9ucyBpbiBsaWJmZHQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyOGYzODRiMTcxYmJmMWZiMmRhZmIxMDQ2ZTZkMjU5YTZiMmY4NzE0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIE5vdiAyMyAxOTo0MzoyMCAyMDA3IC0wNTAwCgogICAgQWRkIHNwYWNlcyBhcm91bmQgdGhlID0gaW4gdGhlIGZkdCBwcmludCBmb3JtYXQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyOTU5MmVjYmEzYjkzMmI5YjE1MmJjZWM2YzBjMDgwNjQxMmRiNGEzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgRGVjIDcgMDE6MjU6MzggMjAwNyArMDkwMAoKICAgIHNoOiBNb3ZlZCBkcml2ZXIgb2YgdGhlIFN1cGVySCBkZXBlbmRlbmNlCgogICAgVGhlIGNvbXBvc2l0aW9uIG9mIHRoZSBkaXJlY3RvcnkgaW4gdGhlIGRyaXZlcnMvIGNoYW5nZWQuCiAgICBJIG1vdmVkIFN1cGVySCBzZXJpYWwgZHJpdmVyIGFuZCBtYXJ1YnVuIFBDTUNJQSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDQxYmU5NjlmNDk1NzExNWVkN2IxZmU4Yjg5MGJmYWVlOTlkN2E3YTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDYgMTA6MjE6MTkgMjAwNyArMDEwMAoKICAgIFJlbGVhc2UgdjEuMy4xCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZjU5MzNiYTFlOTdhMWNkOGY1ZjI0MDcwZTgyMGYyMWQ5NzZlYWViCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IERlYyA2IDEwOjIxOjAzIDIwMDcgKzAxMDAKCiAgICBBRFM1MTIxIEJvYXJkOiBmaXggY29tcGlsZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTI3MDQ0YjE0YTllOTM2NzhhODJkN2IzNWYyMDJiOTNlNzY4N2FiYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IERlYyA2IDA1OjU4OjQzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBoYXJkd2FyZS1maXggZm9yIFBDSS9ETUEgZXJyYXRhIG9uIEFNQ0MgNDQwU1AvU1BlIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgaGFyZHdhcmUtZml4IGZvciB0aGUgUENJL0RNQSBlcnJhdGEncyAxOSsyMiBieQogICAgc2V0dGluZyB0aGUgRklYRCBiaXQgaW4gdGhlIFNEUjBfTUZSIHJlZ2lzdGVyLiBIZXJlIGEgZGVzY3JpcHRpb24gb2YgdGhlCiAgICBzeW1wdG9tczoKCiAgICBQcm9ibGVtIERlc2NyaXB0aW9uCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIElmIGEgRE1BIGlzIHBlcmZvcm1lZCBiZXR3ZWVuIG1lbW9yeSBhbmQgUENJIHdpdGggdGhlIERNQSAxIENvbnRyb2xsZXIKICAgIHVzaW5nIHByZWZldGNoLCBhbmQgYXMgYSByZXN1bHQgdXNlcyBhIHNwZWNpYWwgcHVycG9zZSBidWZmZXIgc2VsZWN0ZWQgYnkKICAgIHRoZSBQQ0lYbiBCcmlkZ2UgT3B0aW9ucyAxIFJlZ2lzdGVyIChQQ0lYbl9CUkRHT1BUMVtSQlA3XSAtIGJpdHMgMzEtMjkpLAogICAgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIHRyYW5zZmVyIHNlcXVlbmNlIGlzIHBlcmZvcm1lZCB0d2ljZS4gVGhlCiAgICBQUEM0NDBTUGUgUENJIENvbnRyb2xsZXIgcmVxdWVzdHMgbW9yZSBkYXRhIHRoYW4gd2FzIG5lZWRlZCBzdWNoIHRoYXQgaW4KICAgIHRoZSBjYXNlIG9mIGVuZm9yY2UgbWVtb3J5IHByb3RlY3Rpb24sIGEgaG9zdCBDUFUgIGV4Y2VwdGlvbiBjYW4gb2NjdXIuCiAgICBObyBkYXRhIGlzIGNvcnJ1cHRlZCwgYmVjYXVzZSBkYXRhIHRyYW5zZmVyIGlzIHN0b3BwZWQgaW4gdGhlIFBDSQogICAgQ29udHJvbGxlci4gUHJlZmV0Y2ggZW5hYmxlIGlzIHNwZWNpZmllZCBieSBzZXR0aW5nIERNQSBDb25maWd1cmF0aW9uCiAgICBSZWdpc3RlciAoSTJPMF9ETUF4X0NGR1tEWEVQRF0gLSBiaXQgMzEpIHRvIDAuCgogICAgQmVoYXZpb3IgdGhhdCBtYXkgYmUgb2JzZXJ2ZWQgaW4gYSBydW5uaW5nIHN5c3RlbQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgMS4gRE1BIHBlcmZvcm1hbmNlIGlzIGRlY3JlYXNlZCBiZWNhdXNlIG9mIHRoZSBkb3VibGUgYWNjZXNzIG9uIHRoZSBQQ0kgYnVzCiAgICBpbnRlcmZhY2UuCiAgICAyLiBJZiBhbiBpbGxlZ2FsIGFjY2VzcyB0byBzb21lIGFkZHJlc3Mgb24gdGhlIFBDSSBidXMgaXMgZGV0ZWN0ZWQgYXQgdGhlCiAgICBzeXN0ZW0gbGV2ZWwsIGEgbWFjaGluZSBjaGVjayBvciBzaW1pbGFyIHN5c3RlbSBlcnJvciBtYXkgb2NjdXIuCgogICAgV29ya2Fyb3VuZHMgQXZhaWxhYmxlCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgMS4gRG8gbm90IHByb2dyYW0gcHJlZmV0Y2guIE5vdGUgdGhhdCBhIHByZWZldGNoIGNvbW1hbmQgY2Fubm90IGJlIHByb2dyYW1tZWQKICAgIHdpdGhvdXQgc2VsZWN0aW5nIGEgc3BlY2lhbCBwdXJwb3NlIGJ1ZmZlci4KICAgIDIuIFRvIGF2b2lkIGNyb3NzaW5nIGEgcGh5c2ljYWwgYm91bmRhcnkgb2YgdGhlIFBDSSBzbGF2ZSBkZXZpY2UsIGFkZCA1MTIKICAgIGJ5dGVzIG9mIGFkZHJlc3MgdG8gdGhlIFBDSSBhZGRyZXNzIHJhbmdlLgoKICAgIFRoaXMgcGF0Y2ggd2FzIG9yaWdpbmFsbHkgcHJvdmlkZWQgYnkgUHJhdmluIE0uIEJhdGhpamEgPHBiYXRoaWphQGFtY2MuY29tPgogICAgZnJvbSBBTUNDIGFuZCBzbGlnaGx5IGNoYW5nZWQuCgogICAgU2lnbmVkLW9mZi1ieTogUHJhdmluIE0uIEJhdGhpamEgPHBiYXRoaWphQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE5MDkyMWY3MWQyMjViZjllMGYwZmM3YjhiZWFkZWI4MDAxYmY3OGEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgNCAxNjoyOTo0OCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBZb3NlbWl0ZS9ZZWxsb3dzdG9uZTogQWRkIERUVCBBRDc0MTQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZDRmMDQwYTNjMTUwMzZhNmVhMjVhOWMzOWU3ZDg5ZmVmYTg0NDBkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIERlYyAzIDAwOjE1OjI4IDIwMDcgKzAxMDAKCiAgICBQcmVwYXJlIGZvciAxLjMuMS1yYzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUxNWUzMzQzM2U3YzA1MTExOTY4ZGM5YjQzNGE1MmZkNDJjYmQyMjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMzAgMDc6MTU6NDEgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogS2lsYXVlYTogQWRkIFBDSWUgcmVzZXQgYXNzZXJ0aW9uIHVwb24gcG93ZXItdXAKCiAgICBUaGlzIG1hbnVhbCBQQ0llIHJlc2V0IHRyaWdnZXJpbmcgc29sdmVzIHRoZSBwcm9ibGVtIHNlZW4gd2l0aCB0aGUKICAgIEludGVsIEVQUk8vMTAwMCBjYXJkLCB3aGljaCB3YXMgbm90IGRldGVjdGVkIChsaW5rIG5vdCBlc3RhYmxpc2hlZCkKICAgIHVwb24gcG93ZXItdXAgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI2MGVlYTU2NzZjYTQ2OTAzYTMzNTY4NmNjMDIwYjI5YzRjYTQ2ZmUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDE6MjE6NTQgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgU3VwZXJIIGJvYXJkcyBtYWludGFpbmVyIHRvIE1BSU5UQUlORVJTIGZpbGUKCiAgICBBZGQgTVM3NzUwU0UgYW5kIE1TNzcyMlNFJ3MgYm9hcmQgbWFpbnRhaW5lciB0byBNQUlOVEFJTkVSUyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBhYTljNGYxZDIyNzAxYTkyMzQ3YzFjODFmMzRkMTJjOGFkM2EzNzQ3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgTm92IDI5IDAwOjEzOjA0IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIG1zNzc1MHNlIHN1cHBvcnQgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjNzE0NDM3MzQyN2ExNzgzMzJiZjk3NTQxMzFjOGMzNGM1MmMyMDBhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyNyAwOTo0NDo1MyAyMDA3ICswMTAwCgogICAgc2g6IEFkZCBzaDMgYW5kIHNoNCBzdXBwb3J0IGluIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDEzMDA4MDg3NGEzZDI4NDUwMDk4NDgxYTI2MmM1ZjdjODU1ZTkwOGQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBOb3YgMjUgMDI6NTE6MTcgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgZG9jdW1lbnQgZm9yIFN1cGVySC4KCiAgICBUaGlzIGRvY3VtZW50IGlzIGEgc3VtbWFyeSBvZiBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIFN1cGVySCBvZiBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMzZWNkYzJmOWQ2NDkyNmUxYTYwNjdiMjhmM2EwYWVmYzNiNmQyM2QKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBOb3YgMjUgMDI6Mzk6MzEgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgbWFydWJ1bidzIHBjbWNpYSBkcml2ZXIKCiAgICBNYXJ1YnVuIHBjbWNpYSBpcyBhIGNoaXAgZm9yIFBDTUNJQSB1c2VkIHdpdGggU3VwZXJILgogICAgT2YgY291cnNlLCB0aGlzIGNhbiBiZSB1c2VkIGV2ZW4gYnkgb3RoZXIgYXJjaGl0ZWN0dXJlcy4KICAgIFdoZW4gdXNlIHRoaXMgZHJpdmVyLCBjYW1lIHRvIGJlIGFibGUgdG8gdXNlIENvbXBhY3RGbGFzaAogICAgYW5kIEV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmZWJkODZiOTY5Yjk3NTI4OWVkOTQ4ZjFhYzBlYjk3MjJkYTQxY2VkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gTm92IDI1IDAyOjMyOjEzIDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIFN1cGVySCBTQ0lGIGRyaXZlcgoKICAgIC0gQ2hhbmdlZCB2b2xhdGlsZSB1bnNpZ25lZCB0byB2dV8uCiAgICAtIENoYW5nZWQgTWFrZWZpbGUgZm9yIGtjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDhiZTc2MDkwMzY0NWFmMDk4NzFiZTUwYWQwYTZmOWViYjYyYjMxMWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjcgMTE6NTc6MzUgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogS2lsYXVlYSAmIE1ha2FsdTogRml4IGV4dCBJUlEgcGluIG11bHRpcGxleGluZwoKICAgIEFmdGVyIGFuIGVycm9yIGluIHRoZSBBTUNDIDQwNUVYIHVzZXJzIG1hbnVhbCBub3cgY29ycmVjdGx5IGNvbmZpZ3VyZQogICAgSVJRMiAoS2lsYXVlYSkvSVJRMCAoTWFrYWx1KSBhcyBhbHRlcm5hdGUgMiBzaWduYWwgZm9yIGV4dGVybmFsIElSUQogICAgdXNhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE1ZjYwMWZkMWIxMjc4ZGVhZTVhYTlmYzI3YTIzMmIwZDFjMWM3ODgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTm92IDI2IDE5OjE4OjIxIDIwMDcgKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZTsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2RlY2E5ZDQ0NzY3ZWZkMWI4M2Y0YjcwMWYwZGJmMjFhNzU5NWY3YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMjUgMjI6Mzk6MjUgMjAwNyArMDEwMAoKICAgIE1BS0VBTEw6IGFkZCBtaXNzaW5nIDUxMnggYm9hcmRzIGluIHBwYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTM0MGMzMjVlNjY4Y2E3Mzg2YzIyNzYzODc2ODE3MjBiZTljMzc1NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMjUgMTg6NDU6NDcgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIDogZml4IHRhZ3MgY3RhZ3MgZXRhZ3Mgd2l0aCBuZXcgZHJpdmVycyBvcmdhbml6YXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDYzMzYyY2ZjNmJhYTk3YWUwZTM3YmEyYzZlY2U1MzBmY2FjOWY3OWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjYgMTU6MDY6MTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFrYWx1OiBDaGFuZ2UgRUJDIHNldHVwIGZvciBDUzAgdG8gZW5hYmxlIDQwME1IeiB1c2FnZQoKICAgIEFzIHN1Z2dlc3RlZCBieSBTZW5hbywgdXNlIGEgZGlmZmVyZW50IEVCQ19QQjBBUCBzZXR1cCBmb3IgNDAwTUh6CiAgICBvcGVyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhMWNlMjI2Mjg3MjcwYmIwMWUyNWI4ZTM2NzRjNzAxZjEyZWRmMTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjYgMTU6MDE6NDUgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogS2lsYXVlYTogQ29uZmlndXJlIHBpbiBtdXggdG8gdXNlIGV4dCBJUlEyIGFzIGludGVycnVwdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4N2RkZWRkNmFkODA0NDI3Y2UxMjVjZWFhMDc2ZDdhNGY3NGU5ZDVkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAyNSAxODo0NTo0NyAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgOiBmaXggdGFncyBjdGFncyBldGFncyB3aXRoIG5ldyBkcml2ZXJzIG9yZ2FuaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTk4MjljYzE4OTM3OGMxNDJjMTNkMmFhOGQ5YTg5N2Q4YmVmMzk2MQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMjE6MjY6NTYgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvbXRkIDogbW92ZSBtdGQgZHJpdmVycyB0byBkcml2ZXJzL210ZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzE4YzBiOTA0MzFmMjY0ODU1MmU1YWRlNzg4MzNmNDI2NTJjZTg1OQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMjE6MTc6NTUgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvbWlzYyA6IG1vdmUgbWlzYyBkcml2ZXJzIHRvIGRyaXZlcnMvbWlzYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzNkYWY1Yjc4NTg4MDdjYjRjZTQxNThjMmM1NjUyNDY3MWMxNGMwOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMjE6MTM6NTkgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvYmxvY2sgOiBtb3ZlIGJsb2NrIGRyaXZlcnMgdG8gZHJpdmVycy9ibG9jawoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGM2OThkY2FhNzAyNzVlYjg4MTRmNjY1YjU0NTU0N2NlZTAxMzg5MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMjA6NTk6NTAgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvcnRjIDogbW92ZSBydGMgZHJpdmVycyB0byBkcml2ZXJzL3J0YwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjg2OGNjNWE1MDc1N2Q5NGYzNmMzMTIzOTU0ODFjYjBmMTg3ZDllNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMjQgMjA6MTQ6NDQgMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvaHdtb24gOiBtb3ZlIGhhcmR3YXJlIG1vbml0b3IgZHJ2aWVycyB0byBkcml2ZXJzL2h3bW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxNmIxOTVjODJhMThjYmZkMTY0ODAwZjE3YTFlZjlkYjJlNDgzMzFhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAxOTo0Njo0NSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9pbnB1dCA6IG1vdmUgaW5wdXQgZHJpdmVycyB0byBkcml2ZXJzL2lucHV0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlNDU1ODY2NjI5MzM2NGZjM2FmMWMxZDkzODFjYTkzM2ZhMGYxMjc1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAxOTo0MDoxMSAyMDA3ICswMTAwCgogICAgZHJpdmVycy91c2IgOiBtb3ZlIHVzYiBkcml2ZXJzIHRvIGRyaXZlcnMvdXNiCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxMzc4ZGY3OTJhN2ZmM2FiZDFiZjU0YTYzZjU0NzU3ODRmNWIwODNjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAxOTozMzozOCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9zZXJpYWwgOiBtb3ZlIHNlcmlhbCBkcml2ZXJzIHRvIGRyaXZlcnMvc2VyaWFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyNDM5ZTRiZmExMTFiYWJmNGJjMDdiYTIwZWZiZjNlMzYwMzY4MTNlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiAyMSAyMToxOToyNCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9uZXQgOiBtb3ZlIG5ldCBkcml2ZXJzIHRvIGRyaXZlcnMvbmV0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzNTJkMjU5MTMwYjM0OWZlOTU5M2I4ZGFkYTY0MWJkNzhhOTY1OWU1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAyMDo0MTo0OCAyMDA3ICswMTAwCgogICAgZHJpdmVycy92aWRlbyA6IG1vdmUgdmlkZW8gZHJpdmVycyB0byBkcml2ZXJzL3ZpZGVvCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3MzY0NjIxNzE4NmFhMTdhZmM4ZTMwNWM1ZjA2ZjA2ZGQzMzVlYWFkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAyMDozMzowOSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9wY21jaWEgOiBtb3ZlIHBjbWNpYSBkcml2ZXJzIHRvIGRyaXZlcnMvcGNtY2lhCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5M2E2ODZlZTljNWRkYzZmYTM2OGMzMmNmYmZkZTZmNjcyNDU5OWZjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAyMDoyODowOSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9wY2kgOiBtb3ZlIHBjaSBkcml2ZXJzIHRvIGRyaXZlcnMvcGNpCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5MTYyMzUyODE3NTc5ODQwZDc4MDJkYTZkODU4NzJiM2NhMDAzYzk3CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVGh1IE5vdiAyMiAxNzoyMzoyMyAyMDA3IC0wNTAwCgogICAgRml4IGZkdCBwcmludGluZyBmb3IgdXBkYXRlZCBsaWJmZHQKCiAgICBBbHNvIGltcHJvdmUgcHJpbnRpbmcgKGFkb3B0IGR0YyB2MSAiYyBzdHlsZSIgaGV4IGZvcm1hdCksIHdoaXRlc3BhY2UgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDllYjc3Y2VhMWZhMTJkNTk2OWViMjZhMWQxZDgxZGEzODFiZDZiMWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDIxIDEzOjMwOjE1IDIwMDcgLTA2MDAKCiAgICBBZGQgYWRkaXRpb25hbCBmZHQgZml4dXAgaGVscGVyIGZ1bmN0aW9ucwoKICAgIEFkZGVkIHRoZSBmb2xsb3dpbmcgZmR0IGZpeHVwIGhlbHBlcnM6CiAgICAgKiBkb19maXh1cF9ieV9wcm9we191MzJ9IC0gRmluZCBtYXRjaGluZyBub2RlcyBieSBwcm9wZXJ0eSBuYW1lL3ZhbHVlCiAgICAgKiBkb19maXh1cF9ieV9jb21wYXR7X3UzMn0gLSBGaW5kIG1hdGNoaW5nIG5vZGVzIGJ5IGNvbXBhdAoKICAgIFRoZSBfdTMyIHZhcmlhbnRzIHdvcmsgdGhlIHNhbWUgb25seSB0aGUgcHJvcGVydHkgdGhleSBhcmUgc2V0dGluZwogICAgaXMga25vdyB0byBiZSBhIDMyLWJpdCBpbnRlZ2VyIGluc3RlYWQgb2YgYSBieXRlIGJ1ZmZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFiNTQ0NjMzYWJkZDE0ZjRkZDVkOTJlNTAwYjczZWI1OWVmNTdlNjcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDIxIDExOjExOjAzIDIwMDcgLTA2MDAKCiAgICBBZGQgZmR0X2ZpeHVwX2V0aGVybmV0IGhlbHBlciB0byBzZXQgbWFjIGFkZHJlc3NlcwoKICAgIEFkZGVkIGEgZml4dXAgaGVscGVyIHRoYXQgdXNlcyBhbGlhc2VzIHRvIHNldCBtYWMgYWRkcmVzc2VzCiAgICBpbiB0aGUgZGV2aWNlIHRyZWUgYmFzZWQgb24gdGhlIGJkX3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGRiYWYwN2NlNjIwYWFiMjQ5ZTM1MDJiMjBhOTg2MjM0YTZhZjFkM2EKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgTm92IDIxIDE0OjA3OjQ2IDIwMDcgLTA2MDAKCiAgICBGaXggd2FybmluZ3MgZnJvbSBpbXBvcnQgb2YgbGliZmR0CgogICAgY21kX2ZkdC5jOiBJbiBmdW5jdGlvbiBmZHRfcHJpbnQ6CiAgICBjbWRfZmR0LmM6NTg2OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBjbWRfZmR0LmM6NjEzOiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBjbWRfZmR0LmM6NjM1OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBjbWRfZmR0LmM6NjM2OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4ZDA0ZjAyZjYyMjRlNjk4M2Y0ODEyZWE0ZGE3MDQ5NTBlYzg1MzljCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE9jdCAyNCAxMTowNDoyMiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGxpYmZkdCBmcm9tIGRldmljZSB0cmVlIGNvbXBpbGVyIChkdGMpCgogICAgVXBkYXRlIGxpYmZkdCB0byBjb21taXQgOGVhZjVlMzU4MzY2MDE3YWEyZTg0NmM1MDM4ZDFhYTE5OTU4MzE0ZSBmcm9tCiAgICB0aGUgZGV2aWNlIHRyZWUgY29tcGlsZXIgKGR0YykgcHJvamVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGU5M2JlY2Y4MGQ3MzJiNjRhZWY4MWIyM2U4YjZlY2UwMmM0MDUzM2QKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglTYXQgTm92IDMgMTk6NDY6MjggMjAwNyAtMDUwMAoKICAgIE1vdmUgZG9fZml4dXAqIGZvciBsaWJmZHQgaW50byBjb21tb24gY29kZQoKICAgIE1vdmVkIHRoZSBnZW5lcmljIGZpeHVwIGhhbmRsaW5nIGNvZGUgb3V0IG9mIGNwdS9tcGM1eHh4IGFuZCBjcHUvbXBjODI2MAogICAgaW50byBjb21tb24vZmR0X3N1cHBvcnQuYyBhbmQgcmVuYW1lZDoKCiAgICBkb19maXh1cCgpCS0+IGRvX2ZpeHVwX2J5X3BhdGgoKQogICAgZG9fZml4dXBfdTMyKCkJLT4gZG9fZml4dXBfYnlfcGF0aF91MzIoKQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjczOGI0YTc1OTk4ZjQyYTc0MDhkZWZhZGM5YmFhYzdhMzFjOTJkYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMjUgMTY6MTU6MDcgMjAwNyAtMDUwMAoKICAgIE1ha2Ugbm8gb3B0aW9ucyB0byBmZHQgcHJpbnQgZGVmYXVsdCB0byAnLycKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGEzYzI5MzNlMDI1MDNmZTM2YWRlMmMxYjY1YWY0NmYyYjdhMTY4ZTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgT2N0IDI0IDEwOjIxOjU3IDIwMDcgLTA1MDAKCiAgICBSZW1vdmVkIHNvbWUgbm9udXNlZCBmZHQgZnVuY3Rpb25zIGFuZCBtb3ZlZCBmZHRfZmluZF9hbmRfc2V0cHJvcCBvdXQgb2YgbGliZmR0CgogICAgUmVtb3ZlZDoKCWZkdF9ub2RlX2lzX2NvbXBhdGlibGUKCWZkdF9maW5kX25vZGVfYnlfdHlwZQoJZmR0X2ZpbmRfY29tcGF0aWJsZV9ub2RlCgogICAgVG8gZWFzZSBtZXJnZSBvZiBuZXdlciBsaWJmZHQgYXMgd2UgYXJlbid0IHVzaW5nIHRoZW0gYW55d2hlcmUgYXQgdGhpcyB0aW1lLgoKICAgIEFsc28gbW92ZWQgZmR0X2ZpbmRfYW5kX3NldHByb3Agb3V0IG9mIGxpYmZkdCBpbnRvIGZkdF9zdXBwb3J0LmMgZm9yIHRoZSBzYW1lCiAgICByZWFzb24uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5OGUyODY3Y2M4NTQwOWI5MTlmODYyZTZjMTYwMjY0NjFlYzk1NWRmCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglXZWQgTm92IDIxIDA5OjE5OjM3IDIwMDcgLTA3MDAKCiAgICBbQlVJTERdIFJlbW92ZSBsaWJyYXJpZXMgd2hlbiB1cGRhdGluZyBhdXRvY29uZi5tawoKICAgIEZpeCBsaWJyYXJ5IHByb2JsZW1zIGNhdXNlZCBieSBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gIFVzaW5nCiAgICBhdXRvY29uZi5tayB0byBkZWNpZGUgd2hpY2ggZmlsZXMgdG8gY29tcGlsZSBoYXMgY2F1c2VkIGEgcHJvYmxlbSB3aGVuCiAgICBjaGFuZ2luZyBjb25maWd1cmF0aW9uIGZyb20gb25lIGJvYXJkIHRvIGFub3RoZXIgd2l0aG91dCBjbGVhcmluZyBvdXQKICAgIHRoZSBsaWJyYXJ5ICgqLmEpIGZpbGVzLgoKICAgIEl0IHVzZWQgdG8gYmUgdGhhdCB0aGUgbGlua2VyIHdhcyBhbHdheXMgcGFzc2VkIHRoZSBzYW1lIGxpc3Qgb2YgLm8KICAgIGZpbGVzIHdoZW4gYnVpbGRpbmcgdGhlIC5hIGZpbGVzLiAgSG93ZXZlciwgdGhhdCBpcyBub3QgbG9uZ2VyIHRydWUKICAgIHdpdGggY29uZGl0aW9uYWwgY29tcGlsYXRpb24uICBOb3csIGEgZGlmZmVyZW50IGJvYXJkIGNvbmZpZyB3aWxsIGhhdmUKICAgIGEgZGlmZmVyZW50IGZpbGUgbGlzdCBwYXNzZWQgdG8gdGhlIGxpbmtlci4gIFRoZSBwcm9ibGVtIG9jY3VycyB3aGVuCiAgICBhIGxpYnJhcnkgaGFzIGFscmVhZHkgYmVlbiBidWlsdCBhbmQgdGhlIGJvYXJkIGNvbmZpZyBpcyBjaGFuZ2VkLgoKICAgIFNpbmNlIHRoZSBsaW5rZXIgd2lsbCB1cGRhdGUgaW5zdGVhZCBvZiByZXBsYWNlIGEgcHJlZXhpc3RpbmcgbGlicmFyeSwKICAgIHRoZW4gaWYgdGhlIGZpbGUgbGlzdCBjaGFuZ2VzIHRvIHJlbW92ZSBzb21lIG9iamVjdCBmaWxlcyB0aGUgb2xkCiAgICBvYmplY3RzIHdpbGwgc3RpbGwgZXhpc3QgaW4gdGhlIGxpYnJhcnkuCgogICAgVGhlIHNvbHV0aW9uIGlzIHRvIHJlbW92ZSBhbGwgb2xkIGxpYnJhcnkgZmlsZXMgd2hlbiBhdXRvY29uZi5tayBpcwogICAgbWFkZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZWQxMzUzZDc0YjljZThhN2ZjZDY2MDU3MGI4NDhhMTg0ZDYxNGI1ZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMDg6NDk6NTAgMjAwNyAtMDYwMAoKICAgIFtCVUlMRF0gY29uZGl0aW9uYWxseSBjb21waWxlIGxpYmZkdC8qLmMgaW4gbGliZmR0L01ha2VmaWxlCgogICAgTW9kaWZ5IGxpYmZkdC9NYWtlZmlsZSB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlICouYyBmaWxlcyBiYXNlZAogICAgb24gdGhlIGJvYXJkIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRhNDM3MTlhNzczODcxMjgxMWQ4MjJjYTgxMjU0MjdiMjdhNTVjZGMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIFtCVUlMRF0gY29uZGl0aW9uYWxseSBjb21waWxlIGNvbW1vbi9jbWRfKi5jIGluIGNvbW1vbi9NYWtlZmlsZQoKICAgIE1vZGlmeSBjb21tb24vTWFrZWZpbGUgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIHRoZSBjbWRfKi5jIGZpbGVzIGJhc2VkCiAgICBvbiB0aGUgYm9hcmQgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAyZjE1NWY2YzBhMWY1ZTlhMzA2YTNmMWY0ZmJlMDY3ZGI3Y2VkM2IxCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBbQlVJTERdIEdlbmVyYXRlIGluY2x1ZGUvYXV0b2NvbmYubWsgZnJvbSBib2FyZCBjb25maWcgZmlsZXMKCiAgICBVc2UgY3BwIGFuZCBzZWQgdG8gcG9zdHByb2Nlc3MgY29uZmlnLmggYW5kIGltcG9ydCB0aGUgZGVmaW5lZCB2YWx1ZXMKICAgIGludG8gaW5jbHVkZS9hdXRvY29uZi5tay4gIGF1dG9jb25mLm1rIGlzIHRoZW4gaW5jbHVkZWQgYnkgY29uZmlnLm1rIHRvCiAgICBnaXZlICdtYWtlJyBhY2Nlc3MgdG8gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24uCgogICAgRG9pbmcgdGhpcyBlbmFibGVzIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGF0IHRoZSBNYWtlZmlsZSBsZXZlbCBpbnN0ZWFkCiAgICBvZiBieSB3cmFwcGluZyBldmVyeSAuYyBmaWxlIHdpdGggI2lmZGVmLyNlbmRpZiB3cmFwcGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNjhiODg5OTlkYTg3YWI4OGU3MWUxMzA2MTkyOTA1YmUzNDUwMTk4ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMTU6MDI6MjYgMjAwNyAtMDYwMAoKICAgIDg2MTBIUENEOiBFbmFibGUgdGhlIDg2MTAgRGlzcGxheSBJbnRlcmZhY2UgVW5pdAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzRmODlmYWE5ZDFlNzdlZDk0N2U2MjhkM2VmZmFhNTEzZmUwNWQwNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMTU6MDA6NTMgMjAwNyAtMDYwMAoKICAgIE1vdmUgODYxMCBESVUgaW50ZXJmYWNlIHN0cnVjdHVyZSBkZWZpbml0aW9ucyB0byBoZWFkZXIgZmlsZS4KCiAgICBUaGVzZSB0d28gc3RydWN0dXJlcyBhcmUgc3RpbGwgbmVlZGVkIGR1cmluZyB0aGUKICAgIGluaXRpYWxpemF0aW9uIGFuZCBzZXR1cCBvZiB0aGUgRElVIGhhcmR3YXJlLgogICAgU28gbW92ZSB0aGVtIHRvIHRoZSBmc2xfZGl1X2ZiLmggZmlsZSBmb3Igbm93LgogICAgT2ZmaWNpYWwgImJsYWgiLgoKICAgIE5vdGljZWQtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA4MGM2NDZkYmY0NzRhMTA5YzNmODU3MThmYjAxY2UwNDJhMzhjNDUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjE0OjE4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL2kyYyA6IG1vdmUgaTJjIGRyaXZlcnMgdG8gZHJpdmVycy9pMmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDlhMzM3ZGRjMTU0YTEwYTI2ZjExN2ZkMTQ3YjAwOWFiY2RlYmE3NWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTm92IDE5IDIyOjIwOjI0IDIwMDcgKzAxMDAKCiAgICBQcmVwYXJlIGZvciAxLjMuMCByZWxlYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjMwYWQ0OWIxNmJmOTk4YjAzYzFhNTIyOGI2Yzg2MzY5ZDYxYzI1OApBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgMTkgMTA6MDI6MTMgMjAwNyAtMDUwMAoKICAgIE1vdmUgQ09ORklHX1FFIG91dCBvZiBDT05GSUdfUENJIHdyYXAgZm9yIE1QQzg1NjhNRFMKCiAgICBDT05GSUdfUUUgc2hvdWxkbid0IGJlIGluIHRoZSB3cmFwIG9mIENPTkZJR19QQ0ksIGZpeCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY4YzMyMDYwOTM2NjE3NmIzMTEwNGQ5YmY1ZTI5NTIzMmUxYzdmMWQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CU1vbiBOb3YgMTkgMTE6MTQ6MTYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUzogRml4IGEgYnVpbGQgd2FybmluZwoKICAgIGxvd2xldmVsX2luaXQuUzogQXNzZW1ibGVyIG1lc3NhZ2VzOgogICAgbG93bGV2ZWxfaW5pdC5TOjQxMzogV2FybmluZzogUHJldGVuZGluZyBnbG9iYWwgc3ltYm9sIHVzZWQgYXMgYnJhbmNoIHRhcmdldCBpcyBsb2NhbC4KCiAgICBMb29raW5nIGF0IGNvZGVzLCB0aGUgYG1lbXRlc3QnIGFuZCBgY2xlYXJtZW0nIGFyZSBpbnRlbnRpb25hbCBtaXhlZAogICAgdXNlIG9mIGBnbG9iYWwgc3ltYm9scycgYW5kIGBsYWJlbCcgZm9yIGRlYnVnZ2luZyBwdXJwb3NlLiBUbyBtYWtlIGl0CiAgICBidWlsZCwganVzdCBkaXNhYmxlIGdsb2JhbC1zeW1ib2xzLXVzZSBmb3Igbm93LiBBcyBhIHJlc3VsdCBgbWVtdGVzdCcKICAgIHN0aWxsIHJlbWFpbnMgYXMgdW51c2VkLCBidXQgbGVhdmUgaXQgYmUuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgZThkYTU4ZjJiYzA5Mjg5MWU4Y2M5MmI5MjdlZDVjNGJkMGNiMGNhYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMTkgMTI6NTk6MTQgMjAwNyArMDEwMAoKICAgIEZpeCBidWlsZCBwcm9ibGVtcyB3aXRoIG1wMnVzYiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmJmNGM2ODZhZmNhMWU4NmUxYzM4NGQ1OTIxOGY5MTQ2MDU3MTNiZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMTggMTg6MzY6MTEgMjAwNyArMDEwMAoKICAgIHMzYzI0eDA6IEZpeCB1c2Jfb2hjaS5jIG1pc3NpbmcgaW4gTWFrZWZpbGUKICAgIGFuZCB1c2Jfb2hjaS5jIHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDYwNzNmNjFlMDc4ZGE1ZGRiNTIxYjU2MjU2YmNjMzY1MDg1ODk4ODMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDE4IDEyOjU1OjAyIDIwMDcgKzAxMDAKCiAgICBwYjF4MDAgYm9hcmQ6IEZpeCB1MTYgc3RhdHVzIGRlY2xhcmF0aW9uIHdoZW4gUENNQ0lBIGlzIGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDg0MTJkODE0Y2U4YmY1NTcwYTJiNzQ3ZjFlN2ZkMzIxMDk3ZmU5ODcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTm92IDE4IDE3OjExOjA5IDIwMDcgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgZm9yIEFSTSBzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDA5ZWNkYzBiYjQ3ZGQyOGIwYWY2YzI1ZmZkNjU4ZDIyY2MzNmIzNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTggMTY6MzY6MjcgMjAwNyArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBmb3IgUFBDIHN5c3RlbXMuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NTM4MTFhM2MyYjM1ODU2YmYxMmUxOTZkY2M4YzQ2OTRlMjhlNDIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gTm92IDE4IDE0OjQ0OjQ0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENvcnJlY3QgNDA1RVggUENJZSBVVEwgcmVnaXN0ZXIgbWFwcGluZwoKICAgIE1hcCA0ayBtZW0gc3BhY2UgZm9yIFVUTCByZWdpc3RlcnMgZm9yIGVhY2ggcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDc5YzJjNGZhNzFjMGQxZWJlZjM5NDUwOGRmOTA4OGRmOGEzMDhkMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMTcgMTE6MzE6MTAgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIG5ldC9uZXQuYyBhbmQgbmV0L25mcy5jCgpjb21taXQgN2UxNGZjNjUzNjhjYmQyODYxYjEyMDc0NTNkYTU1YTRmYzdiM2Y4MQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBOb3YgMTcgMjA6NDI6NDUgMjAwNyArMDkwMAoKICAgIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDIzMDljMTMwYWE0Yzg0YjkxYmQ4NzRhNDEyNjljOTIzZWI2MWI1NTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDc6NTg6MjUgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfc2NzaS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDllYTYxYjU3OTY4NTU0ZWFmMGY0NzRlYzdlMDg4YjE3ZDM2N2Y0NzQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMTQ6NTI6MjkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgS2lsYXVlYSBjb25maWcgZmlsZQoKICAgIC0gVXNlIGdlbmVyaWMgR1BJTyBjb25maWd1cmF0aW9uIGZyYW1ld29yayAoQ0ZHXzR4eF9HUElPX1RBQkxFKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZTFkODg0YjdjYjYwMjAwNzMyOWM1MTdlYzFjNDUzZTNhNmE1ZDljCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyNiAyMDA3ICswOTAwCgogICAgW01JUFNdIGNwdS9taXBzL2NvbmZpZy5tazogRml4IEdOVSBhc3NlbWJsZXIgbWlub3IgdmVyc2lvbiBwaWNrZXIKCiAgICBDdXJyZW50IHRyaWNrIHRvIHBpY2sgdXAgR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIGRvZXMgbm90IHdvcmsgd2l0aCB0aGUKICAgIGxhdGVzdCBiaW51dGlscyAoMjAwNy0wMy0wMSBvciBsYXRlcikgZHVlIHRvICR7UEtHVkVSU0lPTn0gbm93IGRlZmF1bHQgdG8KICAgICIoR05VIEJpbnV0aWxzKSAiLgoKICAgICAgJCBzZGUtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIgogICAgICBHTlUgYXNzZW1ibGVyIDIuMTUuOTQgbWlwc3NkZS02LjAyLjAyLTIwMDUwNjAyCiAgICAgICQgc2RlLWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScKICAgICAgMi4xNS45NAogICAgICAkIHNkZS1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nIHxhd2sgLUYuICd7cHJpbnQgJDJ9JwogICAgICAxNQogICAgICAkCgogICAgICAkIG1pcHMtbGludXgtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIgogICAgICBHTlUgYXNzZW1ibGVyIChHTlUgQmludXRpbHMpIDIuMTgKICAgICAgJCBtaXBzLWxpbnV4LWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScKICAgICAgKEdOVQogICAgICAkIG1pcHMtbGludXgtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JyB8YXdrIC1GLiAne3ByaW50ICQyfScKICAgICAgKG5vIG91dHB1dCkKICAgICAgJAoKICAgIEFzIGEgcmVzdWx0IG9mIGFib3ZlLCB5b3UnbGwgc2VlIG1hbnkgbm9pc2VzIHdpdGggc3VjaCBiaW51dGlsczoKCiAgICAgIG1ha2UgLUMgY3B1L21pcHMvCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICBtYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvY3B1L21pcHMnCiAgICAgIG1pcHMtbGludXgtZ2NjICAtRF9fQVNTRU1CTFlfXyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4QjAwMDAwMDAgIC1JL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9pbmNsdWRlIC1mbm8tYnVpbHRpbiAtZmZyZWVzdGFuZGluZyAtbm9zdGRpbmMgLWlzeXN0ZW0gL2hvbWUvc2t1cmliYXkvZGV2ZWwvYnVpbGRyb290L2J1aWxkX21pcHMvc3RhZ2luZ19kaXIvdXNyL2Jpbi8uLi9saWIvZ2NjL21pcHMtbGludXgtdWNsaWJjLzQuMi4xL2luY2x1ZGUgLXBpcGUgIC1EQ09ORklHX01JUFMgLURfX01JUFNfXyAtRyAwIC1tYWJpY2FsbHMgLWZwaWMgLXBpcGUgLW1zb2Z0LWZsb2F0IC1tYXJjaD00a2MgLW10dW5lPTRrYyAtRUIgLWMgLW8gaW5jYWlwX3dkdC5vIGluY2FpcF93ZHQuUwogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIG1pcHMtbGludXgtZ2NjICAtRF9fQVNTRU1CTFlfXyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4QjAwMDAwMDAgIC1JL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9pbmNsdWRlIC1mbm8tYnVpbHRpbiAtZmZyZWVzdGFuZGluZyAtbm9zdGRpbmMgLWlzeXN0ZW0gL2hvbWUvc2t1cmliYXkvZGV2ZWwvYnVpbGRyb290L2J1aWxkX21pcHMvc3RhZ2luZ19kaXIvdXNyL2Jpbi8uLi9saWIvZ2NjL21pcHMtbGludXgtdWNsaWJjLzQuMi4xL2luY2x1ZGUgLXBpcGUgIC1EQ09ORklHX01JUFMgLURfX01JUFNfXyAtRyAwIC1tYWJpY2FsbHMgLWZwaWMgLXBpcGUgLW1zb2Z0LWZsb2F0IC1tYXJjaD00a2MgLW10dW5lPTRrYyAtRUIgLWMgLW8gY2FjaGUubyBjYWNoZS5TCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgbWlwcy1saW51eC1nY2MgLWcgIC1PcyAgIC1EX19LRVJORUxfXyAtRFRFWFRfQkFTRT0weEIwMDAwMDAwICAtSS9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvaW5jbHVkZSAtZm5vLWJ1aWx0aW4gLWZmcmVlc3RhbmRpbmcgLW5vc3RkaW5jIC1pc3lzdGVtIC9ob21lL3NrdXJpYmF5L2RldmVsL2J1aWxkcm9vdC9idWlsZF9taXBzL3N0YWdpbmdfZGlyL3Vzci9iaW4vLi4vbGliL2djYy9taXBzLWxpbnV4LXVjbGliYy80LjIuMS9pbmNsdWRlIC1waXBlICAtRENPTkZJR19NSVBTIC1EX19NSVBTX18gLUcgMCAtbWFiaWNhbGxzIC1mcGljIC1waXBlIC1tc29mdC1mbG9hdCAtbWFyY2g9NGtjIC1tdHVuZT00a2MgLUVCIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLWMgLW8gYXNjX3NlcmlhbC5vIGFzY19zZXJpYWwuYwogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCgogICAgVGhpcyBwYXRjaCBzaW1wbGlmaWVzIHRoZSB0cmljayBhbmQgbWFrZXMgaXQgd29yayB3aXRoIGJvdGggdmVyc2lvbnMgb2YgZ2FzLgogICAgSSBhbHNvIHJlcGxhY2UgYW4gZXhwZW5zaXZlIGBhd2sgKG9yIGdhd2spJyB3aXRoIGBjdXQnLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMTY2NjRmNzI4NTA4NDZlNjQ1NjE2ZGExYzBmYTVhZmNkNmQxNWYxNQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBOb3YgMTcgMjA6MDU6MjYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBSZW1vdmUgdXNlbGVzcyBpbnN0cnVjdGlvbnMgZm9yIGluaXRpYWxpemluZyAkZ3AuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwM2MwMzFkNTY2MGVhOTQ2YzM5YWY2ZTJlMTYyNjdkYTg1N2M2MDlmCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNToyNzowNiAyMDA3ICswOTAwCgogICAgW01JUFNdIE1JUFMgNEsgY29yZTogQ29kaW5nIHN0eWxlIGNsZWFudXBzCgogICAgTm8gbG9naWNhbCBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZjVlNDI5ZDM4NjBiYmE0YzZhZThiZWFkOGY3ODM0OWZhMjQ0OTFiMgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBOb3YgMTcgMjA6MDU6MjAgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBndGgyLmM6IEZpeCBhIHdhcm5pbmcgb24gZ3RoMiBidWlsZC4KCiAgICBndGgyLmM6IEluIGZ1bmN0aW9uICdtaXNjX2luaXRfcic6CiAgICBndGgyLmM6NDM0OiB3YXJuaW5nOiBwb2ludGVyIHRhcmdldHMgaW4gcGFzc2luZyBhcmd1bWVudCAyIG9mICdzZXRlbnYnIGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA0ZmJkMDc0MWIyYjY0NDFkYTEwYmU5M2UxMDI2NzEyMjU4MWI3MDc5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNToyMjozMyAyMDA3ICswOTAwCgogICAgW01JUFNdIGF1MXgwMF9ldGguYzogRml4ZWQgYSB3YXJuaW5nIG9uIHBiMTAwMCBidWlsZC4KCiAgICBhdTF4MDBfZXRoLmM6IEluIGZ1bmN0aW9uICdhdTF4MDBfbWlpcGh5X3dyaXRlJzoKICAgIGF1MXgwMF9ldGguYzoxMzk6IHdhcm5pbmc6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZjAxMzIwNDU5NzM2ZjE1NjcwNzQyNWNmODExMmY5ODYwNjMwMWFhNApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBPY3QgMjcgMTU6MDA6MjUgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBhdTF4MDBfZXRoLmM6IEZpeCBhdTF4MDBfbWlpcGh5X3tyZWFkLHdyaXRlfSBidWlsZCBlcnJvcgoKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9lbmV0X2luaXRpYWxpemUnOgogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6ICdhdTF4MDBfbWlpcGh5X3JlYWQnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKICAgIGF1MXgwMF9ldGguYzoyNDY6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluLikKICAgIGF1MXgwMF9ldGguYzoyNDY6IGVycm9yOiAnYXUxeDAwX21paXBoeV93cml0ZScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBhdTF4MDBfZXRoLmM6IEluIGZ1bmN0aW9uICdhdTF4MDBfbWlpcGh5X3dyaXRlJzoKICAgIGF1MXgwMF9ldGguYzoyOTg6IHdhcm5pbmc6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAogICAgbWFrZVsxXTogKioqIFthdTF4MDBfZXRoLm9dIEVycm9yIDEKCiAgICBGaXhlZCBieSBtb3ZpbmcgdGhlc2UgdHdvIGZ1bmN0aW9ucyBmb3J3YXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgYjA5MjU4YzUzOTNlZGQxMDg3YzVmMzlhZTY4MzM4ZjE2YjQ5ZjhiMwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBPY3QgMjcgMTU6MDA6MjUgMjAwNyArMDkwMAoKICAgIE1BS0VBTEw6IEFkZGVkIG1pc3NpbmcgcGIxMDAwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAyZTRhNmUzNjY3YTFlMzljMGU2ZTk5NDk4Njg2YjE1ZDI3MThiMzY5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNCAyMDA3ICswOTAwCgogICAgW01JUFNdIHBiMTAwMDogUmVwbGFjZSBvYnNvbGV0ZSBtZW1zZXR1cC5TIHdpdGggbG93bGV2ZWxfaW5pdC5TCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA2NjJlNWNiMzk3MjQ5YzNlYTg4YTRjMzI1NWU5Y2NmYzQwYjk4ZDgyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNCAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IENsZWFudXAgX191X2Jvb3RfY21kX3tzdGFydCxlbmR9CgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA1OTQ3ZjY5OTlhYWZhN2M1NGMxMzkwOTgzZDI2NGE4NDYzZGZlYThlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwMjozNDozOCAyMDA3ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPSUcsIHByZXBhcmUgZm9yIC1yYzQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZkMzI5ZTZmMDViYmRmZTZiZDcxYjBlMDlmMGM3NmQzYjBhMDI1YTUKQXV0aG9yOiBMdW90YW8gRnUgPGwuZnVAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBOb3YgMTQgMTg6NTg6MzMgMjAwNyArMDEwMAoKICAgIEZpeCB0aGUgaTJjIGZyZXF1ZW5jeSBhbmQgZGVmYXVsdCBhZGRyZXNzIGluIHJzZHByb3RvIGJvYXJkCgogICAgcnNkcHJvdG8gYm9hcmQgc3VwcG9ydCBoYXMgd3JvbmcgSTJDIGZyZXF1ZW5jeSBhbmQgd3JvbmcgcmV0dXJuIHZhbHVlCiAgICBoYW5kbGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMdW90YW8gRnUgPGwuZnVAcGVuZ3V0cm9uaXguZGU+Cgpjb21taXQgNDI5YzE4MGVkYWQwMzhmOTFjOTg5Y2IxNGI0NzgyMjgwOTJlNzA1NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDE6NDU6MzggMjAwNyArMDEwMAoKICAgIHBvd2VycGM6IEJhY2tvdXQgcmVsb2NhdGlvbiBjaGFuZ2VzIGZvciBNUEM1MTIxLCB0b28uCgogICAgQXBwbHkgR3JhbnQgTGlrZWx5J3MgYmFja291dCB0byBNUEM1MTIxIGNvZGUsIHRvby4KCiAgICBQb2ludGVkIG91dCBieSBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWMzZGQ0MzMzOGEwNzcxNjVlN2UwMzA5Y2IzOTk0ZTY1ZDJiZGJmOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIE5vdiAxMyAyMjoxODozMyAyMDA3IC0wNzAwCgogICAgcG93ZXJwYzogQmFja291dCByZWxvY2F0aW9uIGNoYW5nZXMuCgogICAgVWdoLiAgSSAqaGF0ZSogdG8gYmFjayB0aGlzIGNoYW5nZSBvdXQsIGJ1dCB0aGVzZSBjb21waWxlciBmbGFncyBkb24ndAogICAgd29yayBmb3IgcmVsb2NhdGlvbiBvbiBhbGwgdmVyc2lvbnMgb2YgR0NDLiAgSSd2ZSBub3QgYmVlbiBhYmxlIHRvCiAgICByZXByb2R1Y2UgdGhlIGVudmlyb25tZW50IGluIG15IHNldHVwIChhbmQgaGVuY2UsIG5vdCBiZWVuIGFibGUgdG8KICAgIGZpbmQgYSBjb21iaW5hdGlvbiB0aGF0ICpkb2VzKiB3b3JrKSwgc28gSSd2ZSBnb3Qgbm8gY2hvaWNlIGJ1dCB0byBnbwogICAgYmFjayB0byB0aGUgb2xkIGdjYyBmbGFncyBhbmQgbGlua2VyIHNjcmlwdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWMxNTAxMGVmYWQ5ODBhZDU0OThjYzU2NWZjMWVkNzBkZjJmNTJiNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMTMgMDk6MTE6MDUgMjAwNyArMDEwMAoKICAgIEZpeGVkIG1pcHNfaW9fcG9ydF9iYXNlIGJ1aWxkIGVycm9ycy4KCiAgICBUaGlzIHBhdGNoIGhhcyBiZWVuIHNlbnQgb246CiAgICAtIDI5IFNlcCAyMDA3CgogICAgQWx0aG91Z2ggbWlwc19pb19wb3J0X2Jhc2UgaXMgY3VycmVudGx5IGEgcGFydCBvZiBJREUgY29tbWFuZCwgaXQgaXMgcXVpdGUKICAgIGZ1bmRhbWVudGFsIGZvciBNSVBTIEkvTyBwb3J0IGFjY2VzcyBzdWNoIGFzIGluW2J3bF0gYW5kIG91dFtid2xdLiBTbyBtb3ZlCiAgICBpdCB0byBNSVBTIGdlbmVyYWwgcGFydCwgYW5kIGludHJvZHVjZSBgc2V0X2lvX3BvcnRfYmFzZSgpJyBmcm9tIExpbnV4LgoKICAgIFRoaXMgcGF0Y2ggaXMgdHJpZ2dlcmVkIGJ5IG11bHRpcGxlIGRlZmluaXRpb24gb2YgYG1pcHNfaW9fcG9ydF9iYXNlJyBidWlsZAogICAgZXJyb3Igb24gZ3RoMiAoYW5kIHRiMDIyOSBhbHNvIG5lZWRzIHRoaXMgZml4LikKCiAgICBib2FyZC9ndGgyL2xpYmd0aDIuYShndGgyLm8pOiBJbiBmdW5jdGlvbiBgbG9nX3NlcmlhbF9jaGFyJzoKICAgIC9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvYm9hcmQvZ3RoMi9ndGgyLmM6NDc6IG11bHRpcGxlIGRlZmluaXRpb24gb2YgYG1pcHNfaW9fcG9ydF9iYXNlJwogICAgY29tbW9uL2xpYmNvbW1vbi5hKGNtZF9pZGUubyk6L2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9jb21tb24vY21kX2lkZS5jOjcxMjogZmlyc3QgZGVmaW5lZCBoZXJlCiAgICBtYWtlOiAqKiogW3UtYm9vdF0gRXJyb3IgMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZlY2JiN2EzZmE5YjA5NDBlZDMzZTQ5MGQxOTVkNGI2ODMwYjI0MjIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAxOjMwOjQwIDIwMDcgKzAxMDAKCiAgICBGaXggYSBidWcgaW4gdGhlIHNsYXZlIHNlcmlhbCBwcm9ncmFtbWluZyBtb2RlIGZvciB0aGUgWGlsaW54CiAgICBTcGFydGFuMi8zIEZQR0FzLiBUaGUgb2xkIGNvZGUgdXNlZCAiPCAwIiBvbiBhICJjaGFyIiB0eXBlIHRvIHRlc3QgaWYKICAgIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCB3YXMgc2V0LCB3aGljaCBkaWQgbm90IHdvcmsgb24gYW55CiAgICBhcmNoaXRlY3R1cmUgd2hlcmUgImNoYXIiIGRlZmF1bHRlZCB0byBiZSBhbiB1bnNpZ25lZCB0eXBlLgoKICAgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgQW5nZWxvcyBNYW5vdXNhcmlkaXMgPGFtYW5vdXNAaW5hY2Nlc3NuZXR3b3Jrcy5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkMDhiNzIzM2JjMjUyZmFhZDgzMzllN2NhMGRkZmQ2MmZhNzk5MDNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAxIDEyOjIzOjI5IDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggYnJva2VuIHZhcmlhYmxlIHJlZmVyZW5jZSB3aGVuICNkZWYgREVCVUdpbmcuCgogICAgU29tZXRpbWVzIHlvdSBjYW4ndCByZWZlcmVuY2UgdGhlIEREUjIgY29udHJvbGxlciB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmOWQ5MTY0ZDljNmI1YTdmMDM5M2ZkOGQ3ZTI0NmI4YTAzMjZiYzE5CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNiAxODozMjowMCAyMDA3ICswODAwCgogICAgbWFrZSA4NjEwIGJvYXJkIHVzZSBwaXhpcyByZXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGI3NGIzYzFjOTQ4MWE2YmZmYmY4Y2Q0NDVlNWJjYmY2OTA4ZTgzNgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTk6MjY6MjEgMjAwNyArMDgwMAoKICAgIFVuaWZ5IHBpeGlzX3Jlc2V0IGFsdGJhbmsgYWNyb3NzIGJvYXJkIGZhbWlsaWVzCgogICAgQmFzaWNhbGx5LCByZWZhY3RvciB0aGUgQ0ZHX1BJWElTX1ZCT09UX01BU0sgdmFsdWVzCiAgICBpbnRvIHRoZSBzZXBhcmF0ZSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRiZjU1NTQ2NWM3OTI2YmUxM2UxMDQ2YWMwZDBmMDVhYzcyODI5YwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBOb3YgNyAwODoxOToyMSAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3YTYwZWU3YzYyNDhhOTU4YzU3NTdkMzY2MGExNzAyNzIzYTI3ODZkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiA3IDA4OjE5OjE5IDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBjb21tb24vY21kX2lkZS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmMzFkMzhiOWVlYTliMzJmNmExYWM4NDhhMjk4Y2M3MWNhNGM5YTAzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDE2IDE0OjE2OjU0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSA0MDVFWCBQQ0llIFVUTCByZWdpc3RlciBjb25maWd1cmF0aW9uCgogICAgVGlsbCBub3cgdGhlIFVUTCByZWdpc3RlcnMgb24gNDA1RVggd2VyZSBub3QgaW5pdGlhbGl6ZWQgYnV0IGxlZnQgd2l0aAogICAgdGhlaXIgZGVmYXVsdCB2YWx1ZXMuIFRoaXMgcGF0Y2ggbmV3IGluaXRpYWxpemVzIHNvbWUgb2YgdGhlIFVUTAogICAgcmVnaXN0ZXJzIG9uIDQwNUVYLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlY2RjYmQ0ZjhjMWY4Y2VmZDc4NTc1MmY0ZTc1MzZhYWUyYTRlY2Y5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDE2IDE0OjAwOjU5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIE1ha2FsdSBmb3IgYm9hcmQgcmV2IDEuMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBjaGFuZ2VzIG5lZWRlZCBmb3IgTWFrYWx1IHJldiAxLjE6CgogICAgLSBFbmFibGUgMm5kIEREUjIgYmFuayByZXN1bHRpbmcgaW4gMjU2TUJ5dGUgb2YgU0RSQU0KICAgIC0gRW5hYmxlIDJuZCBldGhlcm5ldCBwb3J0IEVNQUMxCiAgICAtIFVzZSBnZW5lcmljIEdQSU8gY29uZmlndXJhdGlvbiBmcmFtZXdvcmsgKENGR180eHhfR1BJT19UQUJMRSkKICAgIC0gUmVzZXQgUENJZSBwb3J0cyB2aWEgR1BJTyB1cG9uIGJvb3R1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZDRmYWFlNjVlMTE1ZTMyNzQyNWNkNTE0YzFhMzUxNDZhODUxNjZiCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBHcm91cCBQQ0kgYW5kIFBDTUNJQSBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTc5OGY4N2RjMTBhNDk2ZDc5ZDMxNzdiOWY1YTc2NDg4OTg3ZmQzNQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgR3JvdXAgYmxvY2svZmxhc2ggZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGRmNThjODE1NTE3MDBmMDU4YjQ0Y2FjZjU1YTc5OTdmYTYzYmZlMGEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIEdyb3VwIFVTQiBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWRiYjZlZDYyMmU1MzliMGM4NDkzZWY3ZTU3OGQzYTUzMzE4MWQyOQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMCAyMDA3IC0wNjAwCgogICAgR3JvdXAgaTJjIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlYzAwYzc2ZGUwZTU5NzEyNzM5MDU5OThkNjJkNmJiMTE5MzI0MjE4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBHcm91cCBjb25zb2xlIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3NTRmMjMwYWEwMWI4Yzc4OWZjMzFmODAxM2MyNDg3OTU0MDczMzAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBHcm91cCBuZXR3b3JrIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmMDAzN2M1NmIwZDEyY2Q0NjIxNTEyNDY2N2I5ZjgzZDYwZWY5MzkxCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBCdWlsZDogc3BsaXQgQ09CSlMgdmFsdWUgaW50byBtdWx0aXBsZSBsaW5lcwoKICAgIFRoaXMgY2hhbmdlIGlzIGluIHByZXBhcmF0aW9uIGZvciBjb25kdGl0aW9uaWFsIGNvbXBpbGUgc3VwcG9ydCBpbiB0aGUKICAgIGJ1aWxkIHN5c3RlbS4gIEJ5IHNwbGl0aW5nIHRoZW0gYWxsIGludG8gc2VwZXJhdGUgbGluZXMgbm93LCBzdWJzZXF1ZW50CiAgICBwYXRjaGVzIHRoYXQgY2hhbmdlICdDT0JKUy15ICs9ICcgaW50byAnQ09CSlMtJChDT05GSUdfPGJsYWg+KSArPSAnIHdpbGwKICAgIGJlIGxlc3MgaW52YXNpdmUgYW5kIGVhc2llciB0byByZXZpZXcKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMWI0YWFmZmU0ZmIyYTVlOTVkOTExMWE1ZDk0ZmQxZjg5MjE1ZGNlNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMCAyMDA3IC0wNjAwCgogICAgQWRkIC5naXRpZ25vcmUgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NTU0MTNmMzVmMDU0YTgyZTQwMDQyZjFkYmNmNTAxYzZhMDU3MTliCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjI3OjUyIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgcmVsb2NhdGlvbiBmaXh1cCBmb3IgbXBjNXh4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzY0OWNkOTliYTgxNWI2NjAxODY4NzM1NzY1NjAyZjAwZWYzNjkyYi4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlMTU2MzM4ODhhMDU4YWFjYjMxYTYyZDJjZjEyNzhlMWU0YzIzNmFiCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjI0OjMyIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgTVBDNXh4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDZmNzU3NmIyMGVjZjBkMDQwYzNhYzNiMDMyYjVjYmM4NjBlMzhhOTAuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMTM5MzY1ZmJlNTY2ZDBmYzYxOWExZWQwNDQ1MmVjNTM4OGYwY2VmOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMTowNCAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyMjAiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhODVkZDI1NGMwNTc3ZmNhMTM2MjdjNDZlOTNmYzJhZDRjNGYxZjAwLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDcwOTIyMzQyMzY5ZTVlMzliMjg2ZmUyMWU3NjhhMjM5Y2EwN2E1MTQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NTcgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjR4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjNhNTJmZTA1OTIzOTM1ZGI4Njk4NWRhZjk0MzhlMmY3MGFjMzlhYS4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5NjI3OWFiNGNhZDYwY2I1OTcyYWE5MzRmYmU0ODQ1YWMwMmNjNzVhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjUwIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI2MCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDVhZjYxYjJmNGI4MzhhMDVmNzliZTI3NGYzZTVhNjZlZGQyZDljOTYuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTI4ZmUzM2IyNGNkZjM4MmE4ZGM4Njg3ZmVkMjRiMTk2MWNkYjVkNgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo0MyAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgzeHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAwNTcwMDRmNGE0ODYzNTU0ZDU2Y2M1NjI2OGJmYTdjN2Q5NzM4ZTI3LgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGM5Mzk0NWU4ZjllMzAwODYwZDJiZjczYTI1NDljZTU3OTRmOGJkMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6MjUgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiW01QQzUxMnhdIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDhkMTc5NzlkMDM1OTQ5MmE4MjJhMGE0MDlkMjZlM2EzNTQ5YjRjZDQuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYzk2NzJmODFmMWJkYjRlOGRkZjYyYWE3MmNhMDIwNmU4YjcyYWExYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAxNSAxNDoyNTowOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBTbWFsbCBBTUNDIEtpbGF1ZWEgY2xlYW51cAoKICAgIFJlbW92ZSBub3QgbmVlZGVkIHBjaV90YXJnZXRfaW5pdCgpIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZWU3NDdmMTliNDYwYTBlOWRhMjBmZjIxZTkwZmRhYWMxY2VjMzU5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDE1IDE0OjIzOjU1IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSA0NDAgR1BJTyBpbml0IHRhYmxlIENGR180NDBfR1BJT19UQUJMRSBmb3IgNDA1IHBsYXRmb3JtcwoKICAgIC0gUmVuYW1lIENGR180NDBfR1BJT19UQUJMRSB0byBDRkdfNHh4X0dQSU9fVEFCTEUKICAgIC0gQ2xlYW51cCBvZiB0aGUgNHh4IEdQSU8gZnVuY3Rpb25zCiAgICAtIE1vdmUgc29tZSBHUElPIGRlZmluZXMgZnJvbSB0aGUgY3B1IGhlYWRlcnMgcHBjNDA1LmgvcHBjNDQwLmggaW50byBncGlvLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGFkYTBlYmYzOGU0MDczYmVlYTAzMDkxODhiMjVkODJhMTEyYTJhZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAxNSAxNDoyMDowOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBTUNDIFRhaWh1IGJvYXJkIGNvbmZpZyBmaWxlIGNsZWFudXAKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBBTUNDIFRhaWh1IGEgbGl0dGxlIG1vcmUgY29tcGF0aWJsZSB0byB0aGUgb3RoZXIKICAgIEFNQ0MgZXZhbCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVlNzFjNTFkNzRjOTYzZDMxNzQwNjBjMDc4ZGNhY2YxM2JkZDAyZWYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTm92IDE1IDEzOjM3OjI4IDIwMDcgKzAxMDAKCiAgICBbSU5LQTR4MF0gTkcgaGFyZHdhcmU6IGZsYXNoIHN1cHBvcnQKCiAgICBEaXNhYmxlZCBhbmQgcmVtb3ZlIGlua2E0eDAgY3VzdG9tIGZsYXNoIGRyaXZlciwgdXNlIENGSSBmbGFzaAogICAgZHJpdmVyIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1ZmI2ZDcxOTFlMjA2Y2RkZTBlMjMxNDBmZDgxMTFjYWVkOTNhNTk1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAxMzoyOTo1NSAyMDA3ICswMTAwCgogICAgW0lOS0E0eDBdIE5HIGhhcmR3YXJlOiBTRFJBTSBzdXBwb3J0CgogICAgQWRkIHN1cHBvcnQgZm9yIHRocmVlIG5ldyBERFIgY2hpcHMgdGhhdCBtYXkgIGJlIHByZXNlbnQgb24gYSBORwogICAgSU5LQTR4MCBoYXJkd2FyZTogSFlCMjVENTEyMTYwQkYtNSwgSzRINTExNjM4Qy03Q0IzLCBUNDZWMzJNMTZCTi02SVQuCgogICAgQ2xlYW51cCBib2FyZC9pbmthNHgwL210NDhsYzE2bTE2YTItNzUuaCBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZjIzY2IzNGMzNjdiYjI3NTg1YTRmZGI4YTc1Mjc3MzcwZTdkMDU5NgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBOb3YgMTUgMTM6MjQ6NDMgMjAwNyArMDEwMAoKICAgIFtJTktBNHgwXSBORyBoYXJkd2FyZTogcGxhdGZvcm0gY29kZSB1cGRhdGUKCiAgICAtIENsZWFudXAgY29tcGlsZSB3YXJuaW5ncy4KICAgIC0gQWRkIG1pc3NpbmcgJ1wwJyBpbiBkZWZhdWx0IGVudmlyb25tZW50LgogICAgLSBJbmNyZWFzZSBDRkdfTU9OSVRPUl9MRU4gdG8gMjU2IEtpQi4KICAgIC0gQWRkIHJlcXVpcmVkIENGR19VU0VfUFBDRU5WLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMmFlNjRmNTEzNWU1MWJiMTg3NTM4ODRkMTI2NWI5OWU4OWI1YWVkZApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVRodSBOb3YgMTUgMDg6NTg6MDAgMjAwNyArMDAwMAoKICAgIFJlbW92ZSB3YXJuaW5ncyByZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCiAgICBSZW1vdmUgd2FybmluZ3MgcmUgb25lbmFuZF9yZWFkKCkgJiB3cml0ZSgpCgpjb21taXQgMmRiOTE2ZTE0NDEwZTNlYzE3Mzg1MDhjN2JmNGRmZWIyYjI5OWFlNwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVRodSBOb3YgMTUgMDg6NDU6MTMgMjAwNyArMDAwMAoKICAgIENvcnJlY3Rpb24gcGF0Y2gKCmNvbW1pdCAxZDhhNDllY2ExYzdiZGM4ZGIxYzQ3YTkyZjkwMTRhMjllYWQwM2FlCkF1dGhvcjogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE4OjUyOjI4IDIwMDcgKzA4MDAKCiAgICBFbmFibGUgVUxpMTU3NSBFdGhlcm5ldCBzdXBwb3J0IGluIDg2MTBIUENEIGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU0ZmQ2YzkzYzI4YTBhNDUzNTJmZmY1ZGQ5MjY3MzQwMWZmNTYzZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTMgMDg6MTg6MjAgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogbHdtb241OiBDaGFuZ2UgUEhZIHJlc2V0IHNlcXVlbmNlIGZvciBQSFkgTURJTyBhZGRyZXNzIGxhdGNoaW5nCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdkMGE0MDY2YjVhNmI2OThlNWZjMWI2NmNmZTk3MDU3NzRiYmNlOTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTMgMDg6MDY6MTEgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IDQwNUVYIFBDSWUgVVRMU0VUIHJlZ2lzdGVyIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFjZTU1MTUxYzg1ZDA2OGY3MDMxN2E4ZDY1YzYxMDU4Yjg5MWFmYjQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAxMyAwNzo1MDoyOSAyMDA3ICswMTAwCgogICAgW1VDMTAxXSBTUkFNIG5vdyB3aXRoIDIgTUIgd29ya2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyZDE0Njg0MzQxMTA5YTY5NjE2ZTRkNjAxNmNkNjE0MDJkNTUwODZmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNTozNzo1MyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVc2UgZ2VuZXJpYyB1c2Itb2hjaSBkcml2ZXIgZm9yIHNlcXVvaWEgYm9hcmQKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBzZXF1b2lhIGJvYXJkIHVzZSB0aGUgZ2VuZXJpYyB1c2Itb2hjaSBkcml2ZXIKICAgIGluc3RlYWQgb2YgY3B1L3BwYzR4eC91c2Jfb2hjaS5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDliZTY1OWFjMDg2OGRjMzY3Y2FhOTU3YzVjNzI1ZTQ2YjA3ZjZhNWYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIE5vdiA5IDE1OjM3OjIzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IE1ha2UgVVNCIHdvcmtpbmcgd2l0aCBDT05GSUdfNHh4X0RDQUNIRSBkZWZpbmVkCgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGUgNDR4IGQtY2FjaGUgb24gJ3VzYiBzdGFydCcgYW5kCiAgICByZWVuYWJsZXMgaXQgb24gJ3VzYiBzdG9wJy4gVGhpcyBzaG91bGQgYmUgc2VlbiBhcyBhCiAgICB0ZW1wb3JhcnkgZml4IHVudGlsIHRoZSBnZW5lcmljIHVzYi1vaGNpIGRyaXZlciBjYW4KICAgIGxpZmUgd2l0aCBkLWNhY2hlIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmJkZTIxNjlkMmM0OGZjYzlmZjAzNDg5NTM0YTc4ZmZiMGE4YTBkNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgTm92IDkgMTU6MzY6NDQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHJlZHVuZGFudCBjb2RlIGZyb20gNHh4IG5ldHdvcmsgZHJpdmVyCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgcmVkdW5kYW50IGNvZGUgYW5kIGRlY3JlbWVudHMgdGhlIGVuZAogICAgYWRkcmVzcyBvZiBjYWNoZSBmbHVzaCBhbmQgaW52YWxpZGF0ZSBieSAxLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVjYTk4ODFhYWQ4YzQxM2FjMmE4Mjg2OGE1ZTM3MTkxNzgyNTQ1MDIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTm92IDkgMTU6MjQ6MjYgMjAwNyArMDAwMAoKICAgIEFkZCBhcG9sbG9uIGJvYXJkIHN1cHBvcnQKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYjUzMzEzZGJmYzc0NTI1ZDg1ZjFlN2UwMTAyZjkwMmQ1Yzg2M2JlYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiA5IDEyOjE5OjU4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBJbjovT3V0Oi9FcnI6IGJvb3Qgb3V0cHV0IGZvciBBTUNDIEtpbGF1ZWEKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzdmNjljMzQwMjc3OTM1YTZjMTlhOTU2NDIxODUyZGE5NDRhMzY1ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiA5IDEyOjE4OjU0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IE1ha2Ugb3V0cHV0IGEgbGl0dGxlIHNob3J0ZXIgb24gSTJDIGJvb3Ryb20gZGV0ZWN0aW9uCgogICAgTW9zdCA0eHggUFBDIGNhcGFibGUgb2YgdXNpbmcgYW4gSTJDIGJvb3Ryb20gZm9yIGJvb3RzdHJhcCBzZXR0aW5nCiAgICBhbHJlYWR5IHByaW50IGEgbGluZSB3aXRoIHRoZSBpbmZvcm1hdGlvbiB3aGljaCBJMkMgYm9vdHJvbSBpcwogICAgdXNlZCBmb3IgYm9vdHN0cmFwIGNvbmZpZ3VyYXRpb24uIFNvIHdlIGRvbid0IG5lZWQgdGhpcyBleHRyYSBsaW5lCiAgICB3aXRoICJJMkMgYm9vdCBFRVBST00gZW4tL2Rpcy1hYmxlZCIuCgogICAgVGhpcyBwYXRjaCBhbHNvIGhhcyBhIGxpdHRsZSBjb2RlIGNsZWFudXAgaW50ZWdyYXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGQ3MzdhMjgxNTJlYzEyODczZjg1NDRjY2ExZmIzOWE0OWU1ZTY5MwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjUwOjE4IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIFJlbW92ZSByZXNldCByZWdpc3RlcnMgZnJvbSBDQ00KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2Q3Y2RlYTc2OWE2MGIwYTZlNGMxOGJlZjdmOWQ2NDhmZDE0YjhkNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjMxOjExIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIEFkZCBSZXNldCBzdHJ1Y3R1cmUgdG8gaW1tYXBfNTMyOS5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5YjI2Y2YwMGQ3NmQ3NWZkZjdmZGM0YjEzZTRkZDkyOTc0M2JjMjEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjoxOTowMSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSByZXZlcnQgaW5jbHVkZS9hc20tbTY4ay9tNTMyOS5oIGZpbGUgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMjVhMjRiNWUwNjJhZDk0NjI3NDI0NTA4YWU4MTRmNTFkYmUxYTM0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTg6MDA6NTQgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1NDQ1eCAtIFVwZGF0ZSBjb3JyZWN0IFJBTUJBUiBhbmQgbWlzc2luZyBsaW5rZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjQ4YzdjMTQ4MzVmMzRkNWQ5MTBiNDVlNTYwMDA1MGU1OGNhNmNhYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE3OjU2OjE1IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyeCAtIFVwZGF0ZSBkb19yZXNldCgpIHVzaW5nIGNvcmUgcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDkyNDBhNWY4MjdlYjNiNDc2YTZiYTI5MzhkMDFmMWE5ZTc2ODhmNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE3OjUxOjAwIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIGNwdSBmbGFnIGZvciA0LjIteHggY29tcGlsZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDcwYmE1NjExNWI0ZGE2M2I0NmU5NzQyODdmYTQ1NTBkNDAyMzM4NgpBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMzEgMTQ6NTk6MDQgMjAwNyAtMDUwMAoKICAgIDg2MTA6IEFkZCBjb25zb2xlIGZyYW1lIGJ1ZmZlciBzdXBwb3J0IHRvIEZTTCA4NjEwIERJVSBkcml2ZXIuCgogICAgQWRkIGNmYiBjb25zb2xlIHN1cHBvcnQgdG8gRlNMIDg2MTAgRElVIGRyaXZlci4KICAgIEluc3BlY3QgYm9hcmQgdmVyc2lvbiBmcm9tIFBJWElTIHRvIG9idGFpbiBjb3JyZWN0IHBpeGVsIGZvcm1hdC4KCiAgICBVc2UgI2RlZmluZSBDT05GSUdfVklERU8gaW4gY29uZmlnIGZpbGUgdG8gZW5hYmxlIGZiIGNvbnNvbGUuCgogICAgVG8gc3dpdGNoIG1vbml0b3IsIHNldCBtb25pdG9yIHZhcmlhYmxlIHRvCiAgICAwIC0gRFZJLCAxIC0gU2luZ2xlIGxpbmsgTFZEUywgMiAtIERvdWJsZSBsaW5rIExWRFMKICAgIGZvbGxvd2VkIGJ5ICJkaXVmYiBpbml0Ii4KCiAgICBQcmVzZXJ2ZSBsb2dvIGJpdG1hcCBhdCB0aGUgdG9wIG9mIHRoZSBmYiBjb25zb2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4Nzc4ODBjNjk0OWU5NDhiZDYzY2Q2ZWE0ZTIxNjU3M2QyZjUzZGQKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjU4OjM5IDIwMDcgLTA1MDAKCiAgICA4NjEwOiBBZGQgODYxMCBESVUgZGlzcGxheSBkcml2ZXIKCiAgICAxMjgweDEwMjQgYW5kIDEwMjR4NzY4IEAgMzIgYnBwIGFyZSBzdXBwb3J0ZWQgbm93LgogICAgRFZJLCBTaW5nbGUtbGluayBMVkRTLCBEb3VibGUtbGluayBMVkRTIGFyZSBhbGwgc3VwcG9ydGVkLgoKICAgIEVudmlyb25tZW50YWwgdmFyaWFibGUgIm1vbml0b3IiIGlzIHVzZWQgdG8gc3BlY2lmeSBtb25pdG9yIHBvcnQuCgogICAgQSBuZXcgY29tbWFuZCAiZGl1ZmIiIGlzIGludHJvZHVjZWQgdG8gcmVpbml0aWFsaXplIG1vbml0b3IKICAgIGFuZCBkaXNwbGF5IGEgQk1QIGZpbGUgaW4gdGhlIG1lbW9yeS4gU28gZmFyLCAxLWJpdCwgNC1iaXQsCiAgICA4LWJpdCBhbmQgMjQtYml0IEJNUCBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCgoJZGl1ZmIgaW5pdAoJICAgIC0gaW5pdGlhbGl6ZSB0aGUgZGl1IGRyaXZlcgoJRW5hYmxlIHRoZSBwb3J0IHNwZWNpZmllZCBpbiB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZSAibW9uaXRvciIKCglkaXVmYiBhZGRyCgkgICAgLSBkaXNwbGF5IGJtcCBmaWxlIGluIG1lbW9yeS4KCVRoZSBibXAgaW1hZ2Ugc2hvdWxkIGJlIG5vIGJpZ2dlciB0aGFuIHRoZSByZXNvbHV0aW9uLCAxMjgweDEwMjQKCWZvciBEVkkgYW5kIGRvdWJsZS1saW5rIExWRFMsIDEwMjR4NzY4IGZvciBzaW5nbGUtbGluayBMVkRTLgoKICAgIE5vdGUsIHRoaXMgZHJpdmVyIGFsbG9jYXRlIG1lbW9yeSBidXQgZG9lc24ndCBmcmVlIGl0IGFmdGVyIHVzZQogICAgSXQgaXMgd3JpdHRlbiBvbiBwdXJwb3NlIC0tIHRvIGF2b2lkIGEgZmFpbHVyZSBvZiByZWFsbG9jYXRpb24KICAgIGR1ZSB0byBtZW1vcnkgZnJhZ2VtZW50LgoKICAgIEVDQyBvZiBERFIgaXMgZGlzYWJsZWQgZm9yIERJVSBwZXJmb3JtYW5jZS4gTDIgZGF0YSBjYWNoZSBpcyBhbHNvIGRpc2FibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gbG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUyZTVkZGZlY2RkYTMwOGY3NTc4MmZhZTIwNmI2NzdiMTgxMGY1ZjkKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDMxIDEwOjQzOjU5IDIwMDcgLTA1MDAKCiAgICBGU0w6IEFkZCBhIGZyZWVzY2FsZSBiaXRtYXAgbG9nby4KCiAgICBUaGlzIEZyZWVzY2FsZSBsb2dvIGlzIGEgMzQwIHggMTI4IHggNGJwcCBCTVAgZmlsZQogICAgdGhhdCBjYW4gYmUgZGlzcGxheWVkIGJ5IHRoZSBESVUgRnJhbWVidWZmZXIgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4MTUzMzhmYmQxYzBmOTRmODI3NmQyODkxYjk5Y2FhNWEwNWY2MjIKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjU3OjUzIDIwMDcgLTA1MDAKCiAgICA4NjEwOiBNYWtlIHNvbWUgZXh0cmEgZGVidWcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGNvbmRpdGlvbmFsLgoKICAgIE9uZSBtYXkgI2RlZmluZSBFTlZfREVCVUcgdG8gZ2V0IHRoZW0gYmFjayBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MTQyMWNjY2E4MGE5ZmIzN2IxOWMzN2FhNjFkNDZlZjc1ZTA2NDcKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDI5IDE5OjI2OjIxIDIwMDcgKzA4MDAKCiAgICA4NjEwOiBBY3R1YWxseSBlbmFibGUgcGl4aXNfcmVzZXQgQ09ORklHcwoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjNiY2VhYWIyMzBiNDc0OGQwYWZjNDEwOWI2ODM3MzA4ZjAxOGI0MApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjYgMTg6MzE6NTkgMjAwNyArMDgwMAoKICAgIEZpeCB0aGUgQkFUIGRlZmluaXRpb24gb2YgUENJIElPIG9uIDg2MTAgYm9hcmQKCiAgICBUaGUgYWRkcmVzcyBpbiB0aGUgQkFUIHJlZ2lzdGVyIGlzIGFsaWduZWQgd2l0aCB0aGUgQkFUIHNpemUuCiAgICBUaGUgb3JpZ2luYWwgZGVmaW5pdGlvbiBhY3R1YWxseSBkaWQgbm90IGRlZmluZSBCQVQgZm9yIFBDSUUyIElPLgogICAgVGhpcyBwYXRjaCBmaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmMjNjYTMzNGE2ZjVmMDIxZWY5ZTlkMGZhZDlkYTgwZDYzYjJkNTYKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDI5IDE5OjI2OjIxIDIwMDcgKzA4MDAKCiAgICBVbmlmeSBwaXhpc19yZXNldCBhbHRiYW5rIGFjcm9zcyBib2FyZCBmYW1pbGllcwoKICAgIEJhc2ljYWxseSwgcmVmYWN0b3IgdGhlIENGR19QSVhJU19WQk9PVF9NQVNLIHZhbHVlcwogICAgaW50byB0aGUgc2VwYXJhdGUgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4MzE4ZWMyMDVjOGU4Nzk0YjVmOWYxYjg1ODRhYmFkYjQ0MGU4YmEKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI2IDE4OjMyOjAwIDIwMDcgKzA4MDAKCiAgICBtYWtlIDg2MTAgYm9hcmQgdXNlIHBpeGlzIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5Yzg0NzA5ZWVkY2U5YzY4MGRkNjk1OTg0YWI3ZDIzMjhmNGYwNGY1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAxIDEyOjIzOjI5IDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggYnJva2VuIHZhcmlhYmxlIHJlZmVyZW5jZSB3aGVuICNkZWYgREVCVUdpbmcuCgogICAgU29tZXRpbWVzIHlvdSBjYW4ndCByZWZlcmVuY2UgdGhlIEREUjIgY29udHJvbGxlciB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZjEwMzEwNWEzNzQ2YWIxMjI3OWI2M2I4YzFkMzcyYzBjZTJjYzU4CkF1dGhvcjogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTm92IDUgMTc6Mzk6MjQgMjAwNyArMDgwMAoKICAgIEltcGxlbWVudCBnZW5lcmFsIFVMaSA1MjZ4IEV0aGVybmV0IGRyaXZlciBzdXBwb3J0IGluIFUtYm9vdAoKICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBnZW5lcmFsIFVMaSA1MjZ4IEV0aGVybmV0IGRyaXZlci4KICAgIFVudGlsIG5vdywgaXQgaXMgdGhlIG9ubHkgbmF0aXZlIEV0aGVybmV0IHBvcnQgb24KICAgIE1QQzg2MTBIUENEIGJvYXJkLCBidXQgaXQgY291bGQgYmUgdXNlZCBvbiBvdGhlciBib2FyZHMKICAgIHdpdGggVUxpIDUyNnggRXRoZXJuZXQgcG9ydCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDcxYmM2ZTY0NzRmZWE4ZWY0ODFiOWI0NWQxZWRkN2FkMWY2ZGZiYmQKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJVGh1IE5vdiAxIDA4OjQ2OjUwIDIwMDcgLTA1MDAKCiAgICBORVQ6IEFkZCBFdGhlcm5ldCAxMDAwQkFTRS1YIHN1cHBvcnQgZm9yIFBQQzR4eAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciAxMDAwQkFTRS1YIHRvIGZ1bmN0aW9ucyAibWlpcGh5X3NwZWVkICgpIiBhbmQKICAgICJtaWlwaHlfZHVwbGV4KCkiLglJdCBhbHNvIGFkZHMgZnVuY3Rpb24gIm1paXBoeV9pc18xMDAwYmFzZV94ICgpIiwgd2hpY2gKICAgIHJldHVybnMgbm9uLXplcm8gaWZmIHRoZSBQSFkgcmVnaXN0ZXJzIGFyZSBjb25maWd1cmVkIGZvciAxMDAwQkFTRS1YLiAgVGhlCiAgICAibWlpIGluZm8iIGNvbW1hbmQgaXMgbW9kaWZpZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiAxMDAwQkFTRS1UIGFuZCAtWC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDI5ODAzNWRmNDk0OGIxMTNkMjlhYzBlNjk0NzE3ZDM0Yjk1YmM1ZGMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJV2VkIE9jdCAzMSAxMToyMToyOSAyMDA3IC0wNTAwCgogICAgTkVUOiBDb3NtZXRpYyBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA2NTRmMzhiM2EzODc4ODY5OTZhNWE3NTc3MWZiZmMyOWNiNGYyMjVlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDUgMDc6NDM6MDUgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFrZSBvdXRwdXQgYSBsaXR0bGUgc2hvcnRlciBvbiBQQ0llIGRldGVjdGlvbgoKICAgIE5vdyBub3QgbWF4IDMgbGluZXMgYnV0IDIgbGluZXMgYXJlIHByaW50ZWQgcGVyIFBDSWUgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTkyNzQyYTViMDlkOTA0MGFkYmQxNTZmYjkwNzU2YWY2NmFkZTMxMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMyAyMzowOToyNyAyMDA3ICswMTAwCgogICAgQ2xlYW51cCBjb2Rpbmcgc3R5bGU7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU4ODFjYjU2M2UzMmY0NTgzMmI3YjZkYjc3YmRjZDAxN2FkY2JiNDEKQXV0aG9yOiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+CkRhdGU6CUZyaSBOb3YgMiAxMzoxNTo0MiAyMDA3IC0wNzAwCgogICAgZml4IHdvcmRpbmcgaW4gUkVBRE1FCgogICAgQ2hhbmdlZCB0aGUgd29yZGluZyB0byBwcm9wZXJseSBkZXNjcmliZSB0aGUgc2hhZG93aW5nCiAgICBvZiB0aGUgZW52aXJvbm1lbnQgZnJvbSBST00gdG8gUkFNCgogICAgU2lnbmVkLW9mZi1ieTogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGFjbS5vcmc+Cgpjb21taXQgYWQ4NDViZWVmMDYyNDU0MjZjNTdiNTNkY2RjMDFiN2RjNzBlMGQ0NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVdlZCBPY3QgMzEgMDI6MTg6MTUgMjAwNyArMDkwMAoKICAgIGJsYWNrZmluOiBNb3ZlIGAtRF9fQkxBQ0tGSU5fXycgdG8gJChBUkNIKV9jb25maWcubWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGVjMjI3NTU3OTk0NjZjOGExMDM2NjRiYjNhNWU2NDdiZjljMjM4ZjQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJVGh1IE9jdCAyNSAxNjowODoxNCAyMDA3ICswMzAwCgogICAgVHJpbW1lZCBzb21lIHZhcmlhYmxlcyBpbiBuZTIwMDAuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGViNmYyMTRkMzY0NGIyYTc3OTY4YzE3NmVkMzZkY2Y4NThjZmU3ZTAKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjUxOjI3IDIwMDcgKzA4MDAKCiAgICBGaXggdGhlIGlzc3VlIG9mIHVzYl9rYmQgZHJpdmVyIG1pc3NpbmcgdGhlIHNjYW4gY29kZSBvZiBrZXkgJ3onLgoKICAgIFRoZSBzY2FuIGNvZGUgb2YgdGhlIGtleSAneicgaXMgMHgxZCwgd2hpY2ggc2hvdWxkIGJlIGhhbmRsZWQuCgogICAgVGhlIGNoYW5nZSBoYXMgYmUgdGVzdGVkIG9uIE5PVkFURUsgVVNCIGtleWJvYXJkIGFuZCBVTEkgUENJIE9IQ0kKICAgIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYmY0Nzk2ZjY0OThmYmFkZTU2ZDU2ZWZmM2EwYTQ5YjI5OWQ5M2U1CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzozMDowNCAyMDA3ICswODAwCgogICAgRml4IFVTQiBzdXBwb3J0IGlzc3VlIGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGhhcyBhbHJlYWR5IGVuYWJsZWQgVVNCLCBidXQgaXQKICAgIG1pc3NlZCBkZWZpbml0aW9uIG9mIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUywgdGhlIFVTQgogICAgb24gTVBDODY0MUhQQ04gY2FuIG5vdCB3b3JrIGJlY2F1c2Ugb2YgdGhlIHdyb25nIFVTQgogICAgcmVnaXN0ZXIgZW5kaWFuLgoKICAgIEFuZCBhZGQgdGhlIFVTQiBjb21tYW5kIHRvIFUtQm9vdCBjb21tYW5kcyBsaXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGU2MjA0MTAyM2RjM2RlOWQ5OGQ5NzdiYjA4MDIzNWJjNmQwMzVlMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMTg6MTY6MDEgMjAwNyArMDIwMAoKICAgIFVzZSBjb25maWdfY21kX2RlZmF1bHQuaCBpbnN0ZWFkIG9mIGNvbmZpZ19jbWRfYWxsLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU2NjIyZjg3ODU3NDM5YjFjMjIxZTlkZWVmMTFhOWQ1YmI1ZDQzMDgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDI0IDAxOjM3OjM2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBDYWxsIHVzYl9jcHVfaW5pdCgpIGR1cmluZyBib2FyZCBpbml0CgogICAgdXNiX2NwdV9pbml0KCkgY29uZmlndXJlcyBHUFMgVVNCIHBpbnMsIGNsb2NrcywgZXRjLiBhbmQKICAgIGlzIHJlcXVpcmVkIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGtlcm5lbCBVU0Igc3Vic3lzdGVtLgogICAgVGhpcyBzZXR1cCB3YXMgcHJldmlvdXNseSBkb25lIGluIHRoZSBrZXJuZWwgYnkgdGhlIGZpeHVwCiAgICBjb2RlIHdoaWNoIGlzIGJlaW5nIHJlbW92ZWQsIHRodXMgbG93IGxldmVsIGluaXQgbXVzdCBiZQogICAgZG9uZSBieSBVLWJvb3Qgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjljMjljMDI2N2ZlODU3ZTcyMDE0Y2U5MGM1ZDM1YjJlZjYzMDJiZApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjoyNTo1MCAyMDA3ICswMjAwCgogICAgRml4IHR5cG8gaW4gbmZzLmMKCiAgICBBbiBvYnZpb3VzIHR5cG8uIE9yaWdpbmFsbHkgZml4ZWQgaW4gbGlua3N0YXRpb24gdS1ib290IHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDU5NTQzZmUwMGE0Y2U3MjBlZjlmNWFhN2ZiMzg3YzZkYWYxYzdkNzgKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTQ6MzU6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBhIHR5cG8gaW4gY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jCgogICAgU2luY2UgRGVjZW1iZXIgMjAwMyB0aGUgdGltZXJfaW50ZXJydXB0X2NwdSgpIGZ1bmN0aW9uIGluCiAgICBjcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMgY29udGFpbnMgd2hhdCBzZWVtcyB0byBiZSBhIHN1cGVyZmx1b3VzCiAgICBwYXJhbWV0ZXIuIFJlbW92ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzllN2I5YjlhMTcwMGZlMDA5Njc4ZDFmOWI0MWU2MzY0YWM1ZGYyZApBdXRob3I6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxMToxMzo1MSAyMDA3ICswMjAwCgogICAgYWRkIGZ0X2NwdV9zZXR1cCguLikgb24gbXBjODI2MAoKICAgIEFkZCBmdF9jcHVfc2V0dXAoLi4pLWZ1bmN0aW9uIHRvIGFkYXB0IGl0IGZvciB1c2Ugd2l0aCBsaWJmZHQKICAgIGJhc2VkIG9uIGNvZGUgZnJvbSBtcGM1eHh4CgogICAgU2lnZW5kLW9mZi1ieTogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgogICAgLS0KCmNvbW1pdCA2YWJkODJlMTlhZTkzYzBiNGQxMDRlNTAxNjVlMjM1OTE1ZWMwODc1CkF1dGhvcjogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgpEYXRlOglXZWQgT2N0IDE3IDExOjE4OjQyIDIwMDcgKzAyMDAKCiAgICBjaGFuZ2VzIGZvciBJRFM4MjQ3IGJvYXJkIHN1cHBvcnQKCiAgICBUbyBnZXQgdGhlIElEUzgyNDcgYm9hcmQgd29ya2luZyBmb2xsb3dpbmcgYXJlIGRvbmU6CiAgICAgLSBGQ0MyIGlzIGRlYWN0aXZhdGVkCiAgICAgLSBGQ0MxIGlzIGFjdGl2YXRlZAogICAgIC0gSTJDIGlzIGFjdGl2YXRlZAogICAgIC0gQ0ZJIGRyaXZlciBpcyBhY3RpdmF0ZWQKICAgICAtIEFkYXB0ZWQgZm9yIHVzZSB3aXRoIExJQkZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KICAgIC0tCgpjb21taXQgM2Q2Y2IzYjI0YWRkNjQxNWY4NmEwZjAxM2VhNDBmNTYzOWI5MDA0NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAzIDEyOjA4OjI4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIEtpbGF1ZWEvSGFsZWFrYWxhIE5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0MDVFWChyKSBldmFsIGJvYXJkcy4KICAgIEFnYWluLCBvbmx5IG9uZSBpbWFnZSBzdXBwb3J0cyBib3RoIHRhcmdldHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhiNjY4NGE2OTg1MDBiZTljMTQyZWMyYzlmNDZjZmMzNDhlMTdmMGMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAxNTo0ODozNyAyMDA3ICswMjAwCgogICAgQVRTVEsxMDAyOiBSZW1vdmUgZGVmYXVsdCBldGhlcm5ldCBhZGRyZXNzZXMKCiAgICBXb2xmZ2FuZyBpcyByaWdodDogSXQncyBub3QgYSBnb29kIGlkZWEgdG8gc2V0IHVwIGRlZmF1bHQgaW5pdGlhbAogICAgZXRoZXJuZXQgYWRkcmVzc2VzIGZvciBhIGJvYXJkLCBldmVuIHRob3VnaCB0aGV5IGJlbG9uZyB0byB0aGUgbG9jYWwKICAgIHJhbmdlLgoKICAgIFRoaXMgd2lsbCBjaGFuZ2UgdGhlIGZhaWx1cmUgbW9kZSBmcm9tICJJVCBtYW5hZ2VyIHNjcmVhbXMgYXQgeW91IGZvcgogICAgdXNpbmcgZHVwbGljYXRlIGV0aGVybmV0IGFkZHJlc3NlcyIgdG8gYSBuaWNlIGVycm9yIG1lc3NhZ2UgZXhwbGFpbmluZwogICAgdGhhdCB0aGUgZXRoZXJuZXQgYWRkcmVzcyBoYXNuJ3QgYmVlbiBzZXQgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZTVjNzk0ZTQ5MWE1N2Q4MjliNmQ4NzMzZTJlZDgzNjhhMjI2OWFiZgpBdXRob3I6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTc6NDA6MzUgMjAwNyAtMDQwMAoKICAgIERIQ1AgQ2xpZW50IEZpeAoKICAgIFRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuCgogICAgY29tbWl0IGU2ZTUwNWVhZTk0ZWQ3MjFlMTIzZTE3NzQ4OTI5MWZjNDU0NGI3YjgKICAgIEF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KICAgIERhdGU6ICAgTW9uIE9jdCAyOSAxNzoxOTowMyAyMDA3IC0wNDAwCgoJRm91bmQgYSBidWcgaW4gdGhlIHdheSB0aGUgREhDUCBSZXF1ZXN0IHBhY2tldCBpcyBidWlsdCwgd2hlcmUgdGhlIElQIGFkZHJlc3MKCXRoYXQgaXMgb2ZmZXJlZCBieSB0aGUgc2VydmVyIGlzIGJvdW5kIHRvIHByZW1hdHVyZWx5LiBUaGlzIHBhdGNoIGlzIGEgZml4IG9mCgl0aGF0IGJ1ZyB3aGVyZSB0aGUgSVAgYWRkcmVzcyBvZmZlcmVkIGJ5IHRoZSBESENQIHNlcnZlciBpcyBub3QgdXNlZCB1bnRpbAoJYWZ0ZXIgdGhlIERIQ1AgQUNLIGZyb20gdGhlIHNlcnZlciBpcyByZWNlaXZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNWQ5NmQ0MGQzZjM2ZGEzMzM0OGU2OGY5ZWE5OTNmMzgzZTExZjk5NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAyMDo1ODozNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggYWNhZGlhX25hbmQgYnVpbGQgcHJvYmxlbQoKICAgIFNpbmNlIHRoZSBjYWNoZSBoYW5kbGluZyBmdW5jdGlvbnMgd2VyZSBtb3ZlZCBmcm9tIHN0YXJ0LlMgaW50byBjYWNoZS5TCiAgICB0aGUgYWNhZGlhIE5BTkQgYm9vdGluZyBNYWtmaWxlIG5lZWRzIHRvIGJlIGFkYXB0ZWQgYWNjb3JkaW5nbHkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVhMmUxNDI4NDM1MzNjYTU5M2ZjYjVjYjNlMWRhZjFiN2Y1ZTU5NDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NTc6MTEgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIENPTkZJR180eHhfRENBQ0hFIGNvbXBpbGUgb3B0aW9ucyB0byBlbmFibGUgY2FjaGVkIFNEUkFNCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBDT05GSUdfNHh4X0RDQUNIRSBvcHRpb25zIHRvIHNvbWUgU0RSQU0gaW5pdCBmaWxlcwogICAgYW5kIHRvIHRoZSBTZXF1b2lhIFRMQiBpbml0IGNvZGUuIE5vdyB0aGUgY2FjaGUgY2FuIGJlIGVuYWJsZWQgb24gNDR4CiAgICBib2FyZHMgYnkgZGVmaW5pbmcgQ09ORklHXzR4eF9EQ0FDSEUgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlLiBUaGlzCiAgICBvcHRpb24gd2lsbCBkaXNhcHBlYXIsIHdoZW4gbW9yZSBib2FyZHMgdXNlIGlzIHN1Y2Nlc3NmdWxseSBhbmQgbm8KICAgIG1vcmUga25vd24gcHJvYmxlbXMgZXhpc3QuCgogICAgVGhpcyBpcyB0ZXN0ZWQgc3VjY2Vzc2Z1bGx5IG9uIFNlcXVvaWEgYW5kIEthdG1haS4gVGhlIG9ubHkgcHJvYmxlbSB0aGF0CiAgICBuZWVkcyB0byBiZSBmaXhlZCBpcywgdGhhdCBVU0IgaXMgbm90IHdvcmtpbmcgb24gU2VxdW9pYSByaWdodCBub3csIHNpbmNlCiAgICBpdCB3aWxsIG5lZWQgc29tZSBjYWNoZSBoYW5kbGluZyBjb2RlIHRvbywgc2ltaWxhciB0byB0aGUgNHh4IEVNQUMgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZGI5M2I4YmVkZDMyZTkxNGIzODk3NjE0MWIzZmRmNGVhM2ZmNzM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDIwOjUxOjEwIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBDUFUgUE9TVCB0ZXN0IGZvciA0eHggd2l0aCBkY2FjaGUgZW5hYmxlZAoKICAgIE5vdyB3aXRoIGNhY2hlcyBlbmFibGVkIChpLSBhbmQgZC1jYWNoZSkgb24gNDR4LCB3ZSBuZWVkIGEgY2hhbmNlIHRvCiAgICBkaXNhYmxlIHRoZSBjYWNoZSBmb3IgdGhlIENQVSBQT1NUIHRlc3RzLCBzaW5jZSB0aGVzZSB0ZXN0cyBjb25zaXN0CiAgICBvZiBzZWxmIG1vZGlmeWluZyBjb2RlLiBUaGlzIGlzIGRvbmUgdmlhIHRoZSBuZXcgY2hhbmdlX3RsYigpIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNzFiMjg4OGI0YjNjODcwOTA5YTAzNDE0MjdiMmE5MTQyNDZmODFmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDIwOjQ3OjI2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENoYW5nZSA0eHggUE9TVCBldGhlcm5ldCB0ZXN0IHRvIGhhbmRsZSBjYWNoZWQgbWVtb3J5IHRvbwoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgNHh4IEVNQUMgUE9TVCBkcml2ZXIgdG8gd29yayB0b28sIHdoZW4gZGNhY2hlIGlzCiAgICBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhMjY4NTkwNDA2MWIzNWExNzU4M2Q2NWZlNDdjZGMyNjg2YTY5ZWFhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDIwOjQ1OjUzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB0ZW1wb3JhcnkgVExCIGVudHJ5IGluIFBPU1QgY2FjaGUgdGVzdCBvbmx5IGZvciA0NDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmY3NjhjYjE2OGQ4MTU3YzI0YTI1MDE2ZGJmYmViNDY1ZTQ3ZjQyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAxODowMToyNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBDaGFuZ2UgNHh4IGV0aGVybmV0IGRyaXZlciB0byBoYW5kbGUgY2FjaGVkIG1lbW9yeSB0b28KCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIDR4eCBFTUFDIGRyaXZlciB0byB3b3JrIHRvbywgd2hlbiBkY2FjaGUgaXMKICAgIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ4M2UwOWEyMjNjNjY2MjY5ZWY4MWQzNTczYTY1OTFiMTA0NmIwZWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMTc6NTk6MjIgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIGNoYW5nZV90bGIgZnVuY3Rpb24gdG8gbW9kaWZ5IEkgYXR0cmlidXRlIG9mIFRMQihzKQoKICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBlaXRoZXIgdHVybiBjYWNoZSBvbiBvciBvZmYgaW4gYSBzcGVjaWZpYwogICAgbWVtb3J5IGFyZWEuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQyNWRmZTA4ZmJkMTIyMGNiOTk0ZTdlNmIxMDUwNDlhYTlhYThlNzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMTc6NTc6NTIgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNhY2hlIGRlZmluaXRpb24gZnJvbSA0eHggYm9hcmQgY29uZmlnIGZpbGVzCgogICAgQWxsIDR4eCBib2FyZCBjb25maWcgZmlsZXMgZG9uJ3QgbmVlZCB0aGUgY2FjaGUgZGVmaW5pdGlvbnMgYW55bW9yZS4KICAgIFRoZXNlIGFyZSBub3cgZGVmaW5lZCBpbiBjb21tb24gaGVhZGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWI5NGFjNjFkMjE3NjE4NWMzMGFkZjA3OTNlMDc5ZWMzMGU2ODY4NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAxNzo1NTo1OCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZXdvcmsgNHh4IGNhY2hlIHN1cHBvcnQKCiAgICBOZXcgY2FjaGUgaGFuZGxpbmcgZnVuY3Rpb25zIGFkZGVkIGFuZCBhbGwgZXhpc3RpbmcgZnVuY3Rpb25zCiAgICBtb3ZlZCBmcm9tIHN0YXJ0LlMgaW50byBzZXBlcmF0ZSBjYWNoZS5TLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNjcxMzc3M2RhNGFjM2QzOTBjNjNkODI2NDFlYjU1MzIyNGIyN2MyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE4OjAzOjEyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBjb21waWxlciB3YXJuaW5nIGZyb20gcHJldmlvdXMgY29tbWl0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmYTM5N2RmNjdjMGYyNjllNDUyOGJmMTgxYTZlOGM4OGY5NzIzZjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTQ6NDA6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHRlbXBvcmFyeSBUTEIgZW50cnkgaW4gUE9TVCBjYWNoZSB0ZXN0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEzMzhlNmE4MTgzNDA5OWJhMTk3MzNiNjlhYWZkOGVmNWYwOTgwOTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTQ6MDU6MDggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIGF1dG9uZWdvdGlhdGlvbiB0aW1lb3V0IGZyb20gNCB0byA1IHNlY29uZHMKCiAgICBJIGxhdGVseSBub3RpY2VkLCB0aGF0IG5ld2VyIDR4eCBib2FyZCB3aXRoIEdCaXQgc3VwcG9ydCBzb21ldGltZXMgZG9uJ3QKICAgIGZpbmlzaCBsaW5rIGF1dG9uZWdvdGlhdGlvbiBpbiA0IHNlY29uZHMuIENoYW5naW5nIHRoaXMgdGltZW91dCB0byA1CiAgICBzZWNvbmRzIHNlZW1zIGZpbmUgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmQ4MzQ3NmE0YzFjOTkxMWQxNThhM2Y4YTQzMTJkMzU0YmMxYmRiNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDowMzoxNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgNHh4X2VuZXQgJiBtaWlwaHkgdG8gdXNlIG91dF9iZTMyKCkgYW5kIGZyaWVuZHMKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgYWxsIGluMzIvb3V0MzIgY2FsbHMgdG8gdXNlIHRoZSByZWNvbW1lbmRlZCBpbl9iZTMyLwogICAgb3V0X2JlMzIgbWFjcm9zIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdkNDdjZWUyY2M1N2Y5MDczODBmMmMwNmY1YjZjNjgzZDAzZTQyM2EKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBPY3QgMjUgMTI6MjQ6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IFBPU1QgZXRoZXJuZXQgdGVzdCBmb3IgSGFsZWFrYWxhCgogICAgVGhlIFBPU1QgZXRoZXJuZXQgdGVzdCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0byBkeW5hbWljYWxseSBkZXRlcm1pbmUKICAgIHRoZSBjb3VudCBvZiBldGhlcm5ldCBkZXZpY2VzLiBUaGlzIGNvZGUgaXMgY2xvbmVkIGZyb20gdGhlIDR4eAogICAgZXRoZXJuZXQgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMTA0OTNjNmQ3N2ExZTA3YTZjMmZmNGQ3NzI5MzdhNWU3MzU5ZDZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDExOjMxOjA1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvcnJlY3QgVUFSVCBpbnB1dCBjbG9jayBjYWxjdWxhdGlvbiBhbmQgcGFzc2luZyB0byBmZHQKCiAgICBXZSBub3cgdXNlIGEgdmFsdWUgaW4gdGhlIGdkIChnbG9iYWwgZGF0YSkgc3RydWN0dXJlIGZvciB0aGUgVUFSVCBpbnB1dAogICAgZnJlcXVlbmN5LCBzaW5jZSB0aGUgUFBDNHh4X1NZU19JTkZPIHN0cnVjdCBpcyBhbHdheXMgcmV3cml0dGVuIGNvbXBsZXRlbHkKICAgIGluIGdldF9zeXNfaW5mbygpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNTNmMjY4OGI0ZTBmYzdiOTY5YmM3MGEwMmJlNGI0MGJmMGRkMTI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDEwOjEwOjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIEFNQ0MgSGFsZWFrYWxhIFBQQzQwNUVYciBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGUgSGFsZWFrYWxhIGlzIG5lYXJseSBpZGVudGljYWwgd2l0aCB0aGUgS2lsYXVlYSBldmFsIGJvYXJkLiBUaGUgb25seQogICAgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSA0MDVFWHIgb25seSBzdXBwb3J0cyBvbmUgRU1BQyBhbmQgb25lIFBDSWUKICAgIGludGVyZmFjZS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBIYWxlYWthbGEgYm9hcmQgYnkgdXNpbmcKICAgIHRoZSBpZGVudGljYWwgaW1hZ2UgZm9yIEtpbGF1ZWEgYW5kIEhhbGVha2FsYS4gVGhlIGRpc3RpbmN0aW9uIGlzIGRvbmUKICAgIGJ5IGNvbXBhcmluZyB0aGUgUFZSLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5Zjc5ODc2NmFhODVlNjJlYjhmYThjNzIxZTE0OGRmNjA5Yjc4MTM3CkF1dGhvcjogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAwODoyOToxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXhlZCBvZmZzZXQgb2YgcmVmcmVzaCByYXRlIHR5cGUgZm9yIEJhbWJvbyBvbi1ib2FyZCBERFIgU0RSQU0KCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhIG5vdGUgdG8gdGhlIGZpeGVkIEREUiBzZXR1cCBmb3IgQmFtYm9vIE5BTkQgYm9vdGluZzoKCiAgICBOb3RlOgogICAgQXMgZm91bmQgb3V0IGJ5IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+LCB0aGUgZml4ZWQKICAgIEREUiBzZXR1cCBoYXMgcHJvYmxlbXMgKFUtQm9vdCBjcmFzaGVzIHJhbmRvbWx5IHVwb24gVEZUUCksIHdoZW4gdGhlIERJTU0KICAgIG1vZHVsZXMgYXJlIHN0aWxsIHBsdWdnZWQgaW4uIFNvIGl0IGlzIHJlY29tbWVuZGVkIHRvIHJlbW92ZSB0aGUgRElNTQogICAgbW9kdWxlcyB3aGlsZSB1c2luZyB0aGUgTkFORCBib290aW5nIGNvZGUgd2l0aCB0aGUgZml4ZWQgU0RSQU0gc2V0dXAhCgogICAgU2lnbmVkLW9mZi1ieTogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZmU5ZmE1OWNiNjNiNGY5ZDE2YmYwMWM5M2ViMjEyZjI1YTM4YzJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjI0OjQ0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBTTlRQIHN1cHBvcnQgdG8gQU1DQyBLYXRtYWksIEtpbGF1ZWEgJiBNYWthbHUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMyNDhmNjNhZDg5Y2IwMzE0OTFlZGI3MDE2NTg3ZmU2ZTlhMjM4YjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTY6MjI6NDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICg0KQoKICAgIENoYW5nZSA0eHhfdWFydC5jOgoKICAgIC0gVXNlIGluXzgvb3V0XzggbWFjcm9zIGluc3RlYWQgb2YgaW44L291dDgKICAgIC0gTm8gbmVlZCBmb3IgVUFSVF9CQVNFIG1hcmNvIGFueW1vcmUsIG5vdyByZWFsbHkgaGFuZGxlZCB2aWEgZnVuY3Rpb24KICAgICAgcGFyYW1ldGVyCiAgICAtIHNlcmlhbF9pbml0X2NvbW1vbigpIGludHJvZHVjZWQKICAgIC0gRnVydGhlciBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNjFjYjgxNjNhNjZiOGExMzU2OTZhZTIzMmUyYmVhZDFjZTBhMDQ5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDE1OjQ1OjQ5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJld29yayBvZiA0eHggc2VyaWFsIGRyaXZlciAoMykKCiAgICBDaGFuZ2UgYWxsIGxpbmtlciBzY3JpcHRzIHRvIHJlZmVyZW5jZSB0aGUgY2hhbmdlZCBkcml2ZXIgbmFtZSBpb3A0ODBfdWFydC5vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ODJhZTQxMjc0OTIxZjkwMTYxMzE4MDZiZGViMjdlMTk2MDZmNDdhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDE1OjQ0OjM5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJld29yayBvZiA0eHggc2VyaWFsIGRyaXZlciAoMikKCiAgICBDaGFuZ2UgYWxsIGxpbmtlciBzY3JpcHRzIHRvIHJlZmVyZW5jZSB0aGUgY2hhbmdlZCBkcml2ZXIgbmFtZSA0eHhfdWFydC5vLgoKICAgIE5vdGU6IEluIG1vc3QgY2FzZWQgYWxsIHRoZXNlIGV4cGxpY2l0IHJlZmVyZW5jaW5nIG9mIHRoZXNlIG9iamVjdCBmaWxlcwogICAgaW4gdGhlIGxpbmtlciBzY3JpcHRzIGlzIG5vdCBuZWNjZXNzYXJ5LiBPbmx5IGZvciBtYW51YWxseSBlbWJlZGRlZAogICAgZW52aXJvbm1lbnQgaW50byB0aGUgVS1Cb290IGltYWdlLCB3aGljaCBpcyBub3QgZG9uZSBpcyBtb3N0IGNhc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZDMxZTQwYmVkMDQyY2I2NzBkMDAzNmZlYTk2NDM1MDA3YWZiODM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDE1OjA5OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJld29yayBvZiA0eHggc2VyaWFsIGRyaXZlciAoMSkKCiAgICBUaGlzIHBhdGNoIHN0YXJ0cyB0aGUgcmV3b3JrIG9mIHRoZSBQUEM0eHggc2VyaWFsIGRyaXZlci4gRmlyc3Qgd2Ugc3BsaXQKICAgIHRoZSBmaWxlIGludG8gdHdvIHNlcGVyYXRlIGZpbGVzLCBvbmUgNHh4X3VhcnQuYyB3aXRoIHRoZSA0MDUvNDQwIFVBUlQKICAgIGhhbmRsaW5nIGNvZGUgYW5kIHRoZSBvdGhlciBvbmUgaW9wNDgwX3VhcnQuYyB3aXRoIHRoZSBVQVJUIGNvZGUgZm9yIHRoZQogICAgUExYLVRlY2ggSU9QNDgwIFBQQyAoUFBDNDAzIGJhc2VkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzY0ZTc0MTdlZTVmNmUyNWIxNzE1NzIwZTdkN2RkMzQ4NzEwOTM4NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxMDozMDozOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb3JyZWN0IFVBUlQgaW5wdXQgY2xvY2sgY2FsY3VsYXRpb24gYW5kIHBhc3NpbmcgdG8gZmR0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIxMWVhOTFhYzZjMjI1YmVjN2U2NjhhMDNkMGJhN2Q3MzEwNjc5ZmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMDc6MzQ6MzQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgQU1DQyBNYWthbHUgNDA1RVggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYThhZWEyMDQ1NmU2ZjFkYmE0M2Y0NmJjYzcyMDI0ZGQ5NDk5OTk4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDA3OjMzOjUyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBmcmVxVUFSVCB0byBDUFUgc3BlZWQgZGV0ZWN0aW9uCgogICAgVGhpcyB2YWx1ZSBpcyBuZWVkZWQgbGF0ZXIgZm9yIHRoZSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIG9mCiAgICB0aGUgdWFydCBjbG9jay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODM3YzczMGI0ZDdjNmIxZGRmM2QxZTI0N2NiNDQ0NTAwNWQ5YmYwZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyMSAxNDoyNjoyOSAyMDA3ICswMjAwCgogICAgcHBjOiBTbWFsbCBLaWxhdWVhIGNsZWFudXAgb2YgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzU4YzAzN2FlZWFkMzRiNDk2MzFiOGRhM2E5MGIxYmJhMTRjMDQxMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyMSAwODoxNjoxMiAyMDA3ICswMjAwCgogICAgcnRjOiBBZGQgWGljb3IvSW50ZXJzaWwgWDEyMDUgUlRDIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFhpY29yL0ludGVyc2lsIFgxMjA1IFJUQyB1c2VkIG9uIHRoZQogICAgQU1DQyBNYWthbHUgZXZhbCBib2FyZC4gVGhpcyBkcml2ZXIgaXMgYmFzaWNhbGx5IGNsb25lZCBmcm9tIHRoZSBMaW51eAogICAgZHJpdmVyIHZlcnNpb24gKDIuNi4yMykuCgogICAgVGhpcyBwYXRjaCBhbHNvIGludHJvZHVjZXMgdGhlIExpbnV4IGJjZC5oIGhlYWRlciBmb3IgdGhlIEJDRDJCSU4vCiAgICBCSU4yQkNEIGNvbnZlcnNpb25zLiBJbiB0aGUgZnV0dXJlIHNvbWUgb2YgdGhlIG90aGVyIFUtQm9vdCBSVEMgZHJpdmVyCiAgICBzaG91bGQgYmUgY29udmVydGVkIHRvIGFsc28gdXNlIHRoaXMgaGVhZGVyIGluc3RlYWQgb2YgaW1wbGVtZW50aW5nCiAgICB0aGVpciBvd24gbG9jYWwgY29weSBvZiB0aGVzZSBmdW5jdGlvbnMvbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwODdkZmRiNzliNWZkMWFiOTlhMjY5OTBjNjJhNzMyYzAxYThjN2Y2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDA4OjEyOjQxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvbnNvbGlkYXRlIHNvbWUgb2YgdGhlIDQwNSBhbmQgNDQwIG1hY3Jvcy9zdHJ1Y3RzIGludG8gNHh4CgogICAgVGhpcyBwYXRjaCBtb3ZlcyBzb21lIGNvbW1vbiA0eHggbWFjcm9zIGFuZCB0aGUgUFBDNDA1X1NZU19JTkZPLwogICAgUFBDNDQwX1NZU19JTkZPIHN0cnVjdHVyZSBpbnRvIHRoZSBjb21tb24gcHBjNHh4LmggaGVhZGVyLgoKICAgIExvdCdzIG9mIG90aGVyIG1hY3JvcyBhcmUgZ29vZCBjYW5kaWRhdGVzIHRvIGJlIGNvbnNvbGlkYXRlZCB0aGlzIHdheQogICAgaW4gdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzcwYzdhZjU4MDBmNTk4ZDIyNzMwZDFmNGI3MGYxNmM5YjMzNTEyZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyMSAwODowNToxOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc2l6ZSBzZXR1cCBpbiBLaWxhdWVhIEREUjIgaW5pdCByb3V0aW5lCgogICAgVGhlIHNpemUgd2FzIGluaXRpbGl6ZWQgd3JvbmcuIEluc3RlYWQgb2YgMjU2TUIsIHRoZSBERFIyIGNvbnRyb2xsZXIKICAgIHdhcyBzZXR1cCB0byA1MTJNQi4gTm93IHRoZSBjb3JyZWN0IHZhbHVlcyBpcyB1c2VkLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBkb2VzIGEgbGl0dGxlIGNsZWFudXAgYW5kIGFkZHMgYSBjb21tZW50IGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY2YmE5YjU2NjA3ZDRiMjc1NTAzMDFjN2M3ZjZiNTViNjU0ZmQ2MmEKQXV0aG9yOiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglUaHUgT2N0IDE4IDE3OjI5OjA0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IERlZmluZSBDT05GSUdfQk9PS0UgZm9yIGFsbCBQUEM0NDAgYmFzZWQgcHJvY2Vzc29ycwoKICAgIENPTkZJR19CT09LRSBtdXN0IGJlIGRlZmluZWQgZm9yIFBQQzQ0MCBwcm9jZXNzb3JzIHNvIHRoYXQgdGhlIHByb3BlciBTUFIKICAgIG51bWJlciBpcyB1c2VkIHRvIGFjY2VzcyBzeXN0ZW0gcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzM2YzY4MTYwMzMzYWM1ZmU0MWVjM2RiMTJhNzI4YjcwNzViMzkxMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAxOCAwNzo0MjoyNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgaW5ib3VuZCBQQ0llIGxvY2F0aW9uIGZvciBlbmRwb2ludCB0ZXN0cyBvbiBLYXRtYWkKCiAgICBPbiBZdWNjYSAmIEthdG1haSwgdGhlIGluYm91bmQgbWVtb3J5IG1hcCBwb2ludGVkIHRvIDB4NC4wMDAwLjAwMDAsIHdoaWNoCiAgICBpcyB0aGUgaW50ZXJuYWwgU1JBTS4gU2luY2UgSSBub3cgcG9ydGVkIGFuZCB0ZXN0ZWQgdGhpcyBlbmRwb2ludCBtb2RlCiAgICBvbiBLaWxhdWVhIHN1Y2Nlc3NmdWxseSB0byBtYXAgdG8gMCAoU0RSQU0pLCBJIGFsc28gY2hhbmdlZCB0aGlzIGZvcgogICAgS2F0bWFpLgoKICAgIFl1Y2NhIHdpbGwgc3RheSBhdCBpbnRlcm5hbCBTUkFNIGZvciBub3cuIE5vdCBzdXJlIGlmIHNvbWVib2R5IHJlbGllcyBvbgogICAgdGhpcyBzZXR1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWNiNGFmNDc5MWY2MTg0MzQzMjE1NTE0MmI2Y2ZhYzkwMWY2NmMxMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAxOCAwNzozOTozOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgUENJZSBlbmRwb2ludCBzdXBwb3J0IG9uIEtpbGF1ZWEgKDQwNUVYKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBlbmRwb2ludCBzdXBwb3J0IGZvciB0aGUgQU1DQyBLaWxhdWVhIGV2YWwgYm9hcmQuIEl0IGNhbgogICAgYmUgdGVzdGVkIGJ5IGNvbm5lY3RpbmcgYSByZXdvcmtlZCBQQ0llIGNhYmxlIChvbmx5IDF4IGxhbmUgc2luZ2xlcwogICAgY29ubmVjdGVkKSB0byBhbm90aGVyIHJvb3QtY29tcGxleC4KCiAgICBJbiB0aGlzIHRlc3Qgc2V0dXAsIGEgNjRNQiBpbmJvdW5kIHdpbmRvdyBpcyBjb25maWd1cmVkIGF0IEJBUjAgd2hpY2ggbWFwcwogICAgdG8gMCBvbiB0aGUgUExCIHNpZGUuIFNvIGFjY2Vzc2luZyB0aGlzIEJBUjAgZnJvbSB0aGUgcm9vdC1jb21wbGV4IHdpbGwKICAgIGFjY2VzcyB0aGUgZmlyc3QgNjRNQiBvZiB0aGUgU0RSQU0gb24gdGhlIFBQQyBzaWRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNGNiMmQxNzk0NjQ2Njc0MGFmZWIxOTVhNTdkNmNiMjkwYmY0Y2MwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDEzIDE2OjQzOjIzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IER5bmFtaWMgY29uZmlndXJhdGlvbiBvZiA0eHggUENJZSBtb2RlIGFzIHJvb3Qgb3IgZW5kcG9pbnQgbW9kZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBkeW5hbWljIGNvbmZpZ3VyYXRpb24gb2YgUENJZSBwb3J0cyBmb3IgdGhlCiAgICBBTUNDIFBQQzR4eCBib2FyZHMgZXF1aXBwZWQgd2l0aCBQQ0llIGludGVyZmFjZXMuIFRoZXNlIGFyZSB0aGUgUFBDNDQwU1BlCiAgICBib2FyZHMgWXVjY2EgJiBLYXRtYWkgYW5kIHRoZSA0MDVFWCBib2FyZCBLaWxhdWVhLgoKICAgIFRoaXMgZHluYW1pYyBjb25maWd1cmF0aW9uIGlzIGRvbmUgdmlhIHRoZSAicGNpZV9tb2RlIiBlbnZpcm9uZW1lbnQKICAgIHZhcmlhYmxlLiBUaGlzIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gIkVQIiBvciAiUlAiIGZvciBlbmRwb2ludCBvcgogICAgcm9vdHBvaW50IG1vZGUuIE11bHRpcGxlIHZhbHVlcyBjYW4gYmUgam9pbmVkIHZpYSB0aGUgIjoiIGRlbGltaXRlci4KICAgIEhlcmUgYW4gZXhhbXBsZToKCiAgICBwY2llX21vZGU9UlA6RVA6RVAKCiAgICBUaGlzIHdheSwgUENJZSBwb3J0IDAgd2lsbCBiZSBjb25maWd1cmVkIGFzIHJvb3Rwb2ludCwgUENJZSBwb3J0IDEgYW5kIDIKICAgIGFzIGVuZHBvaW50LgoKICAgIFBlciBkZWZhdWx0IFl1Y2NhIHdpbGwgYmUgY29uZmlndXJlZCBhczoKICAgIHBjaWVfbW9kZT1SUDpFUDpFUAoKICAgIFBlciBkZWZhdWx0IEthdG1haSB3aWxsIGJlIGNvbmZpZ3VyZWQgYXM6CiAgICBwY2llX21vZGU9UlA6UlA6UkVQCgogICAgUGVyIGRlZmF1bHQgS2lsYXVlYSB3aWxsIGJlIGNvbmZpZ3VyZWQgYXM6CiAgICBwY2llX21vZGU9UlA6UlAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaXJ1bWFsYSBSIE1hcnJpIDx0bWFycmlAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmQ2NzE4MDJiNjdhMGVmMzdhMDYxMjRmYTJjZTg1ZjAwYWEyMmM2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAxMSAxMToxNTo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBFbmFibGUgZGV2aWNlIHRyZWUgc3VwcG9ydCAoZmR0KSBvbiBLaWxhdWVhIHBlciBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBmZHQgc3VwcG9ydCBvbiB0aGUgQU1DQyBLaWxhdWVhIGV2YWwgYm9hcmQuCiAgICBBZGRpdGlvbmFsbHkgbm93IEVCQyByYW5nZXMgZmR0IGZpeHVwIGlzIGluY2x1ZGVkIHRvIHN1cHBvcnQgTk9SCiAgICBGTEFTSCBtYXBwaW5nIHZpYSB0aGUgTGludXggcGh5c21hcF9vZiBkcml2ZXIuCgogICAgVGhpcyBLaWxhdWVhIHBvcnQgbm93IHN1cHBvcnQgYm9vdGluZyBhcmNoL3BwYyBhbmQgYXJjaC9wb3dlcnBjCiAgICBMaW51eCBrZXJuZWxzLiBUaGUgZGVmYXVsdCBlbnZpcm9ubWVudCAibmV0X25mcyIgaXMgZm9yIGFyY2gvcHBjCiAgICBhbmQgIm5ldF9uZnNfZmR0IiBpcyBmb3IgYXJjaC9wb3dlcnBjLiBJbiB0aGUgbG9uZyBydW4sIGFyY2gvcHBjCiAgICBzdXBwb3J0IHdpbGwgYmUgcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDk5NGZmZDg5MGI5ZDk1ZDgwNzM4N2E5YjdiZDhhNDgwM2VlNDA2ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAxMSAxMToxMTo0NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvIHRvIDR4eCBmZHQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYjMyMzJkZGIwNThkMGVkMGJjMzFmN2M1YzI5Njc0OGExYWZhYzY3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMjE6Mjg6NTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHNtYWxsIG1lcmdlIHByb2JsZW1zIHdpdGggQ1BDSTQ0MCBhbmQgQWNhZGlhIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOTQxY2NlNzFiMWFlOTc1NjAyODU0MDQ1MDYxZTgyZjk0ZWNkMDEyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MzU6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHNtYWxsIG1lcmdlIHByb2JsZW0gaW4gNHh4X2VuZXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1NjY4MDZjYTFhMWJmNGQ4OTVkYWFmMGIyYmE1NDk0YWJiZmZlYmFmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MTE6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgQU1DQyBLaWxhdWVhIDQwNUVYIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGJiZDEyNTcyMWFlYTY2NDVmZGI5NjJmMzZiZDQxZjU5ZTI3MmY5ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjEwOjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBQUEM0MDVFWCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFkN2I4NzRlOWM5YTdjNjZmNWQ4ZGE5ZWM3OGEzNzMzNzY1ZDNlMzEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzowOTozNiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIG9mIDR4eCBQQ0kgYW5kIFBDSWUgc3VwcG9ydCAocmVuYW1pbmcpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmMTRlZDYyMzBiOWMxMDlhYWM5YTZmYjg3ODQ5N2RhYmQ0NGMyZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzowNzo1MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBmZHQgc3VwcG9ydCB0byA0eHggKGZpcnN0IG5lZWRlZCBvbiA0MDVFWCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQyNGE4YmIyOTI0YjkwNzI0Yjk0NDE2NWQzMTQxZjFmYThkZmU1YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjA0OjU3IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgNDA1RVggc3VwcG9ydCB0byA0eHggVUFSVCBQT1NUIHRlc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGYyZTkyYzExZjZlMjM5MmZjODE4NzgyOTIxMWE1Y2E3ZjBjMWUxMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE1OjEwOjAyIDIwMDcgKzAyMDAKCiAgICBEVFQ6IFByZXBhcmUgRFMxNzc1IGRyaXZlciBmb3IgdXNlIG9mIGRpZmZlcmVudCBJMkMgYWRkcmVzc2VzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5ZTkzYjFlMTZkMjY3MjIwNDQwZDgyN2I5MjBmYmFkOGFiZmE3MGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNDoyMzo0MyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0eHhfcGNpZTogQ2hhbmdlIFBDSWUgc3RhdHVzIG91dHB1dCB0byBtYXRjaCBjb21tb24gc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmY2OGY2NmJjYjBkYTg0Nzg0NWFhMmZhYzExZWJhNmMyNTkzOGM5OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDA5OjIyOjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBEaXNhYmxlIGRlYnVnIG91dHB1dCBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk3OTIzNzcwY2I1MmI2NGQ2OWVlYzk1OGExMWIyZWRhOGQ0NmUwZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAwOToxODoyMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0eHhfcGNpZTogTW9yZSBnZW5lcmFsIGNsZWFudXAgYW5kIDQwNUVYIFBDSWUgc3VwcG9ydCBhZGRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZGJlZThhOTBkZjYxM2ViNTE3YWFkYmVjZWJkNzBmMTY4OTEzZDMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMDc6NTc6MjAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNHh4X3BjaWU6IENoYW5nZSBDRkdfUENJRV9NRU1TSVpFIHRvIDEyOE1CIG9uIFl1Y2NhICYgS2F0bWFpCgogICAgMTI4TUIgc2VlbXMgdG8gYmUgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIHZhbHVlIGZvciB0aGUgbWVtb3J5IHNpemUKICAgIGZvciBvbiBQQ0llIHBvcnQuIFdpdGggdGhpcyBjaGFuZ2Ugbm93IHRoZSBCQVIncyBvZiB0aGUgUENJZSBjYXJkcwogICAgYXJlIGFjY2Vzc2libGUgdW5kZXIgVS1Cb290LgoKICAgIE9uZSBiaWcgbm90ZTogVGhpcyBvbmx5IHdvcmtzIGZvciBQQ0llIHBvcnQgMCAmIDEuIEZvciBwb3J0IDIgdGhpcwogICAgY3VycmVudGx5IGRvZXNuJ3Qgd29yaywgc2luY2UgdGhlIGJhc2UgYWRkcmVzcyBpcyBub3cgMHhjMDAwMDAwMAogICAgKDB4YjAwMDAwMDAgKyAyICogMHgwODAwMDAwMCksIGFuZCB0aGlzIGlzIGFscmVhZHkgb2NjdXBpZWQgYnkKICAgIENGR19QQ0lFMF9DRkdCQVNFLiBCdXQgc29sdmluZyB0aGlzIGlzc3VlIGZvciBwb3J0IDIgd291bGQgbWVhbgogICAgdG8gY2hhbmdlIHRoZSBiYXNlIGFkZHJlc3NlcyBjb21wbGV0ZWx5IGFuZCB0aGlzIGNoYW5nZSB3b3VsZCBoYXZlCiAgICB0b28gbXVjaCBpbXBhY3QgcmlnaHQgbm93LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBkZWJ1ZyBvdXRwdXQgdG8gdGhlIDR4eCBwY2llIGRyaXZlciB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZkOTUyODkyODFlZDI5NThlYmY3NmQyYjU1Zjg2YmJkODg1OTFmZDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAyMToxNjozMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0eHhfcGNpZTogRml4IHByb2JsZW0gd2l0aCBTRFJOIGFjY2VzcyB1c2luZyBwb3J0IG51bWJlciBhcyBpZHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzA0OGJjYmYwYmFkMjYyMzc4YzVhZjY4ZjJiZjY3NzhmYjdkODI5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDE1OjAxOjAyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbmFtZSA0MDVncF9wY2kgdG8gNHh4X3BjaSBzaW5jZSBpdHMgdXNlZCBvbiBhbGwgNHh4IHBsYXRmb3JtcwoKICAgIFRoZXNlIGZpbGVzIHdlcmUgaW50cm9kdWNlZCB3aXRoIHRoZSBJQk0gNDA1R1AgYnV0IGFyZSBjdXJyZW50bHkgdXNlZCBvbiBhbGwKICAgIDR4eCBQUEMgcGxhdGZvcm1zLiBTbyB0aGUgbmFtZSBkb2Vzbid0IG1hdGNoIHRoZSBjb250ZW50IGFueW1vcmUuIFRoaXMgcGF0Y2gKICAgIHJlbmFtZXMgdGhlIGZpbGVzIHRvIDR4eF9wY2kuYy9oLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NDI3NmViMGE3YTM1YjllOGMwNTNkNTg5YWUyMjViMGYwMTdhMjM3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMTQ6MTQ6NTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGEgY29tbWVudCBmb3IgNDA1RVggUENJZSBlbmRwb2ludCBjb25maWd1cmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAzZDM0NGJiNmE1ZjA4MmVhMTBlYzlkNzUzNTU4ZWE3ZGZkMWM2MjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAxMDozODowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBNYWtlIDQ0MFNQZSBQQ0llIGNvZGUgbW9yZSBnZW5lcmljIHRvIHVzZSBvbiBkaWZmZXJlbnQgNHh4IFBQQ3MgKDMpCgogICAgKDMpIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBtYWNyb3MgbGlrZSBTRFJOX1BFU0RSX0RMUFNFVChwb3J0KSB0byBhY2Nlc3MKCXRoZSBTRFIgcmVnaXN0ZXJzIG9mIHRoZSBQQ0llIHBvcnRzLiBUaGlzIG1ha2VzIHRoZSBvdmVyYWxsIGRlc2lnbgoJY2xlYXJlciwgc2luY2UgaXQgcmVtb3ZlZCBhIGxvdCBvZiBzd2l0Y2ggc3RhdGVtZW50cyB3aGljaCBhcmUgbm90CgluZWVkZWQgYW55bW9yZS4KCglBbHNvLCB0aGUgZnVuY3Rpb25zIHBwYzR4eF9pbml0X3BjaWVfcm9vdHBvcnQoKSBhbmQKCXBwYzR4eF9pbml0X3BjaWVfZW50cG9ydCgpIGFyZSBtZXJnZWQgaW50byBhIHNpbmdsZSBmdW5jdGlvbgoJcHBjNHh4X2luaXRfcGNpZV9wb3J0KCksIHNpbmNlIG1vc3Qgb2YgdGhlIGNvZGUgd2FzIGR1cGxpY2F0ZWQuCglUaGlzIG1ha2VzIG1haW50YWluYW5jZSBhbmQgcG9ydGluZyB0byBvdGhlciA0eHggcGxhdGZvcm1zCgllYXNpZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyNmY3MTEwNjg3MWYzMWQxN2QwZWEwZGI5YTc1NDdmZjkyOTM0YmMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAwNzo0ODowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBNYWtlIDQ0MFNQZSBQQ0llIGNvZGUgbW9yZSBnZW5lcmljIHRvIHVzZSBvbiBkaWZmZXJlbnQgNHh4IFBQQ3MgKDIpCgogICAgVGhpcyBwYXRjaCBpcyB0aGUgZmlyc3QgcGF0Y2ggb2YgYSBzZXJpZXMgdG8gbWFrZSB0aGUgNDQwU1BlIFBDSWUgY29kZQogICAgdXNhYmxlIG9uIGRpZmZlcmVudCA0eHggUFBDIHBsYXRmb3Jtcy4gSW4gcHJlcGVyYXRpb24gZm9yIHRoZSBuZXcgNDA1RVgKICAgIHdoaWNoIGlzIGFsc28gZXF1aXBwZWQgd2l0aCBQQ0llIGludGVyZmFjZXMuCgogICAgKDIpIFRoaXMgcGF0Y2ggcmVuYW1lcyB0aGUgZnVuY3Rpb25zIGZyb20gNDQwc3BlXyB0byA0eHhfIHdpdGggYQoJbGl0dGxlIGFkZGl0aW9uYWwgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjN2M2ZGEyMzAyOGYxNDZkOTEyNTE0Yjk1YWVmYTNkYTdjZjM3Njk5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMDc6MzQ6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogTWFrZSA0NDBTUGUgUENJZSBjb2RlIG1vcmUgZ2VuZXJpYyB0byB1c2Ugb24gZGlmZmVyZW50IDR4eCBQUENzICgxKQoKICAgIFRoaXMgcGF0Y2ggaXMgdGhlIGZpcnN0IHBhdGNoIG9mIGEgc2VyaWVzIHRvIG1ha2UgdGhlIDQ0MFNQZSBQQ0llIGNvZGUKICAgIHVzYWJsZSBvbiBkaWZmZXJlbnQgNHh4IFBQQyBwbGF0Zm9ybXMuIEluIHByZXBlcmF0aW9uIGZvciB0aGUgbmV3IDQwNUVYCiAgICB3aGljaCBpcyBhbHNvIGVxdWlwcGVkIHdpdGggUENJZSBpbnRlcmZhY2VzLgoKICAgICgxKSBUaGlzIHBhdGNoIHJlbmFtZXMgdGhlIGZpbGVzIGZyb20gNDQwc3BlX3BjaWUgdG8gNHh4X3BjaWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjQ1YTM2MmFkM2MwYzFiODRmY2NjOWZlYzdiNjIzZWIxNGY2ZTUwMgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMDE6Mzc6MzYgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IENhbGwgdXNiX2NwdV9pbml0KCkgZHVyaW5nIGJvYXJkIGluaXQKCiAgICB1c2JfY3B1X2luaXQoKSBjb25maWd1cmVzIEdQUyBVU0IgcGlucywgY2xvY2tzLCBldGMuIGFuZAogICAgaXMgcmVxdWlyZWQgZm9yIHByb3BlciBvcGVyYXRpb24gb2Yga2VybmVsIFVTQiBzdWJzeXN0ZW0uCiAgICBUaGlzIHNldHVwIHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gdGhlIGtlcm5lbCBieSB0aGUgZml4dXAKICAgIGNvZGUgd2hpY2ggaXMgYmVpbmcgcmVtb3ZlZCwgdGh1cyBsb3cgbGV2ZWwgaW5pdCBtdXN0IGJlCiAgICBkb25lIGJ5IFUtYm9vdCBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYjVhZjc3M2Y4ZDkyNjc3ZTA2ZjMyOTViNDU1NTdjOWQwYTQ4N2MyNApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6NTE6MjcgMjAwNyArMDgwMAoKICAgIEZpeCB0aGUgaXNzdWUgb2YgdXNiX2tiZCBkcml2ZXIgbWlzc2luZyB0aGUgc2NhbiBjb2RlIG9mIGtleSAneicuCgogICAgVGhlIHNjYW4gY29kZSBvZiB0aGUga2V5ICd6JyBpcyAweDFkLCB3aGljaCBzaG91bGQgYmUgaGFuZGxlZC4KCiAgICBUaGUgY2hhbmdlIGhhcyBiZSB0ZXN0ZWQgb24gTk9WQVRFSyBVU0Iga2V5Ym9hcmQgYW5kIFVMSSBQQ0kgT0hDSQogICAgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA4NWFjOTg4ZTg2Zjk0MTRmYTY0NWIwMTQ4ZGM2NmMzNTIwYTFlYjg0CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gT2N0IDE1IDExOjU5OjE3IDIwMDcgKzAyMDAKCiAgICBQWEEgVVNCIE9IQ0k6ICJ1c2Igc3RvcCIgaW1wbGVtZW50YXRpb24uCgogICAgU29tZSBVU0Iga2V5cyBuZWVkIHRvIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgbG9hZGluZyB0aGUga2VybmVsCiAgICBvdGhlcndpc2UgdGhleSBjYW4gcmVtYWluIGluIGFuIHVuZGVmaW5lZCBzdGF0dXMgd2hpY2ggcHJldmVudHMgdGhlbQogICAgdG8gYmUgY29ycmVjdGx5IHJlY29nbml6ZWQgYnkgdGhlIGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMzE1NDgyNDlkZWNmMThhNmI4NzdhMTg0MzZiNjEzOWRkNDgzZmU0YQpBdXRob3I6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTc6NDA6MzUgMjAwNyAtMDQwMAoKICAgIERIQ1AgQ2xpZW50IEZpeAoKICAgIFRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuCgogICAgY29tbWl0IGU2ZTUwNWVhZTk0ZWQ3MjFlMTIzZTE3NzQ4OTI5MWZjNDU0NGI3YjgKICAgIEF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KICAgIERhdGU6ICAgTW9uIE9jdCAyOSAxNzoxOTowMyAyMDA3IC0wNDAwCgoJRm91bmQgYSBidWcgaW4gdGhlIHdheSB0aGUgREhDUCBSZXF1ZXN0IHBhY2tldCBpcyBidWlsdCwgd2hlcmUgdGhlIElQIGFkZHJlc3MKCXRoYXQgaXMgb2ZmZXJlZCBieSB0aGUgc2VydmVyIGlzIGJvdW5kIHRvIHByZW1hdHVyZWx5LiBUaGlzIHBhdGNoIGlzIGEgZml4IG9mCgl0aGF0IGJ1ZyB3aGVyZSB0aGUgSVAgYWRkcmVzcyBvZmZlcmVkIGJ5IHRoZSBESENQIHNlcnZlciBpcyBub3QgdXNlZCB1bnRpbAoJYWZ0ZXIgdGhlIERIQ1AgQUNLIGZyb20gdGhlIHNlcnZlciBpcyByZWNlaXZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgZThlZThmM2FkZTJhMDZjMTg5M2RkNWU2OGYyMjMwNzBkNjUwYzdlZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxNjoyMiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTQ0NTU6IEZpeCBjb3JyZWN0IGJvb3QgbG9jYXRpb24gZm9yIGF0bWVsIGFuZCBpbnRlbAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ODhlOGViNDE0YWMxMTFjY2E3Y2U2MGJkZjMwZTgwNWFiOWE3YmNiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjE0OjAwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGJ1aWxkIGVycm9yIHdoZW4gQ09ORklHX1dBVENIRE9HIGlzIGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY3ZTEyZTcwNWIyMDRjZmU5MTRlM2UzZTY5M2Q2OWE0NDVkY2FiZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxMjozNiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTMyOTogQXNzaWduIGNvcnJlY3QgU0RSQU0gc2l6ZSBhbmQgZml4IGNhY2hlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1ZTlmMmMyMTJhNjU2MTBiMmU1OWE1YzAwZDAxMTMzODNhNGRhMGIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTA6MjMgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlIDUyNTM6IEFzc2lnbiBjb3JyZWN0IFNEUkFNIHNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmFjZWZhNzJlZTAwMjZmODYyYWI2NTU5N2NhNjg3NDI4ZjYzYTk3MwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzowOToxNyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTI4MjogRml4IGV4dGVybmFsIGZsYXNoIGJvb3QgYW5kIHJldHVybiBkcmFtc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNzg3OTFhZTkxNGQ0ZTdjNWVkY2ExY2RhZDczYjNkYzgxYTRlYjgyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoyMDowMSAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogaW5jcmVhc2Uga2VybmVsX2FkZHJfciBhbmQgZmR0X2FkZHJfciAoaGludGVkIGJ5IFdvbGZnYW5nIERlbmspLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMWEwY2UyMGFhNGNiNGUzMDY4ZGEwNGU3MjkwZWU5OTg2ZmQwYjgzNApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgT2N0IDI0IDA4OjQyOjI1IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBmaXggc3B1cmlvdXMgY2hhcmFjdGVycyBvbiBzZWNvbmQgc2VyaWFsIGludGVyZmFjZQoKICAgIFdpdGggdGhpcyBwYXRjaCBQU0MzIGlzIGNvbmZpZ3VyZWQgYXMgVUFSVC4gVGhpcyBpcyBkb25lLCBiZWNhdXNlIGlmCiAgICB0aGUgcGlucyBvZiBQU0MzIGFyZSBub3QgY29uZmlndXJlZCBhdCBhbGwgKC0+IGFsbCBwaW5zIGFyZSBHUEkpLAogICAgZHVlIHRvIGNyb3NzdGFsaywgc3B1cmlvdXMgY2hhcmFjdGVycyBtYXkgYmUgc2VuZCBvdmVyIHRoZSBSWDIzMl8yX1RYRAogICAgc2lnbmFsIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYmU0YTg3ZjExZTI5N2E1Y2VkZWRiZjdkZDcxYzAyNDhmMzg3NGFjZApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgT2N0IDI0IDA4OjQxOjI3IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwUzogZml4IGNvbW1hbmRzIGZvciBTVEs1Mnh4IGJhc2UgYm9hcmQgYmVjYXVzZSBvZiBtaXNzaW5nIFNNNTAxIGdyYWZpYyBjb250cm9sbGVyCgogICAgU29tZSBjb21tYW5kcyBmb3IgdGhlIFNUSzUyeHggYmFzZSBib2FyZCB0cnkgdG8gYWNjZXNzIHRoZSBTTTUwMSBncmFmaWMKICAgIGNvbnRyb2xsZXIuIEJ1dCB0aGUgVFFNNTIwMFMgaGFzIG5vIGdyYWZpYyBjb250cm9sbGVyIChvbmx5IHRoZSBUUU01MjAwCiAgICBhbmQgdGhlIFRRTTUyMDBCIGhhdmUpLiBUaGlzIHBhdGNoIGRlYWN0aXZhdGVzIHRoZSBjb21tYW5kcyBhY2Nlc3NpbmcKICAgIHRoZSBTTTUwMSBmb3IgdGhlIFRRTTUyMDBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGIzMWY2NDM0M2VhZDk0ODJjZDQzOWIxYWRiZTRjMzQwMjZhNjQxYjEKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjo0NTo1MyAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogZml4IHNwdXJpb3VzIGNoYXJhY3RlcnMgb24gc2Vjb25kIHNlcmlhbCBpbnRlcmZhY2UKCiAgICBXaXRoIHRoaXMgcGF0Y2ggUFNDMyBpcyBjb25maWd1cmVkIGFzIFVBUlQuIFRoaXMgaXMgZG9uZSwgYmVjYXVzZSBpZgogICAgdGhlIHBpbnMgb2YgUFNDMyBhcmUgbm90IGNvbmZpZ3VyZWQgYXQgYWxsICgtPiBhbGwgcGlucyBhcmUgR1BJKSwKICAgIGR1ZSB0byBjcm9zc3RhbGssIHNwdXJpb3VzIGNoYXJhY3RlcnMgbWF5IGJlIHNlbmQgb3ZlciB0aGUgUlgyMzJfMl9UWEQKICAgIHNpZ25hbCBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDBmYzBmOTFiMjBmZmE4MDJmNWE2NjUzNGNhNWMyODQ0OTEwNTgzZjYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjo0MDowNiAyMDA3ICswMjAwCgogICAgVFFNNTIwMFM6IGZpeCBjb21tYW5kcyBmb3IgU1RLNTJ4eCBiYXNlIGJvYXJkIGJlY2F1c2Ugb2YgbWlzc2luZyBTTTUwMSBncmFmaWMgY29udHJvbGxlcgoKICAgIFNvbWUgY29tbWFuZHMgZm9yIHRoZSBTVEs1Mnh4IGJhc2UgYm9hcmQgdHJ5IHRvIGFjY2VzcyB0aGUgU001MDEgZ3JhZmljCiAgICBjb250cm9sbGVyLiBCdXQgdGhlIFRRTTUyMDBTIGhhcyBubyBncmFmaWMgY29udHJvbGxlciAob25seSB0aGUgVFFNNTIwMAogICAgYW5kIHRoZSBUUU01MjAwQiBoYXZlKS4gVGhpcyBwYXRjaCBkZWFjdGl2YXRlcyB0aGUgY29tbWFuZHMgYWNjZXNzaW5nCiAgICB0aGUgU001MDEgZm9yIHRoZSBUUU01MjAwUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA3YjBhNDIyMTlmMzAyNzdmNzFmNDQwNWNiYWY4YTI2OWY2ZDJkMjI3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAwOToxNDoyOCAyMDA3ICswMjAwCgogICAgTWlwczogRml4IHN0cmluZyBmdW5jdGlvbnMgZGlmZmVyIHByb3RvdHlwZSBkZWNsYXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgY2I4MjUwZmU0YjNjNGVkNTQ5YjI3MGU4YTIwYmMyMjA2MGU3ZTFkMgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMTc6NTE6NDAgMjAwNyAtMDUwMAoKICAgIGZzbF9wY2lfaW5pdCBlbmFibGUgQ09NTUFORF9NRU1PUlkgaWYgaW5ib3VuZCB3aW5kb3cKCiAgICBQYXRjaCAxNmUyM2MzZiByZW1vdmVkIFBDU1JCQVIgYWxsb2NhdGlvbi4JQnV0IHBhc3NpbmcgemVybyB3aW5kb3dzCiAgICB0byBwY2lhdXRvX3NldHVwX2RldmljZSBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIG5vdCBnZXR0aW5nCiAgICBDT01NQU5EX01FTU9SWSBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOWQwZDUyNzk5MjU2NmViZWY5ODI2OTYyZmYxNzQ1YjJmMDgyYjkyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxMDo1NToyNCAyMDA3ICswMjAwCgogICAgZGVsdGE6IEZpeCBPSENJX1JFR1NfQkFTRSB1bmRlY2xhcmVkIGFuZCB3YWl0X21zIGltcGxpY2l0IGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5YzQ4ODRmNTRkYTk4MmNlOTkwYzdkMTc2MGFjODFiMDcwNGQzYzY0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwODoxMDoxNSAyMDA3ICswMjAwCgogICAgZml4IHdhcm5pbmc6IG5vIHJldHVybiBzdGF0ZW1lbnQgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlNzgyMjBmNmU1MTQyMDY3NTdhY2ZlMjQ3Mjk3ZmM5YTMyOGE4ODFmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwNjozMzo0NSAyMDA3ICswMjAwCgogICAgeHNlbmdpbmU6IEZpeCBubyBwYXJ0aXRpb24gdHlwZSBzcGVjaWZpZWQsIHVzZSBET1MgYXMgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTBjZGI4ZGJkNjdhODE4ODIzYWI5ZWM4OGI2OGZjMzQ4OTAzZGI1OQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MjQ6NTkgMjAwNyArMDIwMAoKICAgIGx1YmJvY2s6IEZpeCBubyBwYXJ0aXRpb24gdHlwZSBzcGVjaWZpZWQsIHVzZSBET1MgYXMgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDFiNGQyODJkMzhmYTcyMzFjMzE1YzVmNmNmZmY1YmRkMjRlMDE5MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTY6NTA6MDMgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZToga2VlcCBsaXN0cyBzb3J0ZWQ7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU4Yjc0YjA1YzYyMWUyODM1ZWNmNGUyZDMyNDMwNDJjZjQxODY3NzcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjA5OjA1IDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBkcml2ZXJzIG1ha2VmaWxlIGVudHJpZXMgZHMxNzIyLmMgbXdfZWVwcm9tLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk2NDU1YmZlYmM5ODg3ODM3MDk1YzkwNTFkMjE2ZjUzYzYxYjVmMTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjA3OjM5IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBib2FyZC9pbm5va29tL2lubm9rb20uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmE0NzQxZDlhMTRlYzQ3NWY1MGU5ODU2ZDJjMGE2N2U4YjQyNzFiZApBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDoyNTozMyAyMDA3ICswMjAwCgogICAgZml4IHB4YTI1NV9pZHAgYm9hcmQKCiAgICBUaGUgcHhhMjU1X2lkcCBiZWluZyBhbiBvbGQgdW5tYWludGFpbmVkIGJvYXJkIHNob3dlZCBzZXZlcmFsIGlzc3VlczoKICAgIDEuIENPTkZJR19JTklUX0NSSVRJQ0FMIHdhcyBzdGlsbCBkZWZpbmVkLgogICAgMi4gTmVpdGhlciBDT05GSUdfTUFDX1BBUlRJVElPTiBub3IgQ09ORklHX0RPU19QQVJUSVRJT04gd2FzIGRlZmluZWQuCiAgICAzLiBTeW1ib2wgZmxhc2hfYWRkciB3YXMgdW5kZWNsYXJlZC4KICAgIDQuIFRoZSBib2FyZHMgbG93bGV2ZWxfaW5pdCBmdW5jdGlvbiB3YXMgc3RpbGwgY2FsbGVkIG1lbXNldHVwLgogICAgNS4gVGhlIFRFWFRfQkFTRSB3YXMgc3RpbGwgMHhhMzAwMDAwMCByYXRoZXIgdGhhbiAweGEzMDgwMDAwLgogICAgNi4gVXNpbmcgLW1hcmNoPWFybXY1IGluc3RlYWQgb2YgLW1hcmNoPWFybXY1dGUgcmVzdWx0ZWQgaW4gbG90cyBvZgogICAgJ3RhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcndvcmtpbmcnIHdhcm5pbmdzIG9uIHJlY2VudCBjb21waWxlcnMuCiAgICA3LiBUaGUgUFhBJ3Mgc2VyaWFsIGRyaXZlciByZWRlZmluZWQgRkZVQVJULCBCVFVBUlQgYW5kIFNUVUFSVCB1c2VkIGFzCiAgICBpbmRleGVzIHJhdGhlciB0aGFuIHRoZSByZWdpc3RlciBkZWZpbml0aW9ucyBmcm9tIHRoZSBweGEtcmVncyBoZWFkZXIKICAgIGZpbGUuIFJlbmFtZWQgdGhlbSB0byBGRlVBUlRfSU5ERVgsIEJUVUFSVF9JTkRFWCBhbmQgU1RVQVJUX0lOREVYIHRvCiAgICBhdm9pZCBhbnkgYW1iaWd1aXRpZXMuCiAgICA4LiBUaGVyZSB3ZXJlIHNldmVyYWwgcmVkZWZpbml0aW9uIHdhcm5pbmdzIGNvbmNlcm5pbmcgSUNNUiwgT1NNUjMsCiAgICBPU0NSLCBPV0VSLCBPSUVSLCBSQ1NSIGFuZCBDQ0NSIGluIHRoZSBQWEEncyBhc3NlbWJseSBzdGFydCBmaWxlLgogICAgOS4gVGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZSB3YXMgcmF0aGVyIG91dGRhdGVkLgogICAgMTAuIFRoZSBwYXJ0IGhlYWRlciBmaWxlIGRlZmluZWQgdGhlIHZlbmRvciwgcHJvZHVjdCBhbmQgcmV2aXNpb24gYXJyYXlzCiAgICBhcyB1bnNpZ25lZCBjaGFycyBpbnN0ZWFkIG9mIGp1c3QgY2hhcnMgaW4gdGhlIGJsb2NrX2Rldl9kZXNjX3QKICAgIHN0cnVjdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgMjk4Y2Q0Y2FmZTgxZmY4YTZjODdiZThmYmM0NDBhMjA3MjBkM2VkNgpBdXRob3I6IFJ1bmUgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+CkRhdGU6CVdlZCBPY3QgMTcgMTE6NTY6MzEgMjAwNyAtMDUwMAoKICAgIE1ha2UgTVBDODI2NkFEUyBjb21tYW5kIHNlbGVjdGlvbiBtb3JlIHJvYnVzdAoKICAgIEZpeCBNUEM4MjY2IGNvbW1hbmQgbGluZSBkZWZpbml0aW9uIHNvIGl0IHdvbid0IGJyZWFrIHdoZW4gbmV3IGNvbW1hbmRzCiAgICBhcmUgYWRkZWQgdG8gdS1ib290LgogICAgU2lnbmVkLW9mZi1ieSBSdW5lIFRvcmdlcnNlbiA8cnVuZXRAaW5ub3ZzeXMuY29tPgoKY29tbWl0IGQzYWZhMWVlMTkzNDVhMzFmZDFlYWFkM2U5OGI5N2QxM2NhNDczMTUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDIzIDEzOjE0OjEwIDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBVcGRhdGUgY29uZmlndXJhdGlvbiB0byBhY2NvbW9kYXRlIG5leHQgZ2VuZXJhdGlvbiBib2FyZC4KCiAgICBOZXcgYm9hcmQgaGFzIGZhc3RlciBvc2NpbGxhdG9yIGFuZCBhIGRpZmZlcmVudCBGbGFzaCBjaGlwLiBUaGlzIGFmZmVjdHM6CiAgICAtIENGR19NUEM1WFhYX0NMS0lOCiAgICAtIFNEUkFNIHRpbWluZ3MKICAgIC0gRmxhc2ggQ1MgY29uZmlndXJhdGlvbiAodGltaW5ncykKICAgIC0gRmxhc2ggc2VjdG9yIHNpemUsIGFuZCB0aHVzIE1URCBwYXJ0aXRpb24gbGF5b3V0CiAgICAtIG1hbGxvYygpIGFyZW5hIHNpemUgKGR1ZSB0byBiaWdnZXIgRmxhc2ggc2VjdG9ycykKICAgIC0gc21hbGxlciBtZW1vcnkgdGVzdCByYW5nZSAoZHVlIHRvIGJpZ2dlciBtYWxsb2MoKSBhcmVuYSkKCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdGluZyB2aWEgIm10ZXN0Ii4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGVmZjUwMTkwNGRmMmJmMTcyNGE3NTAwNjI2MjhiYTJjNTFkYmIxZjgKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDIzIDExOjM2OjA3IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgc2V0dGluZyBvZiBTRGVsYXkgcmVnLiB0byBTRFJBTSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgUGVyIEFOMzIyMSAoTVBDNTIwMEIgU0RSQU0gSW5pdGlhbGl6YXRpb24gYW5kIENvbmZpZ3VyYXRpb24pLCB0aGUgU0RlbGF5CiAgICByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gYSB2YWx1ZSBvZiAweDAwMDAwMDA0IGFzIHRoZSBmaXJzdCBzdGVwIG9mIHRoZQogICAgU0RSQU0gY29udG9ybGxlciBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2E5MzQ4NzI4ZWJkYTYzY2RiYWFjZmZkODMwOTlhYTcxZDlkNGM1NApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTA6MjI6MTYgMjAwNyArMDEwMAoKICAgIE1vdmUgUEwwMSogc2VyaWFsIGRyaXZlcnMgdG8gZHJpdmVycy9zZXJpYWwgYW5kIGFkanVzdCBNYWtlZmlsZXMuCgpjb21taXQgMjBkNTAwZDUzMWE2Yjk3MWNlNmNjMWJmMTkxY2IwMDkyY2RjMGFmYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoxNzo0MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFNvbWUgZnVydGhlciBHUElPIGNvbmZpZyBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRlOWE3MzhmYWE3YzJmNDcyODYxMTljM2JmZWJjM2RmYmZlN2Q4NmQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJU3VuIE9jdCAyMSAyMjoxMDoxMCAyMDA3ICswOTAwCgogICAgW01JUFNdIEZpeCBVTkNBQ0hFRF9TRFJBTQoKICAgIFBIWVNBRERSIGlzIGZvciBwaHlzaWNhbCBhZGRyZXNzLCBLU0VHMUFERFIgaXMgZm9yIHVuY2FjaGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDAwMTAxZGQ3YTMyZDEyZjY5ODE1MDEyM2U0N2U0YjM0MjAyNzlmODYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMjE6MzA6NDIgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBBZGQgUElDLXJlbGF0ZWQgc3dpdGNoZXMgdG8gUExBVEZPUk1fe0NQUCxMRH1GTEFHUyBhbmQgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCBlYjcwMDYzNmRiMDE3ZDMxMGVkYWViNTU5YjEzZDgyNTg4NTYwNjc0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM3IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogRGVmaW5lIF9ncCBpbiBhIHN0YW5kYXJkIG1hbm5lcgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAyMjA2OTIxNWViN2FkZjVhMzg4OGJmN2M3Nzg0ZWE5ZDcwYTcyY2QwCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gRml4ICRncCB1c2FnZQoKICAgIE5vdyB3ZSBsb2FkICRncCB3aXRoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgYnV0IHRoaXMgaXMgaW5jb3JyZWN0IHVzZS4KICAgIEFzIGEgZ2VuZXJhbCBwcmluY2lwbGUsIHdlIHNob3VsZCB1c2UgX2dwIGZvciAkZ3AuCgogICAgVGhhbmtzIHRvIGxpbmtlciBzY3JpcHQncyBoZWxwIHdlIGZvcnR1bmF0ZWx5IGhhdmUgX2dwIHdoaWNoIGVxdWFscyB0bwogICAgX0dMT0JBTF9PRkZTRVRfVEFCTEVfLiBCdXQgb25jZSBfZ3AgZ2V0cyBvdXQgb2YgYWxpZ25tZW50LCB3ZSB3aWxsIG5vdAogICAgYmUgYWJsZSB0byBhY2Nlc3MgdG8gR09UIGVudGlyZXMsIGdsb2JhbCB2YXJpYWJsZXMgYW5kIHByb2NlZHVyZSBlbnRyeQogICAgcG9pbnRzLiBUaGUgcmlnaHQgdGhpbmcgdG8gZG8gaXMgdG8gdXNlIF9ncC4KCiAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlIGEgbmV3IHN5bWJvbCBgLmdwd29yZCBfR0xPQkFMX09GRlNFVF9UQUJMRV8nCiAgICB3aGljaCBob2xkcyB0aGUgb2Zmc2V0IGZyb20gX2dwLiBXaGVuIHVwZGF0aW5nIEdPVCBlbnRyaWVzLCB3ZSB1c2UgdGhpcwogICAgb2Zmc2V0IGFuZCBfZ3AgdG8gY2FsY3VsYXRlIHRoZSBmaW5hbCBfR0xPQkFMX09GRlNFVF9UQUJMRV8uCgogICAgVGhpcyBwYXRjaCBpcyBvcmlnaW5hbGx5IHN1Ym1pdHRlZCBieSBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4sIHRoZW4KICAgIEkgbWFkZSBzb21lIGNoYW5nZSB0byBsZWF2ZSBvdmVyIG51bV9nb3RfZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBDYzogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgY2JmMjMyM2I1YjgyODVlYTAxYWNiYTdiYmI5MDVhMzE2MmQ5YjAyMQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IEZpeCBfX2dvdF9zdGFydCBhbmQgX19nb3RfZW5kCgogICAgRW5zdXJlIHRoYXQgX19nb3Rfc3RhcnQgcG9pbnRzIHRvIHRvcCBvZiB0aGUgYC5nb3QnLCBhbmQgX19nb3RfZW5kIHBvaW50cwogICAgdG8gYm90dG9tIGFzIHdlbGwsIHNvIHRoYXQgd2UgbmV2ZXIgZmFpbCB0byBjb3VudCBudW1fZ290X2VudHJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGU1ZjMyNWZlYzViNDhhZTcwNWM4OTUyMjkyM2JhNWEyZTM3Y2Q1YzcKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBSZW1vdmUgZHVwbGljYXRlZCAuc2RhdGEgc2VjdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAwNWJmNDkxOWMxY2U0OWNkZWRhZGFjZDU2NGQwNzg2YThlZDc5NmExCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyMSAwMTowMToxNyAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZmMjg1Y2EwN2VkYTFlYTRhODkwOTg0OGNjMWNjNjA0ZWM4ZmVjOWMKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJVGh1IE9jdCA0IDIwOjQ3OjEwIDIwMDcgKzAzMDAKCiAgICBGaXggTkUyMDAwIGRyaXZlcjoKCiAgICBGaXhlZCB0eXBvIGluIG5lMjAwMC5oLCB0aGlua28gcmUgbjJrX2luYigpIHVzYWdlLCBkb24ndCB0cnkKICAgIHRvIGRvIGFueXRoaW5nIGluIGV0aF9zdG9wKCkgaWYgZXRoX2luaXQoKSB3YXMgbm90IGNhbGxlZC4KICAgIFNpbXBsaWZpZWQgUlggcGF0aCBpbiBvcmRlciB0byBhdm9pZCB0aW1lb3V0cyBvbiByZWFsbHkgcmVhbGx5CiAgICBmYXN0IE5FMjAwMCBjYXJkcyAocmVhZDogcWVtdSB3aXRoIGludGVybmFsIHRmdHApLCBOZXRMb29wKCkgaXMKICAgIGNsZXZlciBlbm91Z2ggdG8gY29wZSB3aXRoIDEgcGFja2V0IHBlciBldGhfcngoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBkZjkwOTY4YjQ4ZmIzNGZhOTA3MmZhYjE1MGRiMmFjODk2NzhmNTM3CkF1dGhvcjogdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20gPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDI0IDEzOjMyOjEzIDIwMDcgLTA0MDAKCiAgICBTZXR0aW5nIE1TUltERV0gaW4gZG9fcmVzZXQKCiAgICBIZWxsbywKICAgICAgIFRoaXMgcGF0Y2ggZW5zdXJlcyB0aGUgc29mdCByZXNldCBvZiB0aGUgYm9hcmQgZm9yIHRoZSA4NXh4IGJvYXJkcwogICAgICAgYnkgc2V0dGluZyB0aGUgTVNSW0RFXSBpbiB0aGUgZG9fcmVzZXQgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3VnaG9zaCBHYW51IDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KCmNvbW1pdCAxZTcwMWU3MDEzMDRiM2MzYTM3NjhjYTgzZGQyYWI3YjllODhjNzdkCkF1dGhvcjogdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20gPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDI0IDEzOjM2OjAxIDIwMDcgLTA0MDAKCiAgICBNU1Igb3ZlcndyaXRlIGZpeAoKICAgIEhlbGxvLAogICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBNU1Igb3ZlcndyaXRlIGluIHRoZSBzdGFydC5TIHdoZW4gbW92aW5nIG91dCBvZgogICAgICB0aGUgbGFzdCA0SyBwYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN1Z2hvc2ggR2FudSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+Cgpjb21taXQgNWM3ZWE2NGJiNzRhODUwYTJiMjMwM2Y4NTNhODI3MDY5NWFkODYwMgpBdXRob3I6IERhbiBXaWxzb24gPGR3aWxzb25AZnVsY3J1bW1pY3JvLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxMTozMzo0OCAyMDA3IC0wNTAwCgogICAgdHNlYyBkcml2ZXIgc2hvdWxkIGNsZWFyIFJIQUxUIG9uIHN0YXJ0dXAKCiAgICBUaGlzIHdhcyBjYXVzaW5nIHByb2JsZW1zIGZvciBzb21lIHBlb3BsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGFpbiBHcmF2ZWwgPGFncmF2ZWxAZnVsY3J1bW1pY3JvLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxzb24gPGR3aWxzb25AZnVsY3J1bW1pY3JvLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjAwZDQ3YjhmNmExMDAxOWU1MzdkYzlhNjJhYTE0OThkZjU4ZDI1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxMSAwMDoyOToxOCAyMDA3IC0wNTAwCgogICAgSW1wcm92ZSBoYW5kbGluZyBvZiBQQ0kgaW50ZXJydXB0IGRldmljZSB0cmVlIGZpeHVwIG9uIE1QQzg1eHggQ0RTCgogICAgT24gdGhlIE1QQzg1eHggQ0RTIHdlIGhhdmUgdHdvIGlzc3VlczoKCiAgICAxLiBUaGUgZGV2aWNlIHRyZWUgZml4dXAgY29kZSBkaWQgbm90IGNoZWNrIHRvIHNlZSBpZiB0aGUgcHJvcGVydHkgd2UgYXJlCiAgICB0cnlpbmcgdG8gdXBkYXRlIGlzIGFjdHVhbGx5IGZvdW5kLiAgSXRzIHBvc3NpYmxlIHRoYXQgaXQgd291bGQgdXBkYXRlCiAgICByYW5kb20gbWVtb3J5IHN0YXJ0aW5nIGF0IDAuCgogICAgMi4gTmV3ZXIgTGludXgga2VybmVsJ3MgaGF2ZSBtb3ZlZCB0aGUgbG9jYXRpb24gb2YgdGhlIFBDSSBub2RlcyB0byBiZQogICAgc2liaWxpbmdzIG9mIHRoZSBzb2Mgbm9kZSBhbmQgbm90IGNoaWxkcmVuLiAgVGhlIGV4cGxpY2l0IFBBVEggdG8gdGhlIFBDSQogICAgbm9kZSB3b3VsZCBub3QgYmUgZm91bmQgZm9yIHRoZXNlIGRldmljZSB0cmVlcy4gIEFkZCB0aGUgYWJpbGl0eSB0byBoYW5kbGUKICAgIGJvdGggcGF0aHMuICBJbiB0aGUgZnV0dXJlIHdlIHNob3VsZG4ndCBoYW5kbGUgc3VjaCBmaXh1cHMgYnkgZXhwbGljaXQgcGF0aC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGEzMDYzZWVjNzc1NzE5YjdlOTEwMjNiYmVjM2Y2NGIzMTE4NzkxZGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDExIDAwOjE4OjQ4IDIwMDcgLTA1MDAKCiAgICBTZXQgT0ZfU1RET1VUX1BBVEggdG8gbWF0Y2ggdGhlIGRlZmF1bHQgY29uc29sZSBvbiBNUEM4NTY4IE1EUwoKICAgIE9uIHRoZSBNUEM4NTY4IE1EUyB3ZSB1c2UgdHR5UzAsIFVBUlQwLCBldGMuIGFzIHRoZSBzdGFuZGFyZCBjb25maWd1cmVkCiAgICBjb25zb2xlLiAgTWFrZSBpdCBzbyB3ZSBtYXRjaCB0aGF0IGNvbmZpZyB3aGF0IHdlIHRlbGwgTGludXggYXMgdGhlIGVhcmx5CiAgICBTVERPVVQgY29uc29sZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGUxY2UzY2I2MTdiYjA2ZjkxZjgyZjk4OTE1MzkxMTc1YWRkZjNlODIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIgMTE6MTI6MjcgMjAwNyAtMDUwMAoKICAgIFJlbW92ZSBtYWdpYyBudW1iZXJzIGZyb20gY2FjaGUgcmVsYXRlZCBvcGVyYXRpb25zIGZvciBtcGM4NXh4CgogICAgVGhlIG1wYzg1eHggc3RhcnQgY29kZSB1c2VzIHNvbWUgbWFnaWMgbnVtYmVycyB0aGF0IHdlIGFjdHVhbGx5CiAgICBoYXZlICNkZWZpbmVzIGZvciBpbiA8Y29uZmlnLmg+IHNvIHVzZSB0aG9zZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTQ0MWY2MWEzZDhiNzAzNGYxOWZjMTM2MTE4M2U5MzYxOThlNmRiYgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE5IDE2OjQ3OjI2IDIwMDcgKzAyMDAKCiAgICBGaXggdHdvIHR5cG9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDI4MWRmNDU3YzFhYTUwZDI3NTIxNjVkMGM1YzMyODJkNDAyN2I5NzQKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6NDc6MTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBjb25maWd1cmUgZW50cnkgZm9yIE1QQzgzeHggQVRNIHN1cHBvcnQKCiAgICBBZGQgTVBDODM2MEVNRFNfQVRNX2NvbmZpZyBhbmQgTVBDODMyWEVNRFNfQVRNX2NvbmZpZyBpbnRvCiAgICBNYWtmaWxlIGFuZCBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMjY0NjU1NGY1MjlhOTU3NzUxNWVjZWIwZWM1ZWNlZWUxODI0NGJhCkF1dGhvcjogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE4IDE3OjQ0OjM4IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBwcS1tZHMtcGliLmMgdHlwbyBlcnJvcgoKICAgIENvcnJlY3QgdG8gdmFsOCBmcm9tIHZhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNlMTFhZTgwZmVjMWVlMTIxOTQ5NDA5NTU0MzExODZhYmY2MDA5YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTcgMTU6NDA6MTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIDY2Ny8xMzMgKENQVS9QTEIpIGZyZXF1ZW5jeSBzZXR1cCB0byBTZXF1b2lhIGJvb3RzdHJhcCBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNjODlkNzU0MDllYjI2NjM5ZDM2ZGZhMTFkNGVlM2Q4Yjk2MmRjM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDE2IDE1OjI3OjQzIDIwMDcgLTA1MDAKCiAgICBJbml0aWFsIG1wYzg2MTBocGNkIE1ha2VmaWxlIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggSmFkZSA8bWFoZXNoLmphZGVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1NTNkZjg2ZDNhMzE5YzNhMWE3Y2RlN2U0ZWRkNmVlYjVhYTY0YzcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDE2IDE1OjI2OjUxIDIwMDcgLTA1MDAKCiAgICBJbml0aWFsIG1wYzg2MTBocGNkIGNwdS8sIFJFQURNRSBhbmQgaW5jbHVkZS8gZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1haGVzaCBKYWRlIDxtYWhlc2guamFkZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2RkMmRiNTNjZWIwZGZmODBmMjVjMmEwN2Y4M2YyOWI5MDdiNDAzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTM6NTQ6MDEgMjAwNyAtMDUwMAoKICAgIEluaXRpYWwgbXBjODYxMGhwY2QgYm9hcmQgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1haGVzaCBKYWRlIDxtYWhlc2guamFkZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2VlNmJhMWEwNTZlNDA2MWFiNGNmZGUzMDEyN2UzMzJlNzk1N2FmZApBdXRob3I6IHJ1bmV0QGlubm92c3lzLmNvbSA8cnVuZXRAaW5ub3ZzeXMuY29tPgpEYXRlOglUdWUgT2N0IDE2IDE0OjUwOjQwIDIwMDcgLTA1MDAKCiAgICBNYWtlIE1QQzgyNjZBRFMgYm9hcmQgY29tcGlsZSBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSdW5ldCBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KCmNvbW1pdCAyNDkxMTY3YzI0NWQ4ZWJlNmYyZGJkOGM0Mjg3YWFhMGQxNGZlOTNhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyNyAxMjo0MTowMyAyMDA3IC0wNTAwCgogICAgODZ4eDogQWxsb3cgZm9yIGZld2VyIEREUiBzbG90cyBwZXIgbWVtb3J5IGNvbnRyb2xsZXIuCgogICAgQXMgYSBkaXJlY3QgY29ycmVsYXRpb24gZXhpc3RzIGJldHdlZW4gRERSIERJTU0gc2xvdHMKICAgIGFuZCBTUEQgRUVQUk9NIGFkZHJlc3NlcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGVtLCB1c2UKICAgIHRoZSBpbmRpdmlkdWFsbHkgZGVmaW5lZCBTUERfRUVQUk9NX0FERFJFU1MqIHZhbHVlcyB0bwogICAgZGV0ZXJtaW5lIGlmIGEgRERSIERJTU0gc2xvdCBzaG91bGQgaGF2ZSBpdHMgU1BECiAgICBjb25maWd1cmF0aW9uIHJlYWQgb3Igbm90LgoKICAgIEVmZmVjdGl2ZWx5LCB0aGlzIG5vdyBhbGxvd3MgZm9yIDEgb3IgMiBESU1NIHNsb3RzCiAgICBwZXIgbWVtb3J5IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDRhOTQ1ZTE4OWEyZjM4NGM2NjQzMjMxNmRhMjc4OGEwYWMxNjA3CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gT2N0IDE1IDExOjU5OjE3IDIwMDcgKzAyMDAKCiAgICBQWEEgVVNCIE9IQ0k6ICJ1c2Igc3RvcCIgaW1wbGVtZW50YXRpb24uCgogICAgU29tZSBVU0Iga2V5cyBuZWVkIHRvIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgbG9hZGluZyB0aGUga2VybmVsCiAgICBvdGhlcndpc2UgdGhleSBjYW4gcmVtYWluIGluIGFuIHVuZGVmaW5lZCBzdGF0dXMgd2hpY2ggcHJldmVudHMgdGhlbQogICAgdG8gYmUgY29ycmVjdGx5IHJlY29nbml6ZWQgYnkgdGhlIGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBlMmU5MzQ0MmU1NThjZjE1MDBlOTI4NjFmOTk3MTNiMmYwNDVlYTIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDE1IDExOjM5OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBidWcgaW4gSTJDIGJvb3RzdHJhcCB2YWx1ZXMgZm9yIFNlcXVvaWEvUmFpbmllcgoKICAgIFRoZSBJMkMgYm9vdHN0cmFwIHZhbHVlcyB0aGF0IGNhbiBiZSBzZXR1cCB2aWEgdGhlICJib290c3RyYXAiIGNvbW1hbmQsCiAgICB3ZXJlIHNldHVwIGluY29ycmVjdCByZWdhcmRpbmcgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGludGVybmFsIHN5bmMgUENJCiAgICBjbG9jay4gVGhlIHZhbHVlcyBmb3IgUExCIGNsb2NrID09IDEzM01IeiB3ZXJlIHNsaWdobHkgaW5jb3JyZWN0IGFuZCB0aGUKICAgIHZhbHVlcyBmb3IgUExCIGNsb2NrID09IDE2Nk1IeiB3ZXJlIHRvdGFsbHkgaW5jb3JyZWN0LiBUaGlzIGNvdWxkCiAgICBsZWFkIHRvIGEgaGFuZ3VwIHVwb24gYm9vdGluZyB3aGlsZSBQQ0kgY29uZmlndXJhdGlvbiBzY2FuLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBhbmQgY29uZmlndXJlcyB2YWxpZCBQQ0kgZGl2aXNvciB2YWx1ZXMKICAgIGZvciB0aGUgc3luYyBQQ0kgY2xvY2ssIHdpdGggcmVzcGVjdCB0byB0aGUgcHJvdmlkZWQgZXh0ZXJuYWwgYXN5bmMKICAgIFBDSSBmcmVxdWVuY3kuCgogICAgSGVyZSB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtdWxhIGluIHRoZSBjaGFwdGVyIDE0LjIgIlBDSSBjbG9ja2luZyIKICAgIGZyb20gdGhlIDQ0MEVQeCB1c2VycyBtYW51YWw6CgogICAgQXN5bmNQQ0lDTEsgLSAxTUh6IDw9IFN5bmNQQ0lDbGsgPD0gKDIgKiBBc3luY1BDSUNsaykgLSAxTUh6CgogICAgMzNNSHogYXN5bmMgUENJIGZyZXF1ZW5jeToKICAgIFBMQiA9IDEzMzoKICAgID0+CSAgICAzMiA8PSA0NC4zIDw9IDY1CSAgICAoZGl2ID0gMykKCiAgICBQTEIgPSAxNjY6CiAgICA9PgkgICAgMzIgPD0gNTUuMyA8PSA2NQkgICAgKGRpdiA9IDMpCgogICAgNjZNSHogYXN5bmMgUENJIGZyZXF1ZW5jeToKICAgIFBMQiA9IDEzMzoKICAgID0+CSAgICA2NSA8PSA2Ni41IDw9IDEzMgkgICAgKGRpdiA9IDIpCgogICAgUExCID0gMTY2OgogICAgPT4JICAgIDY1IDw9IDgzIDw9IDEzMgkgICAgKGRpdiA9IDIpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVhNTk1OGI3ZGU3MGFlOTlmMGU3Y2JkNWM5N2VjMTM0NmUwNTE1ODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMTUgMTE6Mjk6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGluY29ycmVjdCAzMy82Nk1IeiBQQ0kgY2xvY2sgbG9nLW1lc3NhZ2Ugb24gU2VxdW9pYSAmIFlvc2VtaXRlCgogICAgVGhlIEJDU1Igc3RhdHVzIGJpdCBmb3IgdGhlIDY2TUh6IFBDSSBvcGVyYXRpb24gd2FzIGNvcnJlY3RseQogICAgYWRkcmVzc2VkIChNU0IvTFNCIHByb2JsZW0pLiBOb3cgdGhlIGNvcnJlY3QgY3VycmVudGx5IHNldHVwCiAgICBQQ0kgZnJlcXVlbmN5IGlzIGRpc3BsYXllZCB1cG9uIGJvb3R1cC4KCiAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhpcyBwcm9ibGVtIG9uIFJhaW5pZXIgJiBZZWxsb3dzdG9uZSwgc2luY2UgdGhlc2UKICAgIGJvYXJkcyB1c2UgdGhlIHNhbWUgc291Y2UgY29kZSBhcyBTZXF1b2lhICYgWW9zZW1pdGUgZG8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRhM2FhZDU1Y2JkZTgwYWI2ZTMwMWFhZmE4MmEyYzQxMWFhNTNlZmYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODYwTTogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplLgoKICAgIEFkanVzdCBmbGFzaCBtYXAgdG8gc3VwcG9ydCB0aGUgbmV3IFMyOUdMeHhOIChOLVR5cGUpIEZsYXNoZXMgd2l0aAogICAgZG91YmxlZCBzZWN0b3Igc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5ZDI5MjUwZTJlNjJmNGJmMjBjN2EyMGI0MTczZDg0YzQ4ZjExZjVkCkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTQgMjAwNyArMDIwMAoKICAgIFRRTTh4eDogRml4IENBTiB0aW1pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZDQzZTQ4OWJhZjAyYWZhZTQ5MDc3NzkxZmIyMjMzMmQyNDBkODY1NgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDE0OjU0OjM2IDIwMDcgKzAyMDAKCiAgICBUUU04NjZNOiBmaXggU0RSQU0gcmVmcmVzaAoKICAgIEF0IDEzMyBNSHogdGhlIGN1cnJlbnQgU0RSQU0gcmVmcmVzaCByYXRlIGlzIHRvbyBmYXN0CiAgICAobWVhc3VyZWQgNCAqIDEuMTcgdXMpLgogICAgQ0ZHX01BTVJfUFRBIGNoYW5nZXMgZnJvbSAzOSB0byA5Ny4gVGhpcyByZXN1bHQKICAgIGluIGEgcmVmcmVzaCByYXRlIG9mIDQgKiA3LjggdXMgYXQgdGhlIGRlZmF1bHQgY2xvY2sKICAgIDUwIE1Iei4gQXQgMTMzIE1IeiB0aGUgdmFsdWUgd2lsbCBiZSB0aGVuIDQgKiAyLjkgdXMuCiAgICBUaGlzIGlzIGEgY29tcHJvbWlzZSB1bnRpbCBhIG5ldyBtZXRob2QgaXMgZm91bmQgdG8KICAgIGFkanVzdCB0aGUgcmVmcmVzaCByYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDllZjU3YmJlZTFjNjdjYzAxZGEyMDI2YzI0MmM0NjkyZGIzMmJlMzYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NSAyMDA3ICswMjAwCgogICAgVFFNODY2TTogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplLgoKICAgIEFkanVzdCBmbGFzaCBtYXAgdG8gc3VwcG9ydCB0aGUgbmV3IFMyOUdMeHhOIChOLVR5cGUpIEZsYXNoZXMgd2l0aAogICAgZG91YmxlZCBzZWN0b3Igc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBmOGJmOTA0NjFkOWJhZDJlNmZlZDMxZmNlYmFmMjM1ZjYwZGQ2NzYzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gT2N0IDE0IDE2OjEyOjI5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBYVVBWMlAgY2hhbmdlIGNvbW1hbmQgaGFuZGxpbmcKICAgIGFuZCByZW1vdmUgY29kZSB2aW9sYXRpb24KCmNvbW1pdCA2MzY0MDAxOTgyMjhkOTY5ODNjMDY2NTdiMTdmNzYwZjU5ODk5NThlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxNCAwMDoxMzoxOSAyMDA3ICswMjAwCgogICAgUHJlcGFyZSBmb3IgMS4zLjAtcmMzIHJlbGVhc2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY4ZjE0Zjc3Y2E1ZmU1ZjljYzAyNWM4Y2FlMTAxNjcxZjYyODMwOWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgU2VwIDI5IDEzOjQxOjM3IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBjcHUvcHhhL21tYy5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmYzE5ZTM2Zjc0MWU4YmM3MjdjMGEzMzAxNzBiM2I1ZGI5MDM5OWVmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAyMzo1MToxNCAyMDA3ICswMjAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gYm9hcmQvbXBsL3ZjbWE5L3ZjbWE5LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkZTc0YjllZWFjY2NhZjBhNDJlNWVjYzlhZTc5YTg4ZjdhMzExMjk2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAyMToxNTozOSAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMTg5MzgxNWIwOTk5NDEwZDdhMzI3NTg5NjExYzdiMzhlOTUyOTllCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxMiAxNTo0OTozOSAyMDA3ICswMjAwCgogICAgR1AzIFNTQTogZW5hYmxlIFJUQwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODAwMjAxMjA0MWYxZmY5Zjk5N2E1NzI3YWJlNTAxNWY3MGNkMmU0NgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDkgMTM6NTg6MjQgMjAwNyArMDIwMAoKICAgIFthZHM1MTIxXSBFRVBST00gc3VwcG9ydCBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YjYyNGFkMjU0Yjk3ZTVhMjVkY2EyMzA0YTM5OGI2NGFlZWRhZmZlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBPY3QgNiAxODo1NTozNSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEluaXRpYWxpemUgYmlfZmxhc2gqIGluIGJvYXJkX2luaXRfcgoKICAgIFRoZSBBVFNUSzEwMDAtc3BlY2lmaWMgZmxhc2ggZHJpdmVyIGludGlhbGl6ZXMgYmlfZmxhc2hzdGFydCwKICAgIGJpX2ZsYXNoc2l6ZSBhbmQgYmlfZmxhc2hvZmZzZXQsIGJ1dCBvdGhlciBmbGFzaCBkcml2ZXJzLCBsaWtlIHRoZSBDRkkKICAgIGRyaXZlciwgZG9uJ3QuCgogICAgSW5pdGlhbGl6ZSB0aGVzZSBpbiBib2FyZF9pbml0X3IgaW5zdGVhZCBzbyB0aGF0IHRoaW5ncyB3aWxsIHN0aWxsIGJlCiAgICBzZXQgdXAgY29ycmVjdGx5IHdoZW4gd2Ugc3dpdGNoIHRvIHRoZSBDRkkgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJiMmE1ODdkNmQzMDc2Mzg3ZDIyYWM3NDBmNDQwNDRiZjQ2ZTJjYjgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgT2N0IDUgMTA6NDA6NTQgMjAwNyArMDIwMAoKICAgIHRxbTUyMDA6IEZpeCBDT05GSUdfQ01EX1BDSSB0eXBvIGluIGJvYXJkIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOTI4NjkxOTVlZjgyMTA3NThkMjE3NjIzMGMwYTM2ODk3YWZkNTBlZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBPY3QgNSAwOTo0NjowNiAyMDA3ICswMjAwCgogICAgQ001MjAwOiBGaXggbWlzc2luZyBudWxsLXRlcm1pbmF0aW9uIGluIGhvc3RuYW1lIG1hbmlwdWxhdGlvbiBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5YWRkOTg4NGIxZmRkYzM0Y2ExODZlMDBhMmY4NjhjY2Q1ZDAyZDg3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVR1ZSBPY3QgMiAxOTowOTowMSAyMDA3ICswMjAwCgogICAgRml4IG1lbXRlc3QgYnJlYWthZ2UKCiAgICBDRkdfTUVNVEVTVF9TVEFSVCB1c2VzIHdlaXJkIG1hZ2ljIGludm9sdmluZyBnZCwgd2hpY2ggZmFpbHMgdG8KICAgIGNvbXBpbGUuIFVzZSBoYXJkY29kZWQgdmFsdWVzIGluc3RlYWQgKHdlIGFjdHVhbGx5IGtub3cgaG93IG11Y2ggUkFNCiAgICB3ZSBoYXZlIG9uIGJvYXJkLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3Mzg4MTVjMGNjNDRhYTMyOTA5N2Y4NjhkYzFlZmM0OWVkZTljNWJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIgMTE6NDQ6NDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODdjMTgzM2EzOWU5NDRkYjY2Mzg1Mjg2ZmQ1ZTI4ZjliM2ZjZGQ1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyIDExOjQ0OjE5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogUmVtb3ZlIHdhdGNoZG9nIGZvciBub3csIHNpbmNlIG5vdCBmdWxseSB0ZXN0ZWQgeWV0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkYjY0Nzg0MDYxYmZjMzRmNGJhNzBlZjFkMmZiZTcxMzNiNTU2NzAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE9jdCAxIDA5OjUxOjUwIDIwMDcgKzAyMDAKCiAgICBQcm9ncmFtIEVQTEQgdG8gZm9yY2UgZnVsbCBkdXBsZXggbW9kZSBmb3IgUEhZLgoKICAgIEVQTEQgZm9yY2VzIG1vZGVzIG9mIFBIWSBvcGVyYXRpb24uIEJ5IGRlZmF1bHQgZnVsbCBkdXBsZXggaXMgdHVybmVkIG9mZi4KICAgIFRoaXMgZml4IHR1cm5zIGl0IG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc4NWMxMzQ3N2I3N2RjZDJlNmM1MTI4ZmZmY2RiNGUxOTQzZjQ4MTgKQXV0aG9yOiBUaW1vIEtldG9sYSA8dGltby5rZXRvbGFAZXhlcnR1cy5maT4KRGF0ZToJTW9uIFNlcCAyNCAxNDo1MDozMiAyMDA3ICswMzAwCgogICAgQnVnZml4OiBVc2Ugb25seSBvbmUgUFREIGZvciBvbmUgZW5kcG9pbnQKCiAgICBPcmlnaW5hbCBpc3AxMTZ4LWhjZCBjb2RlIHByZXBhcmVkIG11bHRpcGxlIFBURHMgZm9yIGxvbmdlciB0aGFuIDE2CiAgICBieXRlIHRyYW5zZmVycyBmb3Igb25lIGVuZHBvaW50LiBUaGF0IGlzIHVubmVjZXNzYXJ5IGJlY2F1c2UgdGhlCiAgICBJU1AxMTZ4IGlzIGFibGUgdG8gc3BsaXQgbG9uZyBkYXRhIGZyb20gb25lIFBURCBpbnRvIG11bHRpcGxlCiAgICB0cmFuc2FjdGlvbnMgYmFzZWQgb24gdGhlIGJ1ZmZlciBzaXplIG9mIHRoZSBlbmRwb2ludC4gSXQgYWxzbyBjYXVzZWQKICAgIHNlcmlvdXMgcHJvYmxlbXMgaWYgdGhlIGVuZHBvaW50IE5BS2VkIHNvbWUgb2YgdGhlIHRyYW5zYWN0aW9ucy4gSW4KICAgIHRoYXQgY2FzZSBJU1AxMTZ4IHdvdWxkbid0IG5vdGljZSB0aGF0IHRoZSBvdGhlciBQVERzIHdlcmUgZm9yIHRoZSBzYW1lCiAgICBlbmRwb2ludCBhbmQgd291bGQgdHJ5IHRoZSBvdGhlciBQVERzIHBvc3NpYmx5IG91dCBvZiBvcmRlci4gVGhhdCB3b3VsZAogICAgYnJlYWsgdGhlIHdob2xlIHRyYW5zZmVyLgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgaXNwMTE2eF9zdWJtaXRfam9iIHRvIHVzZSBvbmUgUFREIGZvciBvbmUgdHJhbnNmZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltbyBLZXRvbGEgPHRpbW8ua2V0b2xhQGV4ZXJ0dXMuZmk+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg2ZWM4NmMwNDMyNmMzOTEzMTc4YTc2NzlhYTkxMGRlMDcxZGE3NWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgU2VwIDI3IDIzOjI3OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBvbiBDT05GSUdfTFBDMjI5MiBpbiBzZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDNlOTU0YmViNjE0YjViMTkwZDdmNGY0YzNiNjQxNDM3YTAxMzJlMzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTEgMTQ6MTI6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBDaGFuZ2UgR1BJTyA1OCB0byBkZWZhdWx0IHRvIGxvdyAod2F0Y2hkb2cgdGVzdCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQ4N2FkYmRjZjk1OTRiYjJlYjY4NjMyNWE2Zjk1NDBkYWQxYjcwYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMjYgMTY6MzU6NTQgMjAwNyAtMDUwMAoKICAgIDg1eHggaW8gb3V0IGZ1bmN0aW9ucyBuZWVkIHN5bmMgYWZ0ZXIgd3JpdGUuCgogICAgVGhpcyBmaXhlcyB0aGUgbWMxNDY4MTggcnRjX3JlYWQvd3JpdGUgZnVuY3Rpb25zIGZvciA4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGQzOGVmZmM2ZTM1OWU2YjFiMGM3OGQ2NmU4YmMxYTRkYzE1YTJhZQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIFNlcCAyNSAxNTo0ODowNSAyMDA3IC0wNjAwCgogICAgRnBnYTogZml4IGluY29ycmVjdCB0ZXN0IG9mIENGR19GUEdBX1hJTElOWCBtYWNybwoKICAgIENGR19GUEdBX1hJTElOWCBpcyBhIGJpdCB2YWx1ZSB1c2VkIHRvIHRlc3QgYWdhaW5zdCB0aGUgdmFsdWUgaW4KICAgIENPTkZJR19GUEdBLiAgVGVzdGluZyBmb3IgYSB2YWx1ZSB3aWxsIGFsd2F5cyByZXR1cm4gVFJVRS4JSSBkb24ndAogICAgdGhpbmsgdGhhdCBpcyB0aGUgaW50ZW50aW9uIGluIHRoaXMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODUzNjQzZDhjZjJjYTgwY2IyZTI1YzUzYWQ1ZGM1ODBhYmFmZTE2NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDo0MTozMCAyMDA3ICswMjAwCgogICAgW0ZJWF0gY2hhbmdlIGNvbW1hbmQgaGFuZGxpbmcgYW5kIHJlbW92aW5nIGNvZGUgdmlvbGF0aW9uCgpjb21taXQgZjI0MDM1NjUwNzAzOGU1Y2U1NWU4YTI0Y2IyNjA3ZTllYWU2ZDEwYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDozNjowNiAyMDA3ICswMjAwCgogICAgW0ZJWF0gY2hhbmdlIHNldHMgb2YgY29tbWFuZHMKICAgIGJlY2F1c2UgY2hhbmdpbmcgb2YgY29tbWFuZCBoYW5kbGluZyBicmluZ3MKICAgIGNvbXBpbGF0aW9uIHByb2JsZW1zCgpjb21taXQgY2IxYmM2M2I3NWEyMzI1NzFlYjY5YWEyYzhhYTkxOTMyMTY1NTg0NQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDozMDo0MiAyMDA3ICswMjAwCgogICAgW0ZJWF0gRW1haWwgcmVwYXJhdGlvbiAmIENvcHlyaWdodAogICAgQm90aCBjb2RlcyBhcmUgd3JpdHRlbiBieSBteXNlbGYgd2l0aG91dCBhbnkKICAgIHN1cHBvcnQgZnJvbSBDVFUKCmNvbW1pdCAwNzMxY2JhZTZjMmZlYWI5M2IyNDRkODNmZDZhNDNmNWNjOWJmODUyCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjI1OjExIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBtYWNybyBuYW1lIGZvciBVYXJ0TGl0ZQogICAgYmVjYXVzZSBQb3dlclBDIDQwNSBjYW4gdXNlIFVhcnRMaXRlIGFzIGNvbnNvbGUKCmNvbW1pdCAxYzExMDBkMmZjZjQ2YjlkMTFkY2Y3OGQ2ZTVhZWE3NWUyZThiNzE2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjIxOjE5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBkZXNpZ24gd2l0aG91dCBpbnRlcnJ1cHQgY29udHJvbGxlcgogICAgUG9sbGluZyB0aW1lcgoKY29tbWl0IDA3MzE5MzNlYzhlYzQ1ZDAyYmE4OWI1MmRmNjczZDUyNjg3M2NkZGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTk6NDggMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlc29sdmUgcHJvYmxlbSB3aXRoIGNwdSB3aXRob3V0IGJhcnJlbCBzaGlmdGVyCgpjb21taXQgZGIxNGQ3Nzk5NWNlNTE1YjcyOGIxNzhiNjNmODJiYWJlNjBlM2Q1NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxODo0NiAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVwYWlyIGVtYWlsIGFkZHJlc3MKCmNvbW1pdCA0ODFkNDMyODYxODgwNGFkZDFmODE4YTZjOTYyOTYxMjFjZDA1MjhlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXBhaXIgTUZTTCBjb21tYW5kcwoKY29tbWl0IGI5MGMwNDVmMDM1YzNjYzliNWQyZWRhZWQ2MDQ4ZGZiNzRlNDA3NjMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MDg6MzcgMjAwNyArMDIwMAoKICAgIHN5bmNocm9uaXppdGlvbiB3aXRoIG1haW5saW5lCgpjb21taXQgZWRhM2UxZTY2MTlhZDBiZWU5NGFlNGIxNmM5OWQ4OGU3N2UyYWYxMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjo0MjozOCAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IGNvbW1hbmQgb2YgaWRlIHdpdGggc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZDkxZWE0NWQxNWNmOGUwOTg3NDU2YmQyMTFmZmJiNjUwODI0YjZmMQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjozODo0MiAyMDA3ICswOTAwCgogICAgc2g6IFVwZGF0ZSBNYWtlZmlsZQoKICAgIEFkZCBzdXBwb3J0IE1TNzcyMlNFMDEgdG8gTWFrZWZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDZjMGJiZGNjZDM3OWY1Yzg3MDJhZjllMDc2NTI5NGMyZmI3NDcyYTYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MzE6MTMgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIHNoNzcyMiBwcm9jZXNzb3IgYW5kIEhpdGFjaGkgTVM3NzIyU0UwMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwNDczNzViZmE0YzMwNTJmYTUwYTc0OGRhN2ZmODllOWRhZDNiMzY0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjE5OjI0IDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIE1TNzc1MFNFMDEgcGxhdGZvcm0KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNTE2YWQ3NjBkYjM1NTM3NjYyNjdhZGEwMWI3ZDVkNzI3ZmFhNGJiZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjoxNzowOCAyMDA3ICswOTAwCgogICAgc2g6IFJlbW92ZSBjb21tZW50IG91dCBjb2RlIGZyb20gaW5jbHVkZS9hc20tc2gvY3B1X3NoNC5oCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGIwMmJhZDEyODY2OWU1NjdmY2U4N2Q4ZGY4MjNiMDZhMDE0NGI4ZGIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MTI6MzAgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgY29yZSBjb2RlIG9mIFN1cGVySC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNjZkY2FkM2E5YTUzZTA3NjZkOTBlMDA4NDEyM2JkODUyOTUyMmZiMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMjAgMDA6MDQ6MTQgMjAwNyArMDIwMAoKICAgIHYxLjMuMC1yYzIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDEzNWUxOWJjMjc3M2ViY2E0ODdlOWE4MzcxZjY3ZTFiYTIwMjMxM2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDE4IDIxOjM2OjM1IDIwMDcgKzAyMDAKCiAgICBBdm9pZCBjb21waWxlciB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGE3ODNhNjU4NTFiYzc0MjFhYjY5ZjQ0MjI2MTIxNWUyMWI4ODkxYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIFNlcCAxOCAxMjoyNDo1NyAyMDA3IC0wNjAwCgogICAgQnVnZml4OiByZW1vdmUgZW1iZWRkZWQgbnVsbCAoXDApIGZyb20gQ0ZHX0JPT1RGSUxFIG1hY3JvIGluIFRRTTg1NDBfY29uZmlnCgogICAgL2Jpbi9iYXNoIGFuZCAvYmluL2Rhc2ggKHdoaWNoIC9iaW4vc2ggaXMgbGlua2VkIHRvIG9uIHVidW50dSkgaGFuZGxlIGVtYmVkZGVkCiAgICBudWxscyBpbiBhIHN0cmluZyBkaWZmZXJlbnRseS4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHN0YXRlbWVudDoKCWVjaG8gInRoaXMgaXMgYSBzdHJpbmdcMCIgPiBhZmlsZQogICAgV2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgd2l0aCAvYmluL2Jhc2g6CgkidGhpcyBpcyBhIHN0cmluZ1wwIgogICAgQnV0IHdpdGggL2Jpbi9kYXNoLCB3aWxsIHByb2R1Y2U6CgkidGhpcyBpcyBhIHN0cmluZwoKICAgIEJ1ZyBmaXhlZCBieSBtb3ZpbmcgdGhlIGVtYmVkZGVkIG51bGwgb3V0IG9mIHRoZSBtYWtlZmlsZSBhbmQgaW50byB0aGUKICAgIGNvbmZpZyBoZWFkZXIuICBBbHNvIHJlbmFtZWQgdGhlIG1hY3JvIHRvIGF2b2lkIHVzYWdlIGNvbGlzaW9uIHdpdGggdGhlIHNhbWUKICAgIG1hY3JvIHVzZWQgYnkgb3RoZXIgYm9hcmQgcG9ydHMuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY4ZDNjYTdiNmZhMzIyYWM1N2U4ZTgzMWYwN2RiZWVhMDM5YTlmMzUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDE4IDE3OjQwOjI3IDIwMDcgKzAyMDAKCiAgICBNQ0MyMDA6IGZpeCBidWlsZCB3YXJuaW5nCgogICAgVGhlIE1DQzIwMCBib2FyZCBjb25maWcgZmlsZSBpbmNsdWRlcyB2ZXJzaW9uLmggZm9yIHNvbWUgY3VzdG9tZXItCiAgICBzcGVjaWZpYyBzZXR0aW5nLCB3aGljaCBjYXVzZXMgd2FybmluZ3Mgd2l0aCAibWFrZSBkZXBlbmQiOyBidWlsZAogICAgdmVyc2lvbi5oIGJlZm9yZSBkZXBlbmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiZDg2MjIwZjU4Yjk5ZDY4OTYxOThjMzg1ZmRhMTMyZjBjOTgwOTE1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMzowNzo1NCAyMDA3ICswMTAwCgogICAgTW92ZSBjb2xvdXJlZCBsZWQgQVBJIHRvIHN0YXR1c19sZWQuaAogICAgSW1wcm92ZSBpbmRlbnRhdGlvbiBpbiBkcml2ZXJzL2F0NDUuYwoKY29tbWl0IGU4MGU1ODViMDBmYmJhYjdhZDFiZjcxNjE5NzQxZjJjNWIwMjlhYjcKQXV0aG9yOiBFaXJpayBBYW5vbnNlbiA8ZWFhQHdwcm1lZGljYWwuY29tPgpEYXRlOglUdWUgU2VwIDE4IDA4OjQ3OjIwIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgYXRzdGsxMDAyIGJvb3RhcmdzLgoKICAgIFVwZGF0ZXMgdG8gYXRzdGsxMDAyIFUtQm9vdCBoZWFkZXIgZmlsZToKICAgIC0gQ2hhbmdlZCBib290YXJnczoKCSogU2V0IHRoZSBib290YXJncyBmb3IgYXQxMDAyIHRvIHBvaW50IHRvIHRoZSBTRC1jYXJkIHBhcnRpdGlvbiBpbnN0ZWFkCgkqIC4uLiBvZiB0aGUgYm9vdCBmbGFzaC4KCSogUmVtb3ZpbmcgdGhlIHJvb3Rmc3R5cGUgc2luY2UgdGhhdCBhcmd1bWVudCBhcmUgbm90IG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFaXJpayBBYW5vbnNlbiA8ZWFhQHdwcm1lZGljYWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYTRmM2FhYjZkZmJlZDZjMjkzNjdjNjg4YmZiOGE0N2VlZjYyYzIyNQpBdXRob3I6IEVpcmlrIEFhbm9uc2VuIDxlYWFAd3BybWVkaWNhbC5jb20+CkRhdGU6CVdlZCBTZXAgMTIgMTM6MzI6MzcgMjAwNyArMDIwMAoKICAgIEFkZCBzb21lIGNvbW1lbnRzIHRvIGNsb2NrcyBpbiBhdHN0azEwMDIuaAoKICAgIFRoaXMgcGF0Y2ggYXBwbGllcyBzb21lIGNsYXJpZnlpbmcgY29tbWVudHMgdG8gaG93IHRoZSBkaWZmZXJlbnQKICAgIGNsb2NrcyBhcmUgc2V0dXAgYWNjb3JkaW5nIHRvIGF0c3RrMTAwMi5oIFNvbWUgb2YgdGhlIHByZXZpb3VzCiAgICBjb21tZW50cyB3aGVyZSBzdGF0aW5nIHdyb25nZnVsIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDk3MjEzZjMyNDE2ZWFkODg1ZGVhZmVhODY3NzRlOTEyZmZkNjBhZDAKQXV0aG9yOiBEYXZpZCBTYWFkYSA8RGF2aWQuU2FhZGFAZWNpdGVsZS5jb20+CkRhdGU6CU1vbiBTZXAgMTcgMTc6MDQ6NDcgMjAwNyArMDIwMAoKICAgIERlc2NyaXB0aW9uOiBBZGQgTkVDJ3MgUENJIE9IQ0kgbW9kdWxlIElEIHRvIHRoZSBVU0IgT0hDSSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTYWFkYSA8ZGF2aWQuc2FhZGFAZWNpdGVsZS5jb20+Cgpjb21taXQgMzAzNjNlOThmYTQ3MGZiZWNlYTVlOGJjMGYxNDQzMzUyNzU0ZjMwMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCAxNyAwODoyMDo0NyAyMDA3ICswMjAwCgogICAgU21hbGwgd2hpdGVzcGFjZSBjbGVhbnVwIG9mIE9uZU5BTkQgcGF0Y2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDdlOGNlMTAxYTRhNDVlZDZlZDQ1NzM5ZmMyZGU1Zjg3YjEzZjdmMQpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDE3OjE1OjE0IDIwMDcgKzA5MDAKCiAgICBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgW1BBVENIIDMvM10gT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIE9uZU5BTkQgc3VwcG9ydCBhdCBVLUJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDE3YWEyODAwNDU3ZGYwYzA2YjQxNTE2ZjQ2ZjEyNjcxMmMxOTYyMTkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxNzoxNDozNCAyMDA3ICswOTAwCgogICAgT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIFtQQVRDSCAyLzNdIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBPbmVOQU5EIHN1cHBvcnQgYXQgVS1Cb290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA5MTY1MjdmNDgwOWE3YmNkODExZjFmMWRhZjM0YWYxODRlMzFkZDhjCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTc6MTM6NDkgMjAwNyArMDkwMAoKICAgIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBbUEFUQ0ggMS8zXSBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgT25lTkFORCBzdXBwb3J0IGF0IFUtQm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYjQ5YzkwZGY2ZTdjZmNmYjhiODYyYjhiYmY4NDQ4ZGZmNWVlZDlhNQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIFNlcCAxNiAyMDo1MTo1NyAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVtb3ZlIGZpbGVzIGZvcm0gcmVwb3NpdG9yeQoKY29tbWl0IDY3YzMxMDM2YWNhYWFhOTkyZmMzNDZjYzg5ZGIwOTA5YTdlNzMzYzQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDE2IDE3OjEwOjA0IDIwMDcgKzAyMDAKCiAgICBUUU04eHhbTE1dOiBGaXggYnJva2VuIGVudmlyb25tZW50IGFsaWdubWVudC4KCiAgICBXaXRoIHJlY2VudCB0b29sY2hhaW5zLCB0aGUgZW52aXJvbm1lbnQgc2VjdG9ycyB3ZXJlIG5vIGxvbmdlciBhbGlnbmVkIHRvCiAgICBzZWN0b3IgYm91bmRhcmllcy4gVGhlIHJlYXNvbiB3YXMgYSBjb21iaW5hdGlvbiBvZiB0d28gYnVnczoKCiAgICAxKSBjb21tb24vZW52aXJvbm1lbnQuYyBhc3N1bWVkIHRoYXQgQ09ORklHX1RRTTh4eEwgd291bGQgYmUgZGVmaW5lZAogICAgICAgZm9yIGFsbCBUUU04eHhMIGFuZCBUUU04eHhNIGJvYXJkcy4gQnV0ICJpbmNsdWRlL2NvbW1vbi5oIiwgd2hlcmUKICAgICAgIHRoaXMgZ2V0cyBkZWZpbmVkLCBpcyBub3QgaW5jbHVkZWQgaGVyZSAoYW5kIGNhbm5vdCBiZSBpbmNsdWRlZAogICAgICAgd2l0aG91dCBjYXVzaW5nIGxvdHMgb2YgcHJvYmxlbXMpLgoKICAgICAgIEFkZGVkIGEgbmV3ICNkZWZpbmUgQ0ZHX1VTRV9QUENFTlYgZm9yIGFsbCBib2FyZHMgd2hpY2ggcmVhbGx5CiAgICAgICB3YW50IHRvIHB1dCB0aGUgZW52aXJvbm1lbnQgaXMgYSAiLnBwY2VudiIgc2VjdGlvbi4KCiAgICAyKSBUaGUgbGlua2VyIHNjcmlwdHMganVzdCBpbmNsdWRlIGVudmlyb25tZW50Lm8sIHNpbGVudGx5IGFzc3VtaW5nCiAgICAgICB0aGF0IHRoZSBvYmplY3RzIGluIHRoYXQgZmlsZSBhcmUgcmVhbGx5IGluIHRoZSBvcmRlciBpbiB3aGljaAogICAgICAgdGhleSBhcmUgY29kZWQgaW4gdGhlIEMgZmlsZSwgaS4gZS4gImVudmlyb25tZW50IiBmaXJzdCwgdGhlbgogICAgICAgInJlZHVuZGFuZF9lbnZpcm9ubWVudCIsIGFuZCAiZW52X3NpemUiIGxhc3QuIEhvd2V2ZXIsIGN1cnJlbnQKICAgICAgIHRvb2xjaGFpbnMgKEdDQy00LngpIHJlb3JkZXIgdGhlIG9iamVjdHMsIGNhdXNpbmcgdGhlIGVudmlyb25tZW50CiAgICAgICBkYXRhIG5vdCB0byBzdGFydCBvbiBhIGZsYXNoIHNlY3RvciBib3VuZGFyeToKCiAgICAgICBJbnN0ZWFkIG9mOgkJCQkJd2UgZ290OgoKCTQwMDA4MDAwIFQgZW52aXJvbm1lbnQJCQk0MDAwODAwMCBUIGVudl9zaXplCgk0MDAwYzAwMCBUIHJlZHVuZGFuZF9lbnZpcm9ubWVudAk0MDAwODAwNCBUIHJlZHVuZGFuZF9lbnZpcm9ubWVudAoJNDAwMTAwMDAgVCBlbnZfc2l6ZQkJCTQwMDBjMDA0IFQgZW52aXJvbm1lbnQKCiAgICAgICBOb3RlOiB0aGlzIHBhdGNoIGZpeGVzIGp1c3QgdGhlIGZpcnN0IHBhcnQsIGFuZCBjdXJlcyB0aGUgYWxpZ25tZW50CiAgICAgICBwcm9ibGVtIGJ5IG1ha2luZyBzdXJlIHRoYXQgImVudl9zaXplIiBnZXRzIHBsYWNlZCBjb3JyZWN0bHkuIEhvd2V2ZXIsCiAgICAgICB3ZSBzdGlsbCBoYXZlIGEgcG90ZW50aWFsIGlzc3VlIGJlY2F1c2UgcHJpbWFyeSBhbmQgcmVkdW5kYW50CiAgICAgICBlbnZpcm9ubWVudCBzZWN0b3JzIGFyZSBhY3R1YWxseSBzd2FwcGVkLCBpLiBlLiB3ZSBoYXZlIG5vdzoKCgk0MDAwODAwMCBUIHJlZHVuZGFuZF9lbnZpcm9ubWVudAoJNDAwMGMwMDAgVCBlbnZpcm9ubWVudAoJNDAwMTAwMDAgVCBlbnZfc2l6ZQoKICAgICAgIFRoaXMgc2hhbGwgYmUgZml4ZWQgaW4gdGhlIG5leHQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGViNmRhODA1MDc5N2MyMDRjOWQwMTA1NDg0MjQxODZjN2NlMzJmYzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDE2IDAyOjM5OjM1IDIwMDcgKzAyMDAKCiAgICBUUU04eHgvRlBTOHh4OiBhZGp1c3QgZmxhc2ggcGFydGl0aW9ucyBmb3IgMi42IEFSQ0g9cG93ZXJwYyBrZXJuZWxzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZDJkMTYwMmM1NGNjNjk1N2JkZWYzODcyMjcyYTRiMjY0ODkzOTYwCkF1dGhvcjogdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20gPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDEwIDE0OjU0OjU2IDIwMDcgLTA0MDAKCiAgICBUeXBvIGZpeCBpbiB0c2VjLmMKCiAgICBGaXh1cCBmb3IgdGhlIGJyZWFrIHN0YXRlbWVudCBpbiB3cm9uZyBwbGFjZS4KCiAgICBbUGF0Y2ggYnkgdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb21dCiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieToJV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YmQ3ZmU5YWViNzY5MDYzNzFmNDBiOGZkMDc2MTNmMTA5MjJlM2U3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTc6MDQ6MDAgMjAwNyArMDIwMAoKICAgIEZpeCBkb19kaXYoKSB1c2FnZSBpbiBuYW5kIHByb2Nlc3Mgb3V0cHV0CgogICAgRml4IHVzYWdlIG9mIGRvX2RpdigpIGluIG5hbmQgZXJhc2V8cmVhZHx3cml0ZSBwcm9jZXNzIG91dHB1dC4KCiAgICBUaGUgbGFzdCBwYXRjaCB0byBuYW5kX3V0aWwuYyBpbnRyb2R1Y2VkIGRvX2RpdigpIGluc3RlYWQgb2YgbGliZ2NjJ3MKICAgIGltcGxlbWVudGF0aW9uLiBCdXQgZG9fZGl2KCkgcmV0dXJucyB0aGUgcXVvdGllbnQgaW4gaXRzIGZpcnN0CiAgICBtYWNybyBwYXJhbWV0ZXIgYW5kIG5vdCBhcyByZXN1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzc1MGQyZTY2OTJhMDAwYTgyZjI5ZGU3YmYyNGUzZGMyMTIzOTE2MQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgU2VwIDEyIDEyOjM2OjUzIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBBZGQgQ0ZHX05BTkRfUVVJRVQgb3B0aW9uCgogICAgVGhpcyBjb25maWcgb3B0aW9uIHNldHMgdGhlIGRlZmF1bHQgZm9yIHRoZSBwcm9ncmVzcyBpbmZvcm1hdGlvbgogICAgb3V0cHV0IGJlaGF2aW9yIHRoYXQgY2FuIGFsc28gYmUgY29uZmlndXJlZCB0aHJvdWdoIHRoZSAncXVpZXQnCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBUaGUgbGVnYWN5IE5BTkQgY29kZSBkb2VzIG5vdCBwcmludCB0aGUgY3VycmVudCBwcm9ncmVzcyBpbmZvCiAgICBvbiB0aGUgY29uc29sZS4gU28gdGhpcyBvcHRpb24gaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yCiAgICB1bml0cyB0aGF0IGFyZSBpbiB0aGUgZmllbGQgYW5kIHdoZXJlIHNldHRpbmcgdGhlIHF1aWV0IHZhcmlhYmxlCiAgICBpcyBub3QgYW4gb3B0aW9uLiBXaXRoIENGR19OQU5EX1FVSUVUIHNldCB0byAnMScgdGhlIGNvbnNvbGUKICAgIHByb2dyZXNzIGluZm8gaXMgdHVybmVkIG9mZi4gVGhpcyBjYW4gc3RpbGwgYmUgb3ZlcndyaXR0ZW4KICAgIHRocm91Z2ggdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGRjYjg4NjMwMjkwZDJiY2Q4MDMzODZkZDRjMmJlNzMxNDI5OTRjNGYKQXV0aG9yOiBMaWV3IFRzaSBDaHVuZy1yNWFhaHAgPFRzaS1jaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTY6MDY6MDUgMjAwNyAtMDcwMAoKICAgIENvbGRGaXJlOiBmaXggYnVpbGQgZXJyb3IgYmVjYXN1ZSBvZiBiYWQgdHlwZSBvZiBtaWlfaW5pdCgpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMxNGQ1YjZjZTUyYTRlZDE5ZGQyOTVkMTM2NGUyNDZjNWU2MDUwMTcKQXV0aG9yOiBMaWV3IFRzaSBDaHVuZy1yNWFhaHAgPFRzaS1jaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTY6MDQ6MDUgMjAwNyAtMDcwMAoKICAgIENvbGRGaXJlOiBGaXggYnVpbGQgZXJyb3IgY2F1c2VkIGJ5IHBpeGlzLmMKCiAgICBNb3ZlZCB0aGUgI2luY2x1ZGUgPGFzbS9jYWNoZS5oPiBpbnNpZGUgdGhlICNpZmRlZiBDT05GSUdfRlNMX1BJWElTLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMjE2NTllMzA2NjBhMTM3N2M0MmFmMTM1YTYxMTRlZmUzOTgwMWQ5CkF1dGhvcjogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CkRhdGU6CUZyaSBTZXAgMTQgMTE6MTQ6NDIgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4MzQ5SVRYKl9jb25maWcgdG8gcGxhY2UgY29uZmlnLnRtcCBpbiByaWdodCBwbGFjZS4KCiAgICBNUEM4MzRJVFgqX2NvbmZpZyBkb2VzIG5vdCBzdG9yZSBjb25maWcudG1wIGF0IHRoZSBjb3JyZWN0IGxvY2F0YXRpb24sCiAgICBjYXVzaW5nIE1QQzgzNDlJVFhHUCB0byBoYXZlIHRoZSB3cm9uZyBURVhUX0JBU0UuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMTIxOGFiZjFiNTgxN2EzOWE4MjM5OWI0YjkyOGIwMDc1MDU3NWJkYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBTZXAgMTUgMjA6NDg6NDEgMjAwNyArMDIwMAoKICAgIEZpeCBjYXNlcyB3aGVyZSBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiB3YXMgbm90IGRlY2xhcmVkIGFzIGdsb2JhbAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjZiM2YyNGQ2NjViZTY3OGE5ZGJiMTI1YjFlODQxODU0MDBmNjNiNQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVNhdCBTZXAgMTUgMTE6NTU6NDIgMjAwNyArMDIwMAoKICAgIE1ha2UgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgZ2xvYmFsIGZvciBEYVZpbmNpCgogICAgQXMgZGlzY3Vzc2VkIGluIFsxXSwgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgaGFzIHRvIGJlIGdsb2JhbCBhbmQgbm90CiAgICBmdW5jdGlvbiBsb2NhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCiAgICBbMV0gaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAuYm9vdC1sb2FkZXJzLnUtYm9vdC8zMTgwNQoKY29tbWl0IDk5MWIwODlkMWNlNWFkOTQ1NzI1ZTM2NTdhOGYxMDZkZmEwMmEzOGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBTZXAgMTUgMDA6MDM6MzUgMjAwNyArMDIwMAoKICAgIFN5bmNocm9uaXplIHdpdGggVS1CT09UIG1haW5saW5lCgpjb21taXQgZDdmZWUzMmI3ZTYxZmUxMWM2NGUzNzFjZGU3OWZhYTQ3NjhlODM1MApBdXRob3I6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgpEYXRlOglGcmkgU2VwIDE0IDExOjE0OjQyIDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODM0OUlUWCpfY29uZmlnIHRvIHBsYWNlIGNvbmZpZy50bXAgaW4gcmlnaHQgcGxhY2UuCgogICAgTVBDODM0SVRYKl9jb25maWcgZG9lcyBub3Qgc3RvcmUgY29uZmlnLnRtcCBhdCB0aGUgY29ycmVjdCBsb2NhdGF0aW9uLAogICAgY2F1c2luZyBNUEM4MzQ5SVRYR1AgdG8gaGF2ZSB0aGUgd3JvbmcgVEVYVF9CQVNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZTdiN2I2ZWExYjZkMDRkYmU5NjI0MmViNmEwYzFjNjY0Yzk4ZThjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxODoyMTo0OCAyMDA3ICswMjAwCgogICAgY201MjAwOiBGaXggYSB0eXBvIGludHJvZHVjZWQgYnkgYWZhYWM4NmZlMjk0OGFjODRjZDlhMTJiYmVkODgzYjNjNjgzZTdkOQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZTFmNjAxYjU3MmRiNWRlOWFhODFhMGI3N2M2OGE4Njk5NGZlMjRjNApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTY6MzM6NTkgMjAwNyArMDIwMAoKICAgIHRxbTUyMDA6IFJlc3RvcmUgY3VzdG9tYXJ5IGVudi4gdmFyaWFibGUgYm9vdCBjb21tYW5kcyBmb3IgcG93ZXJwYyBrZXJuZWxzCgogICAgLSB1cGRhdGUgZGVmYXVsdCBkZWZpbml0aW9ucyBvZiBrZXJuZWxfYWRkciBhbmQgZmR0X2FkZHIgZW52LiB2YXJpYWJsZXMKICAgIC0gbWFrZSBhcmNoL3Bvd2VycGMgYm9vdGluZyB0aGUgZGVmYXVsdCBzY2VuYXJpbwogICAgLSB1cGRhdGUgTVREIHBhcnRpdGlvbiBsYXlvdXQgdG8gbWF0Y2ggdGhlIGFib3ZlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmMzQwMjRkNGEzMjhlNmVkZDkwNjQ1NmRhOThkMmM1MzcxNTVjNGY3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIFNlcCAxMiAwMDo0ODo1NyAyMDA3ICswMjAwCgogICAgRml4IG1lbW9yeSBjb3JydXB0aW9uIHByb2JsZW0gb24gU1RYIEdQMyBTU0EgQm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkOTRjNzllNDcwMTFhZjVlOGRkMTBlZDYxNjNjMDliNGNmYzc0M2NjCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxNTozNTowMSAyMDA3ICswMTAwCgogICAgRmluYWwgdGlkeQoKY29tbWl0IDM4YWQ4MmRhMGMxMTgwZWNkZWIyMTJhOGY0MjQ1ZTk0NWJjYzU0NmUKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxNTo0MjoxMSAyMDA3ICswMjAwCgogICAgW0dQM1NTQV0gQWRkIGRlZmluZSBDT05GSUdfTVBDODVYWF9QQ0kyIGluIGNvbmZpZyBmaWxlIHRvIGFsbG93IHUtYm9vdCB0bwogICAgc2NhbiBvbiBzZWNvbmQgcGNpIGJ1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2YzJmNGYzODhlODE4MTY1NWVhOGI2OTM0M2VhMDBiNjhhYTZlOGQwCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTI6NTc6NTIgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEluZGl2aWR1YWwgaGFuZGxpbmcgb2Ygc2RyYW0uYyBmb3IgYmFtYm9vX25hbmQgYnVpbGQKCiAgICBCYW1ib28gaGFzIGEgZmlsZSBzZHJhbS5jIHdoaWNoIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50IHdoZW4gYnVpbGRpbmcgaW4KICAgIHNlcGFyYXRlIGRpcmVjdG9yeS4gSXQgaGFzIHRvIGJlIGxpbmtlZCB0byBidWlsZCBkaXJlY3Rvcnkgb3RoZXJ3aXNlIGl0IGlzCiAgICBub3Qgc2Vlbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkNDU5NjM4NTRlZmYzOWQ1NzUxMjRkODU5NDE5YmI0OTUzY2UyYzg3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgU2VwIDExIDAwOjM3OjA0IDIwMDcgKzAyMDAKCiAgICBbRklYXSBNaWNyb2JsYXplIE1MNDAxIC0gcmVwYXJlIEZMQVNIIGhhbmRsaW5nCgpjb21taXQgMzhjMWVmNzI4ZDE5OTUwNDE0YThhYjFjY2ZjNTM3Njc4NDhmYTM0NgpBdXRob3I6IFNlYW4gTUNHT09HQU4gPHNlYW4ubWNnb29nYW5Ac3QuY29tPgpEYXRlOglNb24gU2VwIDEwIDE2OjU1OjU5IDIwMDcgKzAxMDAKCiAgICBBbGxvY2F0ZSBDUFUgQXJjaGl0ZWN0dXJlIENvZGUgZm9yIFNUTWljcm9lbGVjdHJvbmljcycgU1QyMDAuCgogICAgU2lnbmVkLW9mZi1ieTogU2VhbiBNY0dvb2dhbiA8U2Vhbi5NY0dvb2dhbkBzdC5jb20+CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNvbW1pdCA3NTRiYWM0ODE1NmY4OTU4ZDhmNmE1M2E1MWVkYTg4YWI1NzU4OTI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCAxMCAyMDo0MjozMSAyMDA3ICswMjAwCgogICAgVXBkYXRlIHZlcnNpb24gdG8gbWF0Y2ggY3VycmVudCBzdGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDdhODg4ZDZiM2MzMmExMjZkYmI1MDRlZjE0NmJiNGMyNjU3NGNhN2IKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIFNlcCAxMCAxNzozOTowOCAyMDA3ICswMjAwCgogICAgW01QQzUxMnhdIFN0cmVhbWxpbmUgZnJhbWUgaGFuZGxpbmcgaW4gdGhlIEZFQyBkcml2ZXIKCiAgICAtIGNvbnZlcnQgZnJhbWUgc2l6ZSBzZXR0aW5ncyB0byBiZSBkZXJpdmVkIGZyb20gYSBzaW5nbGUgYmFzZQogICAgLSBzZXQgZnJhbWUgc2l6ZSB0byB0aGUgcmVjb21tZW5kZWQgZGVmYXVsdCB2YWx1ZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGUyNTFlMDBkMGRiNGIzNmQxZDJiN2UzOGZlYzQzYTcyOTZiNTI5YTIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxMTozNDowMCAyMDA3ICswOTAwCgogICAgUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmc6IHRhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcndvcmtpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDFkOWUzMWUwNDkxMWE2YmI3Y2M2NmRkOTExMzJjNjk5MTAxYzMyZTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDkgMjE6MjE6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIGluIHNwYzE5MjAgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emL8Y2hlciA8bWtAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTdkN2VjYTc5MWEzN2Y0NTJjOWRhMTBmZWY0YjMxZGQ3YWE5YTYyMgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJRnJpIFNlcCA3IDA5OjI1OjA3IDIwMDcgLTA2MDAKCiAgICBCdWdmaXg6IG1ha2UgYm9vdG0rbGliZmR0IGNvbXBpbGUgb24gYm9hcmRzIHdpdGggbm8gZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmVmYzFmYzBiNjNlNTVmOTRjNWJjNjFkOGRkMjNjOTE4ZTNiYzc3OApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTg6MzU6MzcgMjAwNyArMDIwMAoKICAgIFtQUEM0NDBTUGVdIFBDSWUgZW52aXJvbm1lbnQgc2V0dGluZ3MgZm9yIEthdG1haSBhbmQgWXVjY2EKCiAgICAtICdwY2ljb25maWdob3N0JyBpcyBzZXQgYnkgZGVmYXVsdCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHNjYW4gYnJpZGdlcwogICAgYmVoaW5kIHRoZSBwcmltYXJ5IGhvc3QvUENJZQoKICAgIC0gJ3BjaXNjYW5kZWxheScgZW52IHZhcmlhYmxlIGlzIHJlY29nbml6ZWQgdG8gYWxsb3cgZm9yIHVzZXItY29udHJvbGxlZAogICAgZGVsYXkgYmVmb3JlIHRoZSBQQ0llIGJ1cyBlbnVtZXJhdGlvbjsgc29tZSBwZXJpcGhlcmFsIGRldmljZXMgcmVxdWlyZSBhCiAgICBzaWduaWZpY2FudCBkZWxheSBiZWZvcmUgdGhleSBjYW4gYmUgc2Nhbm5lZCAoZS5nLiBMU0k4NDA4RSk7IHdpdGhvdXQgdGhlCiAgICBkZWxheSB0aGV5IGFyZSBub3QgZGV0ZWN0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ZjE5MTM5Mzg5ODRlZjZjNmE0NmNiNTNlMDAzNzE5MTk2ZDljNWRlCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxODoyMDoyMyAyMDA3ICswMjAwCgogICAgW1BQQzQ0MFNQZV0gSW1wcm92ZSBQQ0llIGNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzCgogICAgLSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gc3BhY2UgbWFwcGluZwogICAgLSBjb3JyZWN0IGJ1cyBudW1iZXJpbmcKICAgIC0gYmV0dGVyIGFjY2VzcyB0byBjb25maWcgc3BhY2UKCiAgICBQcmlvciB0byB0aGlzIHBhdGNoLCB0aGUgNDQwU1BlIGhvc3QvUENJZSBicmlkZ2Ugd2FzIGFibGUgdG8gY29uZmlndXJlIG9ubHkgdGhlCiAgICBmaXJzdCBkZXZpY2Ugb24gdGhlIGZpcnN0IGJ1cy4gV2Ugbm93IGFsbG93IHRvIGNvbmZpZ3VyZSB1cCB0byAxNiBidXNlczsKICAgIGFsc28sIHNjYW5uaW5nIGZvciBkZXZpY2VzIGJlaGluZCB0aGUgUENJZS1QQ0llIGJyaWRnZSBpcyBzdXBwb3J0ZWQsIHNvCiAgICBwZXJpcGhlcmFsIGRldmljZXMgZmFydGhlciBpbiBoaWVyYXJjaHkgY2FuIGJlIGlkZW50aWZpZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgMTVlZTQ3MzRlNGUwODAwM2Q3M2Q5ZWFkM2NhODBlMmEwNjcyZTQyNwpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTc6NDY6MTggMjAwNyArMDIwMAoKICAgIFtQUEM0NDBTUGVdIENvbnZlcnQgbWFjaGluZSBjaGVjayBleGNlcHRpb25zIGhhbmRsaW5nCgogICAgQ29udmVydCB1c2luZyBmaXh1cCBtZWNoYW5pc20gdG8gc3VwcHJlc3NpbmcgTUNLIGZvciB0aGUgZHVyYXRpb24gb2YgY29uZmlnCiAgICByZWFkL3dyaXRlIHRyYW5zYWN0aW9uOiB3aGlsZSBmaXh1cHMgd29yayBmaW5lIHdpdGggdGhlIGNhc2Ugb2YgYSBwcmVjaXNlCiAgICBleGNlcHRpb24sIHdlIGlkZW50aWZpZWQgYSBtYWpvciBkcmF3YmFjayB3aXRoIHRoaXMgYXBwcm9hY2ggd2hlbiB0aGVyZSdzCiAgICBhbiBpbXByZWNpc2UgY2FzZS4gSW4gdGhpcyBzY2VuYXJpbyB0aGVyZSBpcyB0aGUgZm9sbG93aW5nIHJhY2UgY29uZGl0aW9uOgogICAgdGhlIGZpeHVwIGlzIChieSBkZXNpZ24pIHNldCB0byBjYXRjaCB0aGUgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nIHRoZSBvbmUKICAgIGFjdHVhbGx5IGNhdXNpbmcgdGhlIGV4Y2VwdGlvbjsgaWYgYW4gaW50ZXJydXB0IChlLmcuIGRlY3JlbWVudGVyKSBoYXBwZW5zCiAgICBiZXR3ZWVuIHRob3NlIHR3byBpbnN0cnVjdGlvbnMsIHRoZSBJU1IgY29kZSBpcyBleGVjdXRlZCBiZWZvcmUgdGhlIGZpeHVwCiAgICBoYW5kbGVyIHRoZSBtYWNoaW5lIGNoZWNrIGlzIG5vIGxvbmdlciBwcm90ZWN0ZWQgYnkgdGhlIGZpeHVwIGhhbmRsZXIgYXMgaXQKICAgIGFwcGVhcnMgYXMgd2l0aGluIHRoZSBJU1IgY29kZS4gSW4gY29uc2VxdWVuY2UgdGhlIGZpeHVwIGFwcHJvYWNoIGlzIGJlaW5nCiAgICBwaGFzZWQgb3V0IGFuZCByZXBsYWNlZCB3aXRoIGV4cGxpY2l0IHN1cHByZXNzaW5nIG9mIE1DSyBkdXJpbmcgYSBQQ0llCiAgICBjb25maWcgcmVhZC93cml0ZSBjeWNsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZjc2NDBjOWVhZDg4MDZiNWQ4MjdmMmIyOWY5Y2IyNjMyYWRkNzI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCA3IDE3OjQzOjM2IDIwMDcgKzAyMDAKCiAgICBGaXggdHlwbyBpbiBNQUtFQUxMIHNjcmlwdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4ZTJlNWZjZDJlMDY2NzBiNjJlMTY4MGEzOTM0YzBlNTVjNzI4MTAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE3OjA5OjIxIDIwMDcgKzAyMDAKCiAgICBbTVBDNTEyeF0gUHJvcGVyIGhhbmRsaW5nIG9mIGxhcmdlciBmcmFtZXMgaW4gdGhlIEZFQyBkcml2ZXIKCiAgICBXaGVuIGZyYW1lIGxhcmdlciB0aGFuIGxvY2FsIFJYIGJ1ZmZlciBpcyByZWNlaXZlZCwgaXQgaXMgc3BsaXQgYW5kIGhhbmRsZWQKICAgIGJ5IHR3byBidWZmZXIgZGVzY3JpcHRvcnMuIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlIEZFQyBkcml2ZXIgZGlzY2FyZGVkCiAgICBjb250ZW50cyBvZiBhIGJ1ZmZlciBkZXNjcmlwdG9yIHdpdGhvdXQgdGhlICdMQVNUJyBiaXQgc2V0LCBzbyB0aGUgZmlyc3QKICAgIHBhcnQgb2YgdGhlIGZyYW1lIHdhcyBsb3N0IGluIGNhc2Ugb2YgbGFyZ2VyIGZyYW1lcy4gVGhpcyBmaXggYWxsb3dzIHRvCiAgICBzYWZlbHkgY29tYmluZSB0aGUgdHdvIHBpZWNlcyBpbnRvIHRoZSB3aG9sZSBmcmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4ZDE3OTc5ZDAzNTk0OTJhODIyYTBhNDA5ZDI2ZTNhMzU0OWI0Y2Q0CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE3OjA1OjM2IDIwMDcgKzAyMDAKCiAgICBbTVBDNTEyeF0gQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhODljYmJkMjdhNjBlNjc0MDc3MjAwMGZkMDY4OGZmYmExYzI1NzZhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIFNlcCA3IDAxOjIxOjI1IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA1ZTU4MDNlMTE5ZGUzYmViZDc2ZmM5YTU3YmFhYzBiNWFlY2NjOGEzCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMjM6MDE6NDkgMjAwNyArMDIwMAoKICAgIFBYQTI3MDogQWRkZWQgc3VwcG9ydCBmb3IgVHJpemVwc0lWIGJvYXJkLgoKICAgIFRoaXMgcGF0Y2ggYWRkIHN1cHBvcnQgZm9yIHRoZSBUcml6ZXBzIElWIG1vZHVsZSAoNTIwTWh6KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA4MDE3MmM2MTgxYzkxMmZiYjM0ZWEzYmEwYzIyYjIzMmI0MTliNDdmCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMjI6NTc6MDQgMjAwNyArMDIwMAoKICAgIFBYQTI3MDogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlcmlhbCBwb3J0cy4KCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc2VyaWFsIHBvcnRzIHRvIHRoZSBQWEEgdGFyZ2V0LgogICAgRkZVQVJULCBCVFVBUlQgYW5kIFNUVUFSVCBhcmUgc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDI4YmIzZjcyYzY4N2FjNmIyZWIwNzZiMDFkZDIxYTVmZDY1N2Q0NWUKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAyMjo0ODo0NyAyMDA3ICswMjAwCgogICAgUFhBMjcwOiBmaXggY29tcGlsZSBpc3N1ZSAoaW52YWxpZCBsdmFsdWUpCgogICAgQ29kZSBpcyBicm9rZW4gZm9yIFBYQTI3MCBkdWUgdG8gImludmFsaWQgbHZhbHVlIGluIGFzc2lnbm1lbnQiLgoKICAgIFRoaXMgcGF0Y2ggZml4IGl0IGluIHB4YS1yZWdzLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCAxZDJjYTQ0NmUxYTczMWRmNDIwMjA2ZDA0ZmUyNzhjMjdlYTZiOGU4CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAxODoxOTowNSAyMDA3ICswODAwCgogICAgQWRkIEJVSUxEX0RJUiBzdXBwb3J0IGZvciBiaW9zIGVtdWxhdG9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjRkOGE1NTE0NTQ0MmYxMzY5ODI2MzQ4NjIzNDFhM2UwMjAwMmJkYQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIEF1ZyAzMSAxNDo0MTo1MSAyMDA3ICswOTAwCgogICAgW01JUFNdIFJlbW92ZSBpbmxpbmUgYXNtIHN0cmluZyBmdW5jdGlvbnMKCiAgICBTdG9wIHVzaW5nIGlubGluZSBzdHJpbmcgZnVuY3Rpb25zIG9uIE1JUFMgYXMgb3RoZXIgQVJDSHMgZG8gc28sCiAgICBzaW5jZSB0aGUgb3B0aW1pemVkIGlubGluZSBhc20gdmVyc2lvbnMgYXJlIG5vdCBzbWFsbC4KCiAgICBUaGlzIGNoYW5nZSBpcyB0cmlnZ2VyZWQgYnkgYSBmb2xsb3dpbmcgTUlQUyBidWlsZCBlcnJvcjoKICAgIGNvbW1vbi9saWJjb21tb24uYShleHBvcnRzLm8pKC50ZXh0KzB4ZGMpOiBJbiBmdW5jdGlvbiBganVtcHRhYmxlX2luaXQnOgogICAgY29tbW9uL2V4cG9ydHMuYzozMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3RyY21wJwogICAgbWFrZTogKioqIFt1LWJvb3RdIEVycm9yIDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgOGVhMmM0ZTU0ODMzZGVhZWJjMjRjM2NhNmI3ZjIxMzUzYzI1YjBmNQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIEF1ZyAzMSAxNDo0MTo0NSAyMDA3ICswOTAwCgogICAgW01JUFNdIFVwZGF0ZSBhc20gc3RyaW5nIGhlYWRlcgoKICAgIFRoaXMgcGF0Y2hlcyBjb250YWlucyBzZXZlcmFsIGJ1Z2ZpeGVzIGFuZCBjbGVhbnVwcyBpbiB0aGUgbGF0ZXN0IHVwc3RyZWFtOgoKICAgICAtIERvbid0IGluY2x1ZGUgbGludXgvY29uZmlnLmgKICAgICAtIFJlbW92ZSBidWdneSBpbmxpbmUgdmVyc2lvbiBvZiBtZW1zY2FuLgogICAgIC0gTWVyZ2Ugd2l0aCBMaW51eCAyLjYuMTEtcmMzLgogICAgIC0gRml4IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gc3RyY3B5IGluIGJpbmZtdF9taXNjIGNhdXNlZCBieSBnY2MgMy40LgogICAgIC0gR29vZGJ5ZSBtaXBzNjQuCTMxNzA0IGxpbmVzIG9mIGNvZGUgYml0ZSB0aGUgZHVzdC4KICAgICAtIFJlcGxhY2UgZXh0ZXJuIGlubGluZSB3aXRoIHN0YXRpYyBpbmxpbmUuCiAgICAgLSBGaXggcmV0dXJuIHZhbHVlIG9mIHN0cm5jcHkuCiAgICAgLSBSZW1vdmUgYSBidW5jaCBtb3JlICIkMSIgY2xvYmJlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDViNzI5ZmIzYmQ5OGY0OTg1NWQ2YmZjNjU3YzNmYmFlOTVmMmFkYzIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDQgMTc6MzE6MjIgMjAwNyArMDIwMAoKICAgIEZpeCBkb19ib290bV9saW51eCgpIHNvIHRoYXQgbXVsdGktZmlsZSBpbWFnZXMgd2l0aCBGRFQgYmxvYiBib290LgoKICAgIEZpeCBpbmNvcnJlY3QgYmxvYiBhZGRyZXNzIGNhbGN1bGF0aW9uIGluIGRvX2Jvb3RtX2xpbnV4KCkgdGhhdCBwcmV2ZW50cwogICAgYm9vdGluZyB0aGUga2VybmVsIGZyb20gYSBtdWx0aS1maWxlIGltYWdlIChrZXJuZWwgKyBpbml0cmQgKyBibG9iKS4KCiAgICBBbHNvLCBtYWtlIG1pbm9yIHVwZGF0ZXMgdG8gdGhlIFUtQm9vdCdzIG91dHB1dCBhbmQgdG8gdGhlIGNvZGluZyBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDA0MWEyNTU0YWQ2MTllODBkY2U1MjBjMWEzMzIxMGFmZmNiNmEzZjIKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeS5qZW5uZWpvaG5AZnJlZW5ldC5kZT4KRGF0ZToJRnJpIEF1ZyAzMSAxNDoyOTowNCAyMDA3ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNpbDY4MCBJREUgY29udHJvbGxlci4KCiAgICBvIGFkZCBkcml2ZXJzL3NpbDY4MC5jIHRvIHN1cHBvcnQgdGhlIFNpbDY4MCBJREUtY29udHJvbGxlci4KICAgIG8gZHJpdmVycy9NYWtlZmlsZTogYWRkIHNpbDY4MC5vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgoKY29tbWl0IGU3OTAyMTIyM2JjMzM5ZGY2NTVlMzYwNjQ1YTUyYzQ1N2E3NGIwNjcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBTZXAgNiAwOTo0Nzo0MCAyMDA3IC0wNjAwCgogICAgYm9vdG0vZmR0OiBPbmx5IHByb2Nlc3MgdGhlIGZkdCBpZiBhbiBmZHQgYWRkcmVzcyB3YXMgcHJvdmlkZWQKCiAgICBCb2FyZHMgd2l0aCBDT05GSUdfT0ZfTElCRkRUIGVuYWJsZWQgYXJlIG5vdCBhYmxlIHRvIGJvb3Qgb2xkLXN0eWxlCiAgICBrZXJuZWxzIHVzaW5nIHRoZSBib2FyZCBpbmZvIHN0cnVjdHVyZSAoaW5zdGVhZCBvZiBwYXNzaW5nIGEgZGV2aWNlIHRyZWUpCiAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdGhlIG9sZCBzdHlsZSBib290aW5nIHRvIGJlIHVzZWQgaWYgdGhlIGZkdCBhcmd1bWVudAogICAgd2FzIG5vdCBwYXNzZWQgdG8gJ2Jvb3RtJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZjI4MTdhODRjMmU5YmVhMmM1ZGZjMDg0YmNlMmYyZDI1NjNhYzQzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgU2VwIDYgMDk6NDY6MjMgMjAwNyAtMDYwMAoKICAgIE1pZ3JhdGUgNXh4eCBib2FyZHMgZnJvbSBDT05GSUdfT0ZfRkxBVF9UUkVFIHRvIENPTkZJR19PRl9MSUJGRFQKCiAgICBBZmZlY3RzIGJvYXJkczogaWNlY3ViZSAobGl0ZTUyMDApLCBqdXBpdGVyLCBtb3Rpb25wcm8sIHRxbTUyMDAKCiAgICBUZXN0ZWQgb246IGxpdGU1MjAwYgoKICAgIE5vdGU6IHRoZSBmaXh1cCBmdW5jdGlvbnMgaGF2ZSBub3QgYmVlbiBtb3ZlZCB0byBhIGNvbW1vbiBwbGFjZS4gIFRoaXMKICAgIHBhdGNoIGlzIHRhcmdldGVkIGZvciBpbW1lZGlhdGUgbWVyZ2luZyBhcyBpbiBzb2x2ZXMgYSBidWlsZCBpc3N1ZSwgYnV0CiAgICB0aGUgZmluYWwgbmFtZS9sb2NhdGlvbiBvZiB0aGUgZml4dXBzIGlzIHN0aWxsIHN1YmplY3QgdG8gZGViYXRlLiAgSQogICAgcHJvcG9zZSB0byBtZXJnZSB0aGlzIG5vdywgYW5kIG1vdmUgdGhlIGZpeHVwcyBpbiB0aGUgbmV4dCBtZXJnZSB3aW5kb3cKICAgIHRvIGJlIHVzYWJsZSBieSBhbGwgdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNDFiYjc2ZTk0MTkyOWY1NGE3MzIwNmZiMTMyZjdhNGMyNzU1NDNhMwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IFNlcCA2IDA5OjQ2OjE3IDIwMDcgLTA2MDAKCiAgICBsaWJmZHQ6IGFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiBmZHRfZmluZF9hbmRfc2V0cHJvcCgpCgogICAgR2l2ZW4gdGhlIHBhdGggdG8gYSBub2RlLCBmZHRfZmluZF9hbmRfc2V0cHJvcCgpIGFsbG93cyBhIHByb3BlcnR5IHZhbHVlCiAgICB0byBiZSBzZXQgZGlyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDgwNzY3YTZjZWFkOTk5MGQ5ZTc3ZTYyYmU5NDc4NDNjMmM3MmY0NjkKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgU2VwIDUgMTY6MDQ6NDEgMjAwNyArMDEwMAoKICAgIENoYW5nZWQgQVBJIG5hbWUgdG8gY29sb3VyZWRfbGVkLmgKICAgIFJlbW92ZWQgY29kZSB1c2luZyBkZXByZWNhdGVkIGlmZGVmIENPTkZJR19CT09UQklORlVOQwogICAgVGlkaWVkIG90aGVyIGNwdS9hcm05MjB0L3N0YXJ0LlMgY29kZQoKY29tbWl0IDU2YTkyNzA1MjFiYWFhMDBlMTI2MzlhOTc4MzAyYTY3ZjYxZWYwNjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDMwIDE2OjE4OjE4IDIwMDcgLTA1MDAKCiAgICBGaXggVUxJIFJUQyBzdXBwb3J0IG9uIE1QQzg1NDQgRFMKCiAgICBUaGUgUlRDIG9uIHRoZSBNMTU3NSBVTEkgY2hpcHNldCByZXF1aXJlcyBhIGR1bW15IHJlYWQgYmVmb3JlCiAgICB3ZSBhcmUgYWJsZSB0byB0YWxrIHRvIHRoZSBSVEMuICBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgYWRkaW5nIGEKICAgIHNlY29uZCBtZW1vcnkgcmVnaW9uIHRvIHRoZSBQSEIgdGhlIFVMSSBpcyBvbiBhbmQgcmVhZCBmcm9tIGl0LgoKICAgIFRoZSBzZWNvbmQgcmVnaW9uIGlzIGFkZGVkIHRvIG1haW50YWluIGNvbXBhdGlhYmlsdHkgd2l0aCBMaW51eCdzCiAgICB2aWV3IG9mIHRoZSBQQ0kgbWVtb3J5IG1hcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY3NWU4OWU5YjU3MTRkYjJiMGU4MDA3NDA3MWRmYmRkNmY1OTQ4OGEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMwIDAxOjU4OjQ4IDIwMDcgLTA1MDAKCiAgICBmdF9ib2FyZF9zZXR1cCB1cGRhdGUgODV4eC84Nnh4IG9mIHBjaS9wY2llIGJ1cy1yYW5nZSBwcm9wZXJ0eS4KCiAgICBwY2llIGlzIG5vdyBkaWZmZXJlbnRpYXRlZCBmcm9tIHBjaS4gIEFkZCA4NjQxIGJ1cy1yYW5nZSB1cGRhdGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWY1YzNkMzcyMGU3NzdhNTcyZGNkYzhhZjIwMDhiNDRjNzI0Mzg4NQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNjoxODozOCAyMDA3ICswMTAwCgogICAgQWRkIGNvbG91cmVkIGxlZCBpbnRlcmZhY2UgZm9yIEFSTSBib2FyZHMuCiAgICBVc2UgaXQgaW4gY3B1L2FybTkyMHQvc3RhcnQuUyB0byBpbmRpY2F0ZSBVLUJvb3QgY29kZSBoYXMgYmVlbiBlbnRlcmVkLgoKY29tbWl0IDc0NjJmZTBkNWE5ZDQwY2RlMDgzZmIxYTNjZDczOTExOTk2YjVlY2IKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTQ6NDk6MjggMjAwNyArMDEwMAoKICAgIE1vdmUgaW5jbHVkZS9sZWQuaCB0byBib2FyZC9hdDkxcm05MjAwZGsKCmNvbW1pdCA2ZTRiZjliMjRlNTdjMTVhYmM2NTQyZTY4NWQwNjM4MGJjNjRhZjI3CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE0OjI1OjUxIDIwMDcgKzAxMDAKCiAgICBSYW4gTGluZGVudCBvbiBkcml2ZXJzL2F0NDUuYwoKY29tbWl0IDU1N2FiODlkMjk0ZjA4ZGQ1MzJmMjFkMTk4NjFiNDAwOTMyMDBhMzMKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTQ6MjM6NTAgMjAwNyArMDEwMAoKICAgIFJlbmFtZSBDT05GSUdfQ01EX01VWCB0byBDT05GSUdfQ01EX0FUOTFfU1BJTVVYCgpjb21taXQgODFiNzNkZWMxNmZkMTIyNzM2OWExOTFlNzI1ZTEwMDQ0YTlkNTZiOApBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDMxIDE1OjIxOjQ2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IChSZS0pRW5hYmxlIENPTkZJR19QQ0lfUE5QIG9uIEFNQ0MgNDQwRVB4IFNlcXVvaWEKCiAgICBUaGUgNDQwRVB4IGhhcyBhIHByb2JsZW0gd2hlbiB0aGUgUENJX0NBQ0hFX0xJTkVfU0laRSByZWdpc3RlciBpcwogICAgc2V0IHRvIG5vbi16ZXJvLCBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBNUk0gKG1lbW9yeS1yZWFkLQogICAgbXVsdGlwbGUpIGNvcnJlY3RseS4gV2Ugbm93IGFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBjb25maWd1cmUKICAgIHRoaXMgcmVnaXN0ZXIgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlLCBzbyB0aGF0IHRoZSBkZWZhdWx0IHZhbHVlCiAgICBvZiA4IGNhbiBiZSBvdmVycmlkZGVuLgoKICAgIEhlcmUgdGhlIGRldGFpbHMgb2YgdGhpcyBwYXRjaDoKCiAgICBvIGRyaXZlcnNfcGNpX2F1dG8uYzogaW50cm9kdWNlIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFIHRvIGFsbG93CiAgICAgIGJvYXJkLXNwZWNpZmljIHNldHRpbmdzLiBBcyBhbiBleGFtcGxlIHRoZSBzZXF1b2lhIGJvYXJkIHJlcXVpcmVzIDAuCiAgICAgIElkZWEgZnJvbSBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+LgogICAgbyBib2FyZC9hbWNjL3NlcXVvaWEvaW5pdC5TOiBhZGQgYSBUTEIgbWFwcGluZyBhdCAweEU4MDAwMDAwIGZvciB0aGUKICAgICAgUENJIElPLXNwYWNlLiBPYnRhaW5lZCBmcm9tIFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4uCiAgICBvIGluY2x1ZGUvY29uZmlncy9zZXF1b2lhLmg6IHR1cm4gQ09ORklHX1BDSV9QTlAgYmFjayBvbiBhbmQgc2V0CiAgICAgIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFIHRvIDAuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjAxNzQ3NDZjNjY4YjMwOTM3OGE5MTQ4OGRkZWQ4OThlOTU1M2VhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMzEgMTA6MDE6NTEgMjAwNyArMDIwMAoKICAgIEZpeCBURlRQIE9BQ0sgY29kZSBmb3Igc2hvcnQgcGFja2V0cy4KCiAgICBUaGUgb2xkIGNvZGUgaGFkIGEgbG9vcCBsaW1pdCBvdmVyZmxvdyBidWcgd2hpY2ggY2F1c2VkIGEgc2VtaS0KICAgIGluZmluaXRlIGxvb3AgZm9yIHNtYWxsIHBhY2tldHMsIGJlY2F1c2UgaW4gImk8bGVuLTgiLCAiaSIgd2FzIHNpZ25lZCwKICAgIGJ1dCAibGVuIiB3YXMgdW5zaWduZWQsIGFuZCAibGVuLTgiIGJlY2FtZSBhIGh1Z2UgbnVtYmVyIGZvciBzbWFsbAogICAgdmFsdWVzIG9mICJsZW4iLgoKICAgIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHdoaWNoIHJlcGxhY2VzIGJyb2tlbiBjb21taXQgOGYxYmMyODQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OTZkZDEzMDdjZDhlNzNhMTBlOWJiM2M1MTczMWJmZDZmODM3YmVlCkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAxNTowMzowNSAyMDA3ICswMjAwCgogICAgUmVkdWNlIEJPT1RERUxBWSB2YXJpYWJsZSB0byAxIHNlY29uZCBieSBkZWZhdWx0IGZvciBTVEsxMDAyCgogICAgU2lnbmVkLW9mZi1ieTogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4OGI2ZTFjYmY5YThhZTJhMzRmYjYwMmY3OGExYmY0ZTY2OTJiNmEKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgpEYXRlOglUaHUgQXVnIDMwIDE1OjAzOjA0IDIwMDcgKzAyMDAKCiAgICBSZW1vdmUgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyBhcm91bmQgTUFDIGFkZHJlc3MgZm9yIFNUSzEwMDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZmYxM2FjOGM3YmJlYmIyMzhlMzM5NTkyZGU3NjVjNTQ2ZGJhMTA3MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMTQ6NDI6MTUgMjAwNyArMDIwMAoKICAgIEJhY2tvdXQgY29tbWl0IDhmMWJjMjg0IGFzIGl0IGNhdXNlcyBURlRQIHRvIGZhaWwuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxOTAwZmJmMjU1YWNiYThiOTRmYjQ0MmExNjQwOGVhODVhMWQ0NmE2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAwMjoyNjoxNyAyMDA3IC0wNTAwCgogICAgUmV2ZXJ0ICJGaXggTVBDODU0NERTIFBDSWUzIHNjc2kuIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTQ2OGU2ODAuCiAgICBDb21taXQgMTZlMjNjM2Y1ZGEgcmVtb3ZpbmcgYWxsb2NhdGlvbiBvZiBQQ1NSQkFSIGlzIHN1ZmZpY2llbnQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjFiYzI4NDA4ZGVkMjEzNDE4ZDliYzA3ODBjN2Q4ZmI4YTAzNzc0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglXZWQgQXVnIDI5IDE4OjI2OjI0IDIwMDcgLTA2MDAKCiAgICB0ZnRwOiBkb24ndCBpbXBsaWNpdHkgdHJ1c3QgdGhlIGZvcm1hdCBvZiByZWNldmllZCBwYWNrZXRzCgogICAgVGhlIFRGVFAgT0FDSyBjb2RlIHRydXN0cyB0aGF0IHRoZSBpbmNvbWluZyBwYWNrZXQgaXMgZm9ybWF0ZWQgYXMKICAgIEFTQ0lJIHRleHQgYW5kIGNhbiBiZSBwcm9jZXNzZWQgYnkgc3RyaW5nIGZ1bmN0aW9ucy4gSXQgYWxzbyBoYXMgYQogICAgbG9vcCBsaW1pdCBvdmVyZmxvdyBidWcgd2hlcmUgaWYgdGhlIHBhY2tldCBsZW5ndGggaXMgbGVzcyB0aGFuIDgsIGl0CiAgICBlbmRzIHVwIGxvb3Bpbmcgb3ZlciAqYWxsKiBvZiBtZW1vcnkgdG8gZmluZCB0aGUgJ2Jsa3NpemUnIHN0cmluZy4KCiAgICBUaGlzIHBhdGNoIHNvbHZlcyB0aGUgcHJvYmxlbSBieSBmb3JjaW5nIHRoZSBwYWNrZXQgdG8gYmUgbnVsbAogICAgdGVybWluYXRlZCBhbmQgdXNpbmcgc3Ryc3RyKCkgdG8gc2VhcmNoIGZvciB0aGUgc3ViIHN0cmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDQ2MjU3NjRjYzkzY2U4YTYxNjI1YWMxOWQ3ZmUyYTJjZWVlODE0MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAxNjozMToxOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgbHdtb241IGRlZmF1bHQgZW52aXJvbm1lbnQgdG8gc3VwcG9ydCBMaW51eCBSVEMKCiAgICBUaGUgTGludXggUENGODU2MyBSVEMgZHJpdmVyIGRvZXNuJ3QgZG8gYXV0b3Byb2JpbmcsIHNvIHdlIG5lZWQKICAgIHRvIHN1cHBseSB0aGUgUlRDIEkyQyBhZGRyZXNzIGFzIGJvb3RsaW5lIHBhcmFtZXRlci4gVGhpcyBwYXRjaAogICAgYWRkcyBzdXBwb3J0IGZvciB0aGlzIHJ0YyBwcm9iaW5nIHBhcmFtZXRlciB0byB0aGUgYm9vdGFyZ3M6CgogICAgInJ0Yy1wY2Y4NTYzLnByb2JlPTAsMHg1MSIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwMmE1YzQwYWUzN2FiOTY1YTRlMjQwODU0ZmRhZmZiNTEzMjhhNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjkgMDk6MDY6MDUgMjAwNyAtMDUwMAoKICAgIHNiYzg2NDE6IHJlbW92ZSB1bnVzZWQgT0ZfRkxBVF9UUkVFX01BWF9TSVpFCgogICAgdGhpcyBoYWQgc2xpcHBlZCB0aHJvdWdoIHRoZSBjcmFja3MsIHNpbmNlIHRoZSBzYmMgYm9hcmQgd2FzIGFkZGVkCiAgICBhZnRlciBJIHdyb3RlIHRoZSBvcmlnaW5hbCBwYXRjaCB0byByZW1vdmUgYWxsIHRoZXNlIHN5bWJvbHMsIGFuZAogICAgYmVmb3JlIGl0IHdhcyBtZXJnZWQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNWJkZWQzYzg4ZTQ4YWU2NDhhNzVkMzU3ZGM4MWE4MjU1ZmE4MWYxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAxNDowNTozMCAyMDA3ICswMjAwCgogICAgQWRkIG1paV9pbml0KCkgcHJvdG90eXBlCgogICAgdG8gZ2V0IHJpZCBvZiBhICpsb3QqIG9mIGNvbXBpbGVyIHdhcm5pbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmQxZjIzYWExZTc0ZTRhOGY4ZmZhNjdmMjQ2ZWI5OGM1MjJkZmQ3ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMTM6MzU6MDMgMjAwNyArMDIwMAoKICAgIERpc2FibGUgbmV0d29yayBzdXBwb3J0IG9uIGNtaV9tcGM1eHggYm9hcmQKCiAgICAuLmJlY2F1c2UgaXQgY2F1c2VkIGNvbXBpbGVyIGVycm9ycyBhbmQgdGhlcmUgc2VlbXMgdG8gYmUgbm8KICAgIGJvYXJkIG1haW50YWluZXIgdG8gdGFrZSBjYXJlIG9mIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NDY4ZTY4MDRiN2UyNWIwZjZmNTJlNTNmNDdiY2UzMTc1NDAwYTE2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEF1ZyAyMCAwOTo0NDowMCAyMDA3IC0wNTAwCgogICAgRml4IE1QQzg1NDREUyBQQ0llMyBzY3NpLgoKICAgIDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCiAgICBUaGUgcHJvYmxlbSBpcyBwY2lhdXRvX3NldHVwX2RldmljZSgpIGdldHRpbmcgY2FsbGVkIGZyb20gZnNsX3BjaV9pbml0LmMKICAgIGlzIGFsbG9jYXRpbmcgbWVtb3J5IHNwYWNlIGl0IGRvZXNuJ3QgbmVlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRiZjRhYmI4YTRlOTk1NTU1NmIxMjBhMWFhZmEzMGMwM2U3NDAzMmEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIxIDA5OjM4OjU5IDIwMDcgLTA1MDAKCiAgICA4NTQ4Y2RzIGZpeGVzCgogICAgUmVzdG9yZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTIGRlZmluaXRpb24gd2hpY2ggY29udGFpbnMgdGhlCiAgICBjb3JyZWN0IGNvbnNvbGVkZXYgbmVlZGVkIGZvciBsaW51eCBib290LgogICAgU3RhbmRhcmRpemUgb24gZmR0e2ZpbGUsYWRkcn0gdmFyIHRvIGhvbGQgZHRiIGZpbGUgbmFtZS4KCiAgICBTZXQgUENJIGluYm91bmQgbWVtb3J5IHJlZ2lvbiBmcm9tIENGR19NRU1PUllfe0JVUyxQSFlTfS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhMWFjNDE5ZmEwZDJkMjNkZGQwOGJkNjFkMTY4OTZhOWYzM2M5MzMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIzIDE1OjIwOjU0IDIwMDcgLTA0MDAKCiAgICBFbmFibGUgTDIgY2FjaGUgZm9yIE1QQzg1NjhNRFMgYm9hcmQKCiAgICBUaGUgTDIgY2FjaGUgc2l6ZSBpcyA1MTJLQiBmb3IgODU2OCwgcHJpbnQgb3V0IHRoZSBjb3JyZWN0IGluZm9ybWFpdG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTRjNDdmZGFmMTRjYjI5ZmEzZmI0ZDRkYTJlZmRkOTZjODAzYjQ2YgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjIgMTc6NTQ6NDkgMjAwNyArMDgwMAoKICAgIFJlbW92ZSB0aGUgYmlvcyBlbXVsYXRvciBiaW5hcnkgZmlsZXMgZnJvbSBNQUkgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MDhkNzVmOWM4N2M5ZWI1YjNhNDMyMTlkMDUwNmQzZTk3OWExM2YKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIxIDE3OjAwOjE3IDIwMDcgLTA1MDAKCiAgICBzdXBwb3J0IGJvYXJkIHZlbmRvci1jb21tb24gbWFrZWZpbGVzCgogICAgaWYgYSBib2FyZC8kKFZFTkRPUikvY29tbW9uL01ha2VmaWxlIGV4aXN0cywgYnVpbGQgaXQuCgogICAgYWxzbyBhZGQgdGhlIGZpcnN0IHN1Y2ggY2FzZSwgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9NYWtlZmlsZSwgdG8KICAgIGhhbmRsZSBidWlsZGluZyBib2FyZC1zaGFyZWQgRUVQUk9NLCBQSVhJUywgYW5kIE1EUy1QSUIgY29kZSwgYXMKICAgIGRpY3RhdGVkIGJ5IGJvYXJkIGNvbmZpZ3VyYXRpb24uCgogICAgdGh1c2x5IGdldCByaWQgb2YgYWx0ZXJuYXRlIGJ1aWxkIGRpciBlcnJvcnMgc3VjaCBhczoKCiAgICBGQVRBTDogY2FuJ3QgY3JlYXRlIC93b3JrL3dkL3RtcC91LWJvb3QtcHBjL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy8uLi9jb21tb24vcHEtbWRzLXBpYi5vOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CgogICAgYnkgcHV0dGluZyB0aGUgY29tbW9uLyBta2RpciBjb21tYW5kIGluIGl0cyBwcm9wZXIgcGxhY2UgKHRoZSBjb21tb24KICAgIE1ha2VmaWxlKS4gQ29tbW9uIGJpdHMgZnJvbSBleGlzdGluZyBpbmRpdmlkdWFsIGJvYXJkIE1ha2VmaWxlcyBoYXZlCiAgICBiZWVuIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZjhmMjA3NTI3MTJkYzFjZGJkODZmNDdlM2JkNmUzNWY4MWM4M2ZkCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTU6NTI6MzMgMjAwNyArMDIwMAoKICAgIEZpeDogVEZUUCBpcyBub3Qgd29ya2luZyBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMKCiAgICBURlRQIGRvZXMgbm90IHdvcmsgYW55bW9yZSBhZnRlciBtdWx0aWNhc3QgdGZ0cAogICAgcGF0Y2ggd2FzIGFwcGxpZWQgb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zLgogICAgVGhpcyBwYXRjaCBmaXggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgNWY0NzA5NDg1NzA1MjZlOTE4NmYwNTNhMzAwM2RhNzcxOTYwNGU5MApBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgQXVnIDIxIDE1OjUwOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggTUFDIGFkZHJlc3Mgc2V0dGluZyBpbiBETTkwMDAgZHJpdmVyLgoKICAgIFRoZSBsb2dpYyB0byBjaGVjayBpZiB0aGVyZSBpcyBhIGNvcnJlY3QgTUFDIGFkZHJlc3MgaW4gdGhlIERNOTAwMAogICAgRUVQUk9NLCBhZGRlZCBpbiB0aGUgbGFzdCBwYXRjaCwgaXMgd3JvbmcuIE5vdyB0aGUgTUFDIGFkZHJlc3MgaXMKICAgIGFsd2F5cyB0YWtlbiBmcm9tIHRoZSBlbnZpcm9ubWVudCwgZXZlbiBpZiBhIHN1aXRhYmxlIE1BQyBpcyBwcmVzZW50CiAgICBpbiB0aGUgRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDRhODUyN2VmMDg2ZWM3Yzg5ZjQwNjc0ZWYwMjRhZTZmOTg4YTYxNGEKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxMjo0MDozNCAyMDA3ICswMjAwCgogICAgTVBDNXh4eDogZml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MgaW4gVVNCIGNvZGUKCiAgICBGaXggdGhlIGZvbGxvd2luZyB3YXJuaW5nczoKICAgIC0gdXNiLmM6eHg6IHdhcm5pbmc6IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzbid0IGEgcHJvdG90eXBlCiAgICAtIHVzYl9vaGNpLmM6eHh4OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ19fZnN3YWIzMicgbWFrZXMgaW50ZWdlcgogICAgICBmcm9tIHBvaW50ZXIgd2lodG91dCBhIGNhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3Jhc2VAdHFzLmRlPgoKY29tbWl0IDE2ZTIzYzNmNWRhYjY5MzdmNTEwOTM2NTQxNjgwOGM3ZjE1YzEyMmIKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDIwIDIzOjU1OjMzIDIwMDcgLTA1MDAKCiAgICBmc2xfcGNpX2luaXQgLSBSZW1vdmUgc2VsZiBQQ1NSQkFSIGFsbG9jYXRpb24KCiAgICBDUFUgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZSB3YXMgYmVpbmcgd2FzdGVkIGJ5IGFsbG9jYXRpbmcgYQogICAgUENTUkJBUiBQQ0kgaW5ib3VuZCByZWdpb24gdG8gaXQncyBtZW1vcnkgc3BhY2UuCgogICAgQXMgYSBydWxlLCBQQ1NSQkFSIHNob3VsZCBiZSBsZWZ0IGFsb25lIHNpbmNlIGl0IGRvZXMgbm90IGFmZmVjdAogICAgdHJhbnNhY3Rpb25zIGZyb20gc2VsZiBhbmQgb3RoZXIgbWFzdGVycyBtYXkgaGF2ZSBjaGFuZ2VkIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGU3MDBjZTAzYTIzYmIxOTIxMTQ5YmM3NzAwOGFjZTcxMDNkNTI4OQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gQXVnIDIwIDEzOjU2OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbiBpbmNsdWRlL3MzYzI0MTAuaAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlICJ0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdWN0aW9uIHJldHVybiB0cHllIgogICAgd2FybmluZyBmb3IgaW5jbHVkZS9zM2MyNDEwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5YmI4YjIwOWVkMjA1OGE1NzU2ZWNiZWI1NDRjMDY3ZTQ0YTQyYWVhCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJTW9uIEF1ZyAyMCAwNzowOTowNSAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGZvciBvbWFwMjQyMGg0X2NvbmZpZy4KCiAgICBvbWFwMjQyMGg0IHN3aXRjaGVkIHRvIGNmaSwgc28gcmVtb3ZlIG9sZCAoYWxyZWFkeSBkaXNhYmxlZCkgZmxhc2guYwogICAgYW5kIGZsYXNoX3Byb2JlKCkgY2FsbHMgaW4gZW52X2ZsYXNoLmMuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgM2JiMzQyZmM4NWQ3OWRiYjZiOGMyMDM5ZTdjZGNkZGM4MmI4ZDkwZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTQ6MzQ6MTQgMjAwNyAtMDUwMAoKICAgIGZkdDogcmVtb3ZlIHVudXNlZCBPRl9GTEFUX1RSRUVfTUFYX1NJWkUgcmVmZXJlbmNlcwoKICAgIGFuZCBtYWtlIHNvbWUgbWlub3IgY29ycmVjdGlvbnMgdG8gdGhlIEZEVCBwYXJ0IG9mIHRoZSBSRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YWYyZWViMWU5OWMyZGNjNTg0ZDRjNWFiN2ZjYWUzMGEzMjVmNGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAwMTozMjowNSAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhODYxNTU4YzY1ZjY1ZjFjZjEzMDJmM2EzNWU5ZGI3Njg2YjllMWEzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgQXVnIDI4IDE3OjQwOjMzIDIwMDcgKzAyMDAKCiAgICBbVUMxMDFdIEZpeDogaWYgbm8gQ0YgaW4gdGhlIGJvYXJkLCBVLUJvb3QgcmVzZXRzIHNvbWV0aW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBmOTg5ODRjYjE5NGJiMzRkYmUxZGI5NDI5ZDNiNTExMzNhZjMwZDA3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgQXVnIDI4IDE3OjM5OjE0IDIwMDcgKzAyMDAKCiAgICBJREU6CS0gbWFrZSBpZGVfaW5iICgpIGFuZCBpZGVfb3V0YiAoKSAid2VhayIsIHNvIGJvYXJkcyBjYW4KCSAgICAgIGRlZmluZSB0aGVyZSBvd24gSS9PIGZ1bmN0aW9ucy4KCSAgICAgIChOZWVkZWQgZm9yIHRoZSBwY3M0NDBlcCBib2FyZCkuCgkgICAgLSBUaGUgZGVmYXVsdCBJL08gRnVuY3Rpb25zIGFyZSBhZ2FpbiA4IEJpdCBhY2Nlc3Nlcy4KCSAgICAtIEFkZGVkIENPTkZJR19DTURfSURFIGZvciB0aGUgcGNzNDQwZXAgQm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMmMwNWZkMTI1NzQ0OTgxZTVmMjgyOGQyNGU2NmNjYzIwYTc3ZDI1ZApBdXRob3I6IFNlbWloIEhhemFyIDxzZW1paC5oYXphckBpbmRlZmlhLmNvbT4KRGF0ZToJTW9uIEF1ZyAyMCAxOTowMDowMSAyMDA3ICswMzAwCgogICAgQVZSMzI6IENoYW5nZSBwcm90b3R5cGUgb2YgbWVtc2V0CgogICAgU2lnbmVkLW9mZi1ieTogU2VtaWggSGF6YXIgPHNlbWloLmhhemFyQGluZGVmaWEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWMwMmRlZmMyOWI1Nzk0NWI2MDA3MTRjZjYxZGRmZDAyYjAyZmIxNApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJU2F0IEF1ZyAyNSAwNTowNzoxNiAyMDA3ICswMjAwCgogICAgUE9TVDogbGltaXQgbWVtb3J5IHRlc3QgYXJlYSB0byBub3QgdG91Y2ggZ2xvYmFsIGRhdGEgYW55bW9yZQoKICAgIEFzIGV4cGVyaWVuY2VkIG9uIGx3bW9uNSwgb24gc29tZSBib2FyZHMgdGhlIFBPU1QgbWVtb3J5IHRlc3QgY2FuCiAgICBjb3JydXB0IHRoZSBnbG9iYWwgZGF0YSBidWZmZXIgKGJkKS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlCiAgICBieSBjaGVja2luZyBhbmQgbGltaXRpbmcgdGhpcyBhcmVhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NWUxYTg0ZDQ4M2UzNmJlMTBlMjA2ZTUzOWIwMjhjNDg4OWUxMTU4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDI0IDE1OjQxOjQyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBSVEMgUE9TVCB0ZXN0IHRvIGx3bW9uNSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgU2luY2UgdGhpcyBSVEMgUE9TVCB0ZXN0IGlzIHRha2luZyBxdWl0ZSBhIHdoaWxlIHRvIGNvbXBsZXRlCiAgICBpdCdzIG9ubHkgaW5pdGlhdGVkIHVwb24gc3BlY2lhbCBrZXlwcmVzcyBzYW1lIGFzIHRoZSBjb21wbGV0ZQogICAgbWVtb3J5IFBPU1QuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3YmZhNjIwMDM3YTZkMjIxMDE1OTM4NzU3MWJkZjkzYWEzMmMxNjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMjQgMTU6MTk6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIEdQSU8gc2lnbmFsIGZvciB3YXRjaGRvZyB0cmlnZ2VyaW5nIG9uIGx3bW9uNQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMjVkZDhmYzI1ZTljYTM2OTVkYjk5NmEyNTdkOWJhNGRhYjQxNGRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIzIDExOjAyOjM3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBzdXBwb3J0IGZvciAybmQgSTJDIEVFUFJPTSBvbiBsd21vbjUgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIDJuZCBFRVBST00gKEFUMjRDMTI4KSBvbiB0aGUgbHdtb241CiAgICBib2FyZC4gTm93IHRoZSAiZWVwcm9tIiBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIHJlYWQvd3JpdGUgZnJvbS90byB0aGlzCiAgICBkZXZpY2UuIEFkZGl0aW9uYWxseSBhIG5ldyBjb21tYW5kIHdhcyBhZGRlZCAiZWVwcm9td3AiIHRvIGVuLS9kaXNhYmxlCiAgICB0aGUgd3JpdGUtcHJvdGVjdCBvZiB0aGlzIDJuZCBFRVBST00uCgogICAgVGhlIDFzdCBFRVBST00gaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgd3JpdGUtcHJvdGVjdCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNjRmYjMwZTRjNTk3NjAwN2Q1NmZjMTc4OWM3YTA2NjYwODJiNTM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDIyIDA4OjU2OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB1bnVzZWQgb3B0aW9uIENGR19JTklUX1JBTV9PQ00KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2FkNjM4Nzg3MzdhNWEyYjFlNjA4MjViZjBhN2Q2MDFkN2E2OTVlNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxNjoyNzo1NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbWF0cml4IGtiZCBzdXBwb3J0IHRvIGx3bW9uNSBib2FyZCAoNDQwRVB4IGJhc2VkKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbWF0cml4IGtleWJvYXJkIG9uIHRoZSBsd21vbjUgYm9hcmQuCiAgICBTaW5jZSB0aGUgaW1wbGVtZW50YXRpb24gaW4gdGhlIGRzUENJIGlzIGtpbmQgb2YgY29tcGF0aWJsZSB3aXRoIHRoZQogICAgIm9sZCIgbHdtb24gYm9hcmQsIG1vc3Qgb2YgdGhlIGNvZGUgaXMgY29waWVkIGZyb20gdGhlIGx3bW9uCiAgICBib2FyZCBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNlNjZjMDc4MDAzNjA3YTdkMWQyMTRjMTVhNWYyNjJiYzFiNDAzMmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDE5IDEwOjI3OjM0IDIwMDcgKzAyMDAKCiAgICBGaXggc29tZSBidWlsZCBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwNTY3NTczNWVmNzdkYzIzYjVlMGViNzgyYmFkMWZmNDc3YjU1ZTg2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyAxOCAyMjowMDozOCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCA3OWYyNDBmN2VjYzA1MDZiNDNhYzUwZDFlYTQwNWZmNjU0MGQ0ZDU3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1MjozOSAyMDA3IC0wNTAwCgogICAgbGliX3BwYzogbWFrZSBib2FyZF9hZGRfcmFtX2luZm8gd2VhawoKICAgIHBsYXRmb3JtcyB3aXNoaW5nIHRvIGRpc3BsYXkgUkFNIGRpYWdub3N0aWNzIGluIGFkZGl0aW9uIHRvIHNpemUsCiAgICBjYW4gZG8gc28sIG9uIG9uZSBsaW5lLCBpbiB0aGVpciBvd24gYm9hcmRfYWRkX3JhbV9pbmZvKCkKICAgIGltcGxlbWVudGF0aW9uLgoKICAgIHRoaXMgY29uc2VxdWVudGx5IGVsaW1pbmF0ZXMgQ09ORklHX0FERF9SQU1fSU5GTy4KCiAgICBUaGFua3MgdG8gU3RlZmFuIGZvciB0aGUgaGludC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxNWI1YmQ1YjE4NTY5OTE3YzNlMDRiOTc1NzUxMWU2ZWQyM2I5ZjYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBBdWcgMTcgMTI6NDM6NDQgMjAwNyArMDkwMAoKICAgIFBDSV9SRUFEX1ZJQV9EV09SRF9PUDogRml4ICp2YWwgdW5pbml0aWFsaXplZCBidWcKCiAgICBUaGlzIHBhdGNoIGhhcyBiZWVuIHNlbnQgb246CiAgICAtIDYgSnVuIDIwMDcKCiAgICBNYW55IHVzZXJzIG9mIFBDSSBjb25maWcgcmVhZCByb3V0aW5lcyB0ZW5kIHRvIGlnbm9yZSB0aGUgZnVuY3Rpb24KICAgIHJldCB2YWx1ZSwgYW5kIGFyZSBvbmx5IGNvbmNlcm5lZCBhYm91dCB0aGUgY29udGVudHMgb2YgKnZhbC4gQmFzZWQKICAgIG9uIHRoaXMsIHBjaV9ob3NlX3JlYWRfY29uZmlnX3tieXRlLHdvcmR9X3ZpYV9kd29yZCBzaG91bGQgaW5pdGlhbGl6ZQogICAgdGhlICp2YWwgb24gZHdvcmQgcmVhZCBlcnJvci4KCiAgICBXaXRob3V0IHRoaXMgZml4LCBmb3IgZXhhbXBsZSwgd2UnbGwgZ28gb24gc2Nhbm5pbmcgYnVzIHdpdGggdmVuZG9yIG9yCiAgICBoZWFkZXJfdHlwZSB1bmluaXRpYWxpemVkLiBUaGlzIGJyaW5ncyBtYW55IHVubmVjZXNzYXJ5IGNvbmZpZyB0cmlhbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDI2NjY3YjdmYTA1YThiZjJmYzY1ZmI5ZjMyMzBiMDJiMWExMGMzNjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgMTggMTQ6Mzc6NTIgMjAwNyArMDIwMAoKICAgIENvbGRGaXJlOiBGaXggc29tZSByZW1haW5pbmcgcHJvYmxlbXMgd2l0aCBDRkdfQ01EXwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MjgwZjZhMWM0MzI0NzYxNmI2ODIyNDY3NTE4OGU1Y2NkMTI0NjUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgQXVnIDE4IDE0OjMzOjAyIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YTQ0MmQzMTg2YjMxODkzYjRmNzdjNmU4MmY2M2M0NTE3YTUyMjRiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE5OjIzOjUwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MjM1RVZCIFBsYXRmb3JtIGZvciBNQ0Y1MjN4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjYzFjZDU5NDE4MjdhMDRjZjVjNTFhMDdmY2M0MmU4OTQ1ODk0YWEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDE3IDA5OjMwOjAwIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggdHlwbyBpbiBERFIyIHByb2dyYW1taW5nCgogICAgaW50cm9kdWNlZCBpbiB0aGUgaW1wbGVtZW50IGJvYXJkX2FkZF9yYW1faW5mbyBwYXRjaCBhcyBJIHdhcyBjbGVhbmluZyBvdXQgdGhlCiAgICBtYWdpYyBudW1iZXJzLiAgc29ycnkuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNThmZTk1Nzg0ZDI1MTRmYzljMjEwMjhkYzU5ZjJiMzE5YTM1ZDgwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1MzowOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbW92ZSBmcmVlc2NhbGUgYm9hcmRzIHRvIGJvYXJkcy9mcmVlc2NhbGUKCiAgICBpbmNsdWRlcyBidWlsZCBmaXhlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVhYTRhZDhkOGU3ZTk0NjgyMTk5OTBjNzg3NWQ1ZmRjOWU5NjJmNDcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUyOjU5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBzdXBwcmVzcyB1bnVzZWQgdmFyaWFibGUgJ3ZhbDgnIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJiZWE0NmY3NmY3NjdiOTE5MDcwYjQ4MjliZjM0Yzg2YmQyMjMyNDgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUyOjQ4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBpbXBsZW1lbnQgYm9hcmRfYWRkX3JhbV9pbmZvCgogICAgYWRkIGJvYXJkX2FkZF9yYW1faW5mbywgdG8gbWFrZSBtZW1vcnkgZGlhZ25vc3RpYyBvdXRwdXQgbW9yZQogICAgY29uc2lzdGVudC4gdS1ib290IGJhbm5lciBvdXRwdXQgbm93IGxvb2tzIGxpa2U6CgogICAgRFJBTTogIDI1NiBNQiAoRERSMSwgNjQtYml0LCBFQ0Mgb24pCgogICAgYW5kIGZvciBib2FyZHMgd2l0aCBTRFJBTSBvbiB0aGUgbG9jYWwgYnVzLCBhIGxpbmUgc3VjaCBhcyB0aGlzIGlzCiAgICBhZGRlZDoKCiAgICBTRFJBTTogNjQgTUIgKGxvY2FsIGJ1cykKCiAgICBhbHNvIHJlcGxhY2VkIHNvbWUgbWFnaWMgbnVtYmVycyB3aXRoIHRoZWlyIGVxdWl2YWxlbnQgZGVmaW5lIG5hbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTQ3Nzg1ODVkMTM4OWQ4NmQ1ODQ2ZWZlYzI5ZTVmY2U4OTI2ODBjZQpBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNyAxMDozNTo1OSAyMDA3ICswODAwCgogICAgbXBjODN4eDogU3BsaXQgUElCIGluaXQgY29kZSBmcm9tIHBjaS5jIGFuZCBhZGQgUW9jMyBBVE0gY2FyZCBzdXBwb3J0CgogICAgVGhlIHBhdGNoIHNwbGl0IHRoZSBQSUIgaW5pdCBjb2RlIGZyb20gcGNpLmMgdG8gYSBzaW5nbGUgZmlsZSBib2FyZC9mcmVlc2NhbGUvY29tbW9uL3BxLW1kcy1waWIuYwogICAgQW5kIGFkZCBRb2MzIEFUTSBjYXJkIHN1cHBvcnQgZm9yIE1QQzgzNjBFTURTIGFuZCBNUEM4MzJYRU1EUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YWUxNThjZDg3YTRhMjU3MjJiMjc4MzUyNjFiNmZmMGZhMmFhNmE3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE1OjA1OjExIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01NDQ1NUVWQiBmb3IgTUNGNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTE0MzZhODQyNjU0YThkMzkyN2QwODJhOGFlOWVlMGExMGRhNjJkNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxMzoyMDo1MCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTI1M0VWQkUgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTYwNWFhY2Q4MzI0MDk0MTk5NDAyODE2Y2M2ZDkxMjRhYmE1N2I4ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAwNTowNDozMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTI0OUVWQiBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMjhlMWJkOWRhYTZkZTVlYjMzYWU0ODIyYmRhNmIwMDhjY2I0ZTllCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjMyOjA2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIEZyZWVzY2FsZSBNQ0Y1MngyIHBsYXRmb3JtcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NzA0NzBkYmY2ZjRiYjk4NjRlMGQ5N2FlZWRiYzE3YzE2N2M2ZDFjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjU1OjEwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIEVCK01DRi1FVjEyMyBwbGF0Zm9ybQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTkzZDg1OWQ5YjFmY2Q4ZWVhNTJkNTFiMDZlODZjMzhmNzIxMTFiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQ2OjM4IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogdXBkYXRlIFRBU1JFRyBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTUwNTUxMGJmNTZhOWI1NTU4MjQ4ZGQ4YjczZWM5ZDlhMTU1NmEyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQ1OjUxIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogdXBkYXRlIHI1MjAwIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjZmQzYzdiYzgxM2ZiMzE3YWI3YzA3ODFmMGQxODc0YjFjMDg3N2MKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDM6MjAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBpZG1yIHBsYXRmb3JtIE1DRjUyeDIgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY3MDY0MjRkMGJiODUxZmI1MmFmMDBjZDFjMzMwMWU5MWVlN2YyYjAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDE6MDYgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBjb2JyYTUyNzIgcGxhdGZvcm0gZm9yIE1DRjUyeDIgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2MTE1NjY1YjRhNjRjMTBjMDE0NDBjNTc3NDliMjY1ZTA5MDhmYTQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6Mzg6MTUgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MngyIEhlYWRlciBmaWxlcyB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODNlYzIwYmM0MzgwZWViZGRmZGU0NWRhNmUzYTY5YTkyZDRkYjIxZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOToyMToyMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUyeDIgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1MmU3ODMwNGRjYzBhYzQ1OWMwZWExZmE1YmUyNzVjN2QxNjQyY2YKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTg6NDY6MTEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IHVwZGF0ZSBjYWNoZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MTcxOTc3ZmI4ZmQ3N2NmYjY2NzY5NTNmYTlhMDU3ODljNDUwNTEzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE1OjQwOjIwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSBoZWFkZXIgZmlsZSBjbGVhbiB1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjc3YmM1NDdiYTU2MWMyNWVhMzQ0NTdlZDE3YWEwYjJmN2MyNzIzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE1OjM5OjE3IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSBVcGRhdGUgYW5kIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTAzMjdkYzU1NDFmOTQ3YzBjZjdlMzFmZWY4NmM0NzA2MTY5NjA3YQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNjozNTowMiAyMDA3IC0wNTAwCgogICAgQWRkIENPTkZJR19IQVNfRVRIMCB0byBhbGwgYm9hcmRzIHdpdGggVFNFQwoKICAgIFRoZSA4NXh4IGNvZGUgbm93IHJlbGllcyBvbiBDT05GSUdfSEFTX0VUSDAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKICAgIHRvIHVwZGF0ZSBUU0VDMSdzIGRldmljZS10cmVlIG5vZGUsIHNvIHdlIG5lZWQgdG8gYWRkIGl0CiAgICB0byBhbGwgdGhlIGJvYXJkcyB3aXRoIFRTRUNzLiAgRG8gdGhpcyBmb3IgODN4eCBhbmQgODZ4eCwgdG9vLAogICAgc2luY2UgdGhleSB3aWxsIGV2ZW50dWFsbHkgZG8gc29tZXRoaW5nIHNpbWlsYXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2NGVlOTA4YTFiNTI1ZTViYjJiNGNiZWI1YzQ0OWFkNmE0Njk2NjYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDE2IDE1OjA1OjA0IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgTVBDODU0NCBEUyBQQ0kgbWVtb3J5IG1hcAoKICAgIFRoZSBQQ0llIGJ1cyB0aGF0IHRoZSBVTEkgTTE1NzUgaXMgY29ubmVjdGVkIHRvIGhhcyBubyBwb3NzaWJsZSB3YXkgb2YKICAgIG5lZWRpbmcgbW9yZSB0aGFuIHRoZSBmaXhlZCBhbW91bnQgb2YgSU8gJiBNZW1vcnkgc3BhY2UgbmVlZGVkIGJ5IHRoZSBVTEkuCgogICAgU28gbWFrZSBpdCB1c2UgZmFyIGxlc3MgSU8gJiBtZW1vcnkgc3BhY2UgYW5kIGhhdmUgaXQgdXNlIHRoZSBzaGFyZWQgTEFXLiAgVGhpcwogICAgZnJlZSdzIHVwIGEgTEFXIGZvciBQQ0llMSBJTyBzcGFjZS4gIEFsc28gcmVkdWNlIHRoZSBhbW91bnQgb2YgSU8gc3BhY2UgbmVlZGVkCiAgICBieSBlYWNoIGJ1cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGVhNTg3N2UzMWVkNjNhZGU5NDhmZDEyOTM4OTVlYzIzZmUwMTQ3MmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgQXVnIDE2IDExOjAxOjIxIDIwMDcgLTA1MDAKCiAgICBGaXggdXAgc29tZSBmZHQgaXNzdWVzIG9uIDg1NDREUwoKICAgIEl0IGxvb2tzIGxpa2Ugd2UgaGFkIGEgbWVyZ2UgaXNzdWUgdGhhdCBkdXBsaWNhdGVkIGEgYml0IG9mIGNvZGUKICAgIGluIGZ0X2JvYXJkX3NldHVwLglBbHNvLCB3ZSBuZWVkIHRvIHNldCBDT05GSUdfSEFTX0VUSDAgdG8gZ2V0CiAgICB0aGUgTUFDIGFkZHJlc3MgcHJvcGVybHkgc2V0IGluIHRoZSBkZXZpY2UgdHJlZSBvbiBib290IGZvciBUU0VDMQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDdiYzIwNTYwY2I5ZDNkMTg2Y2NhMjY4YzA1YzgyNzYyZThjNTVhZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTU6MTY6MDMgMjAwNyArMDIwMAoKICAgIFBQQzR4eDpIQ1U0LzUgY2xlYW51cAoKICAgIE1pbm9yIGNsZWFudXBzIHRvIGNvbmZpcm0gdG8gdGhlIHUtYm9vdCBjb2Rpbmcgc3R5bGUuCiAgICBTb21lIGdlcm1hbiBleHByZXNzaW9ucyAtPiBlbmdsaXNoLgogICAgSENVNSBlbmZvcmNlcyBhIHVuaXF1ZSBJUCBhZHJlc3MgZm9yIGEgZ2l2ZW4gc2xvdCBpbiB0aGUgcmFjay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDFlNmIwN2M2NDk2N2MxZWIyY2Q4NGZhYTRjMzJiZjJhNzY5YmM4ZWIKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE1OjE2OjAyIDIwMDcgKzAyMDAKCiAgICBQUEM0eHg6SENVNC81IGNsZWFudXAgZWNjL3NkcmFtIGluaXQKCiAgICBNYWtlIGVjYyBpbml0aWFsaXNhdGlvbiByb2J1c3QsIGFzIEREUjItRUNDIGVycm9ycyBtYXkgYmUgZ2VuZXJhdGVkCiAgICB3aGlsZSB6ZXJvaW5nIHRoZSBSQU0uCgogICAgUmV0dXJuIDE2IGJ5dGVzIChhIGNhY2hlbGluZSkgbGVzcyB0aGFuIHRoZSBhdmFpbGFibGUgbWVtb3J5LCBhcyB0aGUKICAgIGJvYXJkIGFuZC9vciBQUEM0NDBFUHggbWlnaHQgaGF2ZSBwcm9ibGVtcyBhY2Nlc3NpbmcgdGhlIGxhc3QgYnl0ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBkMzViNTA4YTU1NTA4NTM1YjZlODQ0NWI3MTg1ODVkMjdkZjczM2QzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjoyOTo1NiAyMDA3IC0wNTAwCgogICAgZmR0OiBzdXBwcmVzcyB1bnVzZWQgdmFyaWFibGUgJ2JkJyB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MmJkOWVlNzc0OTA1ODhkNGRhNzg1ZDc1ODI5Y2E2M2QwMTc2YmFmCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjA2OjUwIDIwMDcgLTA1MDAKCiAgICBGaXggd2FybmluZ3MgZnJvbSBvZl9kYXRhIGNvcHkgZml4CgogICAgRm9yZ290IHRvIGNhc3Qgb2ZfZmxhdF90cmVlIHRvIHVsb25nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjEzYWZkYTc3ZDVlZWMwZjQ3ZDMwMzAyNWIwYzY2MWI3MGU0YzczCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjQ0IDIwMDcgLTA1MDAKCiAgICBEb24ndCB3YWl0IGZvciBkaXNjb25uZWN0ZWQgVFNFQ3MKCiAgICBUaGUgVFNFQyBkcml2ZXIncyBQSFkgY29kZSB3YWl0cyBhIGxvbmcgdGltZSBmb3IgYXV0b25lZ290aWF0aW9uIHRvCiAgICBjb21wbGV0ZSwgZXZlbiBpZiB0aGUgbGluayBpcyBkb3duLiAgVGhlIFBIWSBrbm93cyB0aGUgbGluayBpcwogICAgZG93biBvciB1cCBiZWZvcmUgYXV0b25lZ290aWF0aW9uIGNvbXBsZXRlcywgc28gd2UgY2FuIHNob3J0LWNpcmN1aXQKICAgIHRoZSBwcm9jZXNzIGlmIHRoZSBsaW5rIGlzIGRvd24uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5NmM4M2Q0YWU0NzVhNzBlZjI2MzVjZDBlNzQ4MTc0YzQ0Yzg2MDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6MzQgMjAwNyAtMDUwMAoKICAgIEZpeCBudW1lcm91cyBidWdzIGluIHRoZSA4NTY4IFVFQyBzdXBwb3J0CgogICAgQWN0dWFsbHksIGZpeGVkIGEgbGFyZ2UgYnVnIGluIHRoZSBVRUMgZm9yICphbGwqIHBsYXRmb3Jtcy4KICAgIEhvdyBkaWQgdGhpcyBldmVyIHdvcms/CgogICAgdWVjX2luaXQoKSBkaWQgbm90IGZvbGxvdyB0aGUgc3BlYyBmb3IgZXRoX2luaXQoKSwgYW5kIHJldHVybmVkCiAgICAwIG9uIHN1Y2Nlc3MuICBTd2l0Y2ggaXQgdG8gcmV0dXJuIHRoZSBsaW5rIGxpa2UgdHNlY19pbml0KCkKICAgIChhbmQgMCBvbiBlcnJvcikKCiAgICBUaGUgaW1tYXAgZm9yIHRoZSA4NTY4IHdhcyBkZWZpbmVkIGJhc2VkIG9uIE1QQzg1NjgsIHJhdGhlciB0aGFuCiAgICBDT05GSUdfTVBDODU2OAoKICAgIENPTkZJR19RRSB3YXMgb2ZmCgogICAgQ09ORklHX0VUSFBSSU1FIHdhcyBzZXQgdG8gIkZyZWVzY2FsZSBHRVRIIi4gIE5vdyBpcyAiRlNMIFVFQzAiCgogICAgRml4ZWQgYSBjb21tZW50IGFib3V0IHRoZSByYW5nZXMgZm9yIENPTkZJR19FVEhQUklNRSBpZiBUU0VDX0VORVQgaXMKICAgIGVuYWJsZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2E3OTAxM2UyYWRkYTUzMzMyZGZkMGI1MTEwNjZhODA1ZTkyOWE5ZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzoyNSAyMDA3IC0wNTAwCgogICAgRGVmaW5lIHRzZWMgZmxhZyB2YWx1ZXMgaW4gY29uZmlnIGZpbGVzCgogICAgVGhlIHRzZWNfaW5mbyBzdHJ1Y3R1cmUgYW5kIGFycmF5IGhhcyBhICJmbGFncyIgZmllbGQgZm9yIGVhY2gKICAgIGV0aGVybmV0IGNvbnRyb2xsZXIuICBUaGlzIGZpZWxkIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGVyZSBhcmUKICAgIHNldHRpbmdzLiAgU3dpdGNoIHRvIGRlZmluaW5nIFRTRUNuX0ZMQUdTIGZvciBlYWNoIGNvbnRyb2xsZXIKICAgIGluIHRoZSBjb25maWcgaGVhZGVyLCBhbmQgd2UgY2FuIGdyZWF0bHkgc2ltcGxpZnkgdGhlIGFycmF5LCBhbmQKICAgIGFsc28gc2ltcGxpZnkgdGhlIGFkZGl0aW9uIG9mIGZ1dHVyZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjNzIzODIyOTUwN2U3ZjQ3NTMzYTYxMWVhOGM1MzMxOWQyMzRjZjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6MTMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBidWlsZGluZyBhbGwgYm9hcmRzIHdpdGggYSBUU0VDCgogICAgQ2hhbmdlcyB0byB0aGUgVFNFQyBkcml2ZXIgYWZmZWN0IGFsbW9zdCBhbGwgODN4eCwgODV4eCwgYW5kIDg2eHggYm9hcmRzLgogICAgTm93IHdlIGNhbiBkbyBhIE1BS0VBTEwgdGVzdCBvbiBhbGwgb2YgdGhlbSEKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTBhYWY3MTZjYjBkYzY2MTRkZjU0ZWY3OGJlZDUxNDRhZmQyM2VmOApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNzozMDo1NiAyMDA3IC0wNTAwCgogICAgRml4IG9mX2RhdGEgY29weWluZyBmb3IgQ09ORklHX09GX0ZMQVRfVFJFRS11c2luZyBib2FyZHMKCiAgICBUaGUgZml4LCAiRml4IHdoZXJlIHRoZSAjaWZkZWYgQ0ZHX0JPT1RNQVBTWiBpcyBwbGFjZWQiCiAgICBuZWdsZWN0ZWQgdG8gKmFsc28qIHB1dCB0aGUgY29kZSBpbnNpZGUgdGhlIHNpbWlsYXIgI2lmZGVmCiAgICBmb3IgQ09ORklHX09GX0ZMQVRfVFJFRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzhmOWZlZjdmNDA2MDc4YzhiZjcxOTFlNjY1YTczZjc5NTE1Nzc0NgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE1OjQ2OjQ2IDIwMDcgLTA1MDAKCiAgICBtcGM4ODVhZHM6IERvbid0IGRlZmluZSBDT05GSUdfQlpJUDIuCgogICAgYnppcDIgcmVxdWlyZXMgYSBzaWduaWZpY2FudCBjaHVuayBvZiBtYWxsb2Mgc3BhY2UsIGFuZCB0aGVyZSBpc24ndAogICAgZW5vdWdoIHJvb20gb24gbXBjODg1YWRzICh3aXRoIG9ubHkgOE1CIFJBTSkgZm9yIGJvdGggYnppcDIncyBtYWxsb2MgYXJlYQogICAgYW5kIGEgZG93bmxvYWRlZCBpbWFnZSBhdCAweDQwMDAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMDIyNzVhM2VkOGIxMTQ4ODVmNjcwMmQ2ZDU0NGQwNzgwZGZlNjg5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxNb25zdHJAc2V6bmFtLmN6PgpEYXRlOglUaHUgQXVnIDE2IDA4OjU0OjEwIDIwMDcgKzAyMDAKCiAgICBCaW9zIGVtdWxhdG9yIC0gZml4IG1pY3JvYmxhemUgdG9vbGNoYWluIHByb2JsZW0KCiAgICBtaWNyb2JsYXplIENQVSBoYXZlIHByb2JsZW0gd2l0aCBiaW9zX2VtdWxhdG9yIGNvZGUuCiAgICBNaWNyb2JsYXplIHRvb2xjaGFpbiBkb2Vzbid0IHN1cHBvcnQgUFJBR01BIFBBQ0suCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGE1YTM4ZjRmZDdlNTM2NmQ3MDZmZjZhOTg1ZjliNjcxNWRkYmM5OGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDExOjUxOjA0IDIwMDcgKzAyMDAKCiAgICBNaW5vciBDb2RpbmcgU3R5bGUgZml4OyBVcGRhdGUgQ0hBTkdFTE9HIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZmI2ZTgwYzA2ODQ5ZTMwMTNhYzVjOTM1MGQ4ZWQ5ZTUyOTY3OTkxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDExOjIxOjQ5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSAjd2FybmluZyBpbiBlc2QgYXV0b191cGRhdGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZDc4MDc0ZDJlODA2ZWRjMzgwYzE0NjRlYjllNWRmMzM1ZWNlNjVlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDE3OjMyOjI4IDIwMDcgKzAyMDAKCiAgICBwcGM3eHg6IFVwZGF0ZSBDUENJNzUwIGJvYXJkCgogICAgVGhpcyBzbWFsbCBDUENJNzUwIHVwZGF0ZSBleHRlbmRzIHRoZSBib2FyZCBzcGVjaWZpYyBjb21tYW5kCiAgICAic2hvd19jb25maWciIHRvIGRpc3BsYXkgdGhlIE1hcnZlbGwgc3RyYXBwaW5nIHJlZ2lzdGVycyBhbmQKICAgIGV4dGVuZHMgdGhlIFBDSSBJREUgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZWluaGFyZCBBcmx0IDxyZWluaGFyZC5hcmx0QGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzhjZmY1MGVkYmE2YjE1MDhlYjE1YzJmNTNjZTk2NmFjODkxZWI5ZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVGh1IEF1ZyAxNiAxMDo0NjoyOCAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ2hhbmdlcyBmb3IgYmlvc19lbXVsYXRvciBjb2RlIGZvciBvdGhlcnMgYXJjaGl0ZWN0dXJlCgpjb21taXQgNmUwZTIyNTNmMDM5MzQ0ZjhlYmQyNzg3Mjg1ZmRiYTkwZTY3MTRlOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVGh1IEF1ZyAxNiAxMDo0NTowOSAyMDA3ICswMjAwCgogICAgW0ZJWF0gUmVtb3ZlIHVudXNlZCBpbmNsdWRlIGZpbGUKCmNvbW1pdCA5ZGU0NjliZDk2MGNjMTg3MGJiNDBkNjY3MmVkNDI3MjZiOGI1MGQ3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDEwOjE4OjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE9ubHkgZW5hYmxlIFBPU1QgRlBVIHRlc3Qgb24gU2VxdW9pYSBhbmQgbm90IFJhaW5pZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmRhMGM1YmQ0YTUzZTQwZWI0ZjdlYjcyYTRjMDUxZWNhYmFkNzgzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAwOTo1NDo1MSAyMDA3ICswMjAwCgogICAgQWRkIG1pc3NpbmcgcmFpbmllciAoUFBDNDQwR1J4KSB0YXJnZXQgdG8gTUFLRUFMTCBhbmQgTUFJTlRBSU5FUnMgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDJiYTcwMjJmNjJiYjc1OTA4Mjk2YzU4YzYzODY2ZTFkMjk0YjY5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAwOTo1MjoyOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgU2VxdW9pYS9SYWluaWVyIGJvb3RzdHJhcCBjb21tYW5kCgogICAgQXMgc3VnZ2VzdGVkIGJ5IERhdmlkIE1pdGNoZWxsLCBoZXJlIGFuIHVwZGF0ZSBmb3IgdGhlIFNlcXVvaWEvUmFpbmllcgogICAgYm9vdHN0cmFwIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1Y2M0ZTQ4MjM2NjhlODc0NTg1NDg5OWNmYWVkZDQ0ODliZWIwZWYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjM5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBlbmFibGUgbGliZmR0IGJ5IGRlZmF1bHQgb24gZnJlZXNjYWxlIGJvYXJkcwoKICAgIHRoaXMgZW5hYmxlcyBsaWJmZHQgY29kZSBieSBkZWZhdWx0IGZvciB0aGUKICAgIGZyZWVzY2FsZSBtcGM4MzEzZXJkYiwgbXBjODMyeGVtZHMsIG1wYzgzNDllbWRzLAogICAgbXBjODM0OWl0eCBhbmQgZ3AgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2ZkZTllOGIyMmNmYmQ3YWY0ODkyMTQ3NThmOTgzOWEyMDY1NzZjYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MzMgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1pZ3JhdGUgcmVtYWluaW5nIGZyZWVzY2FsZSBib2FyZHMgdG8gbGliZmR0CgogICAgdGhpcyBhZGRzIGxpYmZkdCBzdXBwb3J0IGNvZGUgZm9yIHRoZSBmcmVlc2NhbGUKICAgIG1wYzgzMTNlcmRiLCBtcGM4MzJ4ZW1kcywgbXBjODM0OWVtZHMsIG1wYzgzNDlpdHgsCiAgICBhbmQgZ3AgYm9hcmRzLgoKICAgIEJvYXJkcyByZW1haW4gY29tcGF0aWJsZSB3aXRoIE9GX0ZMQVRfVFJFRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZhMTZlMGRmY2M0MTE5YjQ2YWRiMWRjZTJkNmM4ZmIzYzVkMTA4ZTEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjI2IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtb3ZlIGNvbW1vbiAvbWVtb3J5IG5vZGUgdXBkYXRlIG1lY2hhbmlzbSB0byBjcHUuYwoKICAgIGFsc28gYWRkcyBjb21tb24gcHJvdG90eXBlcyB0byBpbmNsdWRlL2NvbW1vbi5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGY5ZTBlOWYzMzlhZWU0Y2UzMWEzMzhkNWYyNzM1NmViNTQ1N2Y4NQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IHJlbWFpbmluZyA4MzYwIGxpYmZkdCBmaXhlcwoKICAgIFBDSSBjbG9ja3MgYW5kIFFFIGZyZXF1ZW5jaWVzIHdlcmVuJ3QgYmVpbmcgdXBkYXRlZCwgYW5kIHRoZSBjb3JlIGNsb2NrCiAgICB3YXMgYmVpbmcgdXBkYXRlZCBpbmNvcnJlY3RseS4gIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgL21lbW9yeSBub2RlIGlmCiAgICBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QgcHJpb3IgdG8gdXBkYXRlLgoKICAgIHBsdXMgc29tZSBjb3NtZXRpYyB0cmltbWluZyB0byBzaW5nbGUgbGluZSBjb21tZW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0YjJhYzVlZDlhYWZmOTkyMGQ0ODdiZmY4YTU5Njk2YzA4M2E1MjQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjEyIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggVUVDMi0+MSB0eXBvIGluIGxpYmZkdCBzZXR1cCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOWZhMWMzNTM2ODQ4NGQ0ZWQxMGRkY2U4YTc3OTNjMjE4NjJlM2EzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDowNSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogYWRkIE1BSU5UQUlORVIgYW5kIE1BS0VBTEwgZW50cmllcyBmb3IgdGhlIG1wYzgzMjNlcmRiCgogICAgYW5kIHJlb3JkZXIgdGhlIGV4aXN0aW5nIDgzeHggbWFpbnRhaW5lcnMgYWxwaGEuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YjRkZTkzMDlkN2EwM2FhMWRiMmU1MzkxYWI2OTYzNjMzOTFmNDYwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglXZWQgQXVnIDE1IDIxOjE1OjA1IDIwMDcgKzAyMDAKCiAgICBbRklYXSBSZXNvbHZlIHByb2JsZW0gd2l0aCB3YXJuaW5ncwogICAgbWljcm9ibGF6ZSB0b29sY2hhaW4gZG9uJ3Qgc3VwcG9ydCBQUkFHTUEgUEFDSy4KCmNvbW1pdCBkMWVkMjhjZjM2YWI2YjFkNGM0Nzk4MDlkZTcyNTJiZjUzZDJmMmQ0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglXZWQgQXVnIDE1IDIxOjA1OjA3IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb3JyZWN0aW9uIGNvbW1hbmQgc2V0dGluZyBmb3IgTWljcm9ibGF6ZSBib2FyZHMKCmNvbW1pdCA3YWE2M2Q4Y2QzMGFiMjBhYzJmZDFhYjg2ZTYwNDcxZGU4YjFmMWU1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglXZWQgQXVnIDE1IDIxOjAzOjQxIDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb3JyZWN0aW9uIGNvbW1hbmQgZGVmaW5pdGlvbgoKY29tbWl0IDMwYjUyZGY5ZTkwNmJmMGU0NjU5MTZjMmM2YmI1MTkyYjQzOGUwYjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDExOjU1OjM1IDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggbGluZ2VyaW5nIENGR19DTURfKiByZWZlcmVuY2VzIGluIHNiYzg2NDFkLmgKCiAgICBSZW1vdmUgYSBsZWZ0b3ZlciBpbiBuZXQvdGZ0cC5jIHdoaWxlIHdlJ3JlIGF0IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNlOTE3NzQyYjFlNDhmYWE5YmY5YTk3NTc1NDVlNTZmYjRjZmU0NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTI6MjA6NDAgMjAwNyAtMDUwMAoKICAgIE1vdmUgdGhlIE1QQzg2NDFIUENOIGJvYXJkIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBNaW5vciBwYXRoIGNvcnJlY3Rpb25zIG5lZWRlZCB0byBlbnN1cmUgYnVpbGRhYmlsaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODY2MjU3N2ZlMzZmZGI2YTQ0YjU1Yjk5OGQ5ZGFhYzYzOTJhNzM2YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTE6NDY6MjIgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBsaW5nZXJpbmcgQ0ZHX0NNRF8qIHJlZmVyZW5jZXMgaW4gc2JjODY0MWQuaAoKICAgIFJlbW92ZSBhIGxlZnRvdmVyIGluIG5ldC90ZnRwLmMgd2hpbGUgd2UncmUgYXQgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMTBmNDYzYzcxOTE3YjdhNDQ5NWMyMTAzYzIyOGI5YzE3OWFlNjRkCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglXZWQgQXVnIDE1IDExOjEzOjE1IDIwMDcgLTA0MDAKCiAgICBGaXggd2hlcmUgdGhlICNpZmRlZiBDRkdfQk9PVE1BUFNaIGlzIHBsYWNlZC4KCiAgICBDb21taXQgMDczZTFiNTA5OTgwY2VmZTZmNTNjMmQ3ZmJiY2QxMzVkZjFlMzkyNCAiRml4IGluaXRyZC9kdGIKICAgIGludGVyYWN0aW9uIiBwdXQgdGhlIG5ldyBjb2RlIG91dHNpZGUgb2YgdGhlICNpZiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpCiAgICB3aGVuIGl0IHNob3VsZCBoYXZlIGdvbmUgaW5zaWRlIG9mIHRoZSBjb25kaXRpb25hbC4gIEFzIGEgcmVzdWx0LCBpdAogICAgYnJva2Ugbm9uLUxJQkZEVCBib2FyZCBidWlsZHMuCgogICAgQWxzbyBhZGRlZCBhIG1pc3NpbmcgIm5vdC4iIHRvIHRoZSBjb21tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMGUxOTIwOTc2NzE5NGE5N2NlYzZkOTNkYmE5ZTY0ZDFkYThkNTQ4ZQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTI6MTQ6MjMgMjAwNyArMDIwMAoKICAgIFBQQzR4eDpIQ1U0LzUtQm9hcmQgZml4IGNvbXBpbGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNTk0ZTc5ODM4Y2U1MDc4YTkwZDBjMjdhYmIyYjJkNjFkNWY4ZThhNwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6MDY6NDUgMjAwNyAtMDUwMAoKICAgIEZpeCBtYWxsb2Mgc2l6ZSBlcnJvciBpbiBhaGNpX2luaXRfb25lLgoKICAgIFR5cGljYWxseSB0aGlzIGNhdXNlcyBzY3NpIGluaXQgdG8gY29ycnVwdCB0aGUKICAgIGRldmxpc3QgYW5kIGJyZWFrIHRoZSBjb25pbmZvIGNvbW1hbmQuCiAgICBGaXggYSBjb21waWxlciBzaXplIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzNjFhY2Q2NGZkMjUyNWMwODFiOWIyODhiMDgwNGVmZTIwOWMwZTkKQXV0aG9yOiBrc2lAa29pOC5uZXQgPGtzaUBrb2k4Lm5ldD4KRGF0ZToJVHVlIEF1ZyAxNCAxMDowMjoxNiAyMDA3IC0wNzAwCgogICAgVEkgRGFWaW5jaSAtIGZpeCB1bnN1cHBvcnRlZCAlaGh4IGZvcm1hdAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgoKY29tbWl0IGYwMWRiYjU0MjRhODE0NTNjODExOTBkZDMwZTk0NTg5MTQ2NmY2MjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE4OjQyOjM2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA3M2UxYjUwOTk4MGNlZmU2ZjUzYzJkN2ZiYmNkMTM1ZGYxZTM5MjQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MzI6NTkgMjAwNyAtMDUwMAoKICAgIEZpeCBpbml0cmQvZHRiIGludGVyYWN0aW9uCgogICAgVGhlIG9yaWdpbmFsIGNvZGUgd291bGQgd3JvbmdseSByZWxvY2F0ZSB0aGUgYmxvYiB0byBiZSByaWdodCBiZWZvcmUKICAgIHRoZSBpbml0cmQgaWYgaXQgZXhpc3RlZC4gIFRoZSBibG9iICptdXN0KiBiZSB3aXRoaW4gQ0ZHX0JPT1RNQVBTWiwKICAgIGlmIGl0IGlzIGRlZmluZWQuICBTbyB3ZSBtYWtlIHR3byBjaGFuZ2VzOgoKICAgIDEpIGZsYWcgdGhlIGJsb2IgZm9yIHJlbG9jYXRpb24gd2hlbmV2ZXIgaXRzIGFkZHJlc3MgaXMgYWJvdmUgQk9PVE1BUFNaCgogICAgMikgSWYgdGhlIGJsb2IgaXMgYmVpbmcgcmVsb2NhdGVkLCByZWxvY2F0ZSBpdCBiZWZvcmUga2JkLCBub3QgaW5pdHJkCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1NGI5NzAxNzM3NjkzMDdhMTE2YmQzNDAyOGI2ZDBjMmVlYTJhNGUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDE1OjQwOjAwIDIwMDcgKzAxMDAKCiAgICBTdXBwbHkgc3BpIGludGVyZmFjZSBpbiBhdDQ1LmMKCmNvbW1pdCA0Y2U4NDZlYzU5ZjM2Yjg1ZDY2NDRhNzY5NjkwYWQzZmViNjY3NTc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE1OjEyOjAxIDIwMDcgKzAyMDAKCiAgICBQT1NUOiBGaXggbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MjlkOTU3MWY2MDYzMWFlOGEyZmUxMmIxMWJlNGM3NWIwYzJiMzdjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE1OjAzOjE3IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NzllOTc1MTE3YTc1ZTkxZmNlYmUyMjZhNjMxMDRkYmZiOTI0YWIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE0OjQ0OjQxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIFpldXMgKFBQQzQwNUVQKSBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM1YTE3MmE1ZmQ2MzZjMTI0Njc0MjllM2Y3OTEwZTUzNzczOTc5YzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6NDE6NTUgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBvcHRpb24gZm9yIGV4dGVybmFsIGV0aGVybmV0IGxvb3BiYWNrIHRlc3QKCiAgICBXaGVuIENGR19QT1NUX0VUSEVSX0VYVF9MT09QQkFDSyBpcyBkZWZpbmVkLCB0aGUgZXRoZXJuZXQgUE9TVAogICAgaXMgbm90IGRvbmUgdXNpbmcgYW4gaW50ZXJuYWwgbG9vcGJhY2sgY29ubmVjdGlvbiwgYnV0IGJ5IGFzc3VtaW5nCiAgICB0aGF0IGFuIGV4dGVybmFsIGxvb3BiYWNrIGNvbm5lY3RvciBpcyBwbHVnZ2VkIGludG8gdGhlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjJiNDAxMGFlNDI2MjQ1MTcyOTg4ODA0ZWU4ZDkxOTNmYjQxMDM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE0OjM5OjQ0IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgcHBjNDA1IHN1cHBvcnQgdG8gY2FjaGUgYW5kIFVBUlQgUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzQyZjM2ZjE1MDc0YmQ5ODA4YTdkYmQ3ZWY2MTFmYWQ5YmY1MzdjCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDo0NjozMiAyMDA3ICswMTAwCgogICAgUmVwbGFjZSBsb3N0IGVuZCBvZiBhdDQ1LmMuCgpjb21taXQgNjVkN2FkYTY0NTU3ZTc2MDk0YjRmZDNiYWQzMGEwZjE4ZjVmYjJiMgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MzA6MDYgMjAwNyArMDEwMAoKICAgIFVwZGF0ZSBNYWtlZmlsZXMgZm9yIG1lcmdlZCBhbmQgc3BsaXQgYXQ0NS5jLgoKY29tbWl0IDM0NTRjZWNlMmRiNTdjYjllYjcwODc5OTVmN2U3MzA2NmExNjNmNzEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjIxOjA2IDIwMDcgKzAxMDAKCiAgICBEZWxldGUgdGhlIG1lcmdlZCBmaWxlcy4KCmNvbW1pdCBkY2JmZDJlNTY0OWY5N2FhMDRmYmJjNmVhMmIwMDhhYTQ0ODZlMjI1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDoxNDowNSAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBmaWxlcy4KCmNvbW1pdCBkNGZjNjAxMmZkMGE1YzIxMWI4MjU2OTFmNDRiMDZmODAzMmMwNTUxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDoxMDo1MiAyMDA3ICswMTAwCgogICAgQWRkIE1BQ0hfVFlQRSByZWNvcmRzIGZvciBzZXZlcmFsIEFUOTEgYm9hcmRzLgogICAgTWVyZ2UgdG8gdHdvIGF0NDUuYyBmaWxlcyBpbnRvIGEgY29tbW9uIGZpbGUsIHNwbGl0IHRvIGF0NDUuYyBhbmQgc3BpLmMKICAgIEZpeCBzcGVsbGluZyBlcnJvciBpbiBETTkxNjEgUEhZIFN1cHBvcnQuCiAgICBJbml0aWFsaXplIGF0OTFybTkyMDAgYm9hcmQgKGFuZCBzZXQgTEVEKS4KICAgIEFkZCBQSU8gY29udHJvbCBmb3IgYXQ5MXJtOTIwMGRrIExFRHMgYW5kIE11eC4KICAgIENoYW5nZSBkYXRhZmxhc2ggcGFydGl0aW9uIGJvdW5kYXJpZXMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIExpbnV4IDIuNi4KCiAgICBTaWduZWQtb2ZmLWJ5OglQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgogICAgU2lnbmVkLW9mZi1ieToJVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+Cgpjb21taXQgNGVmMzVlNTNjNjkzNTU2YzU0YjBjMjJkNmY4NzNkZTg3YmFkZTI1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMDk6NTQ6NDYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NWViNWNhZjZiOTA2ZjdlYzViNTQ4MTRlOGM3Yzc0ZjU1OTg2YmI3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAwOTo0NzoyNyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXA7IHJlYnVpbGQgQ0hBTkdFTE9HCgpjb21taXQgN2YzZjJiZDJkYzA4ZTBiMDVlMTg1NjYyY2EyZTJkMjgzNzU3MTA0YQpBdXRob3I6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBsaW51eGJveC4obm9uZSk+CkRhdGU6CVR1ZSBGZWIgMjcgMTk6NDI6MjIgMjAwNyAtMDcwMAoKICAgIDg1eHhDRFM6IEFkZCBtYWtlIHRhcmdldHMgZm9yIGxlZ2FjeSBzeXN0ZW1zLgoKICAgIFRoZSBQQ0kgSUQgc2VsZWN0IHZhbHVlcyBvbiB0aGUgQXJjYWRpYSBtYWluIGJvYXJkIGRpZmZlciBkZXBlbmRpbmcKICAgIG9uIHRoZSB2ZXJzaW9uIG9mIHRoZSBoYXJkd2FyZS4gVGhlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24gc3VwcG9ydHMKICAgIFJldiAzLjEuIFRoZSBsZWdhY3kgdGFyZ2V0IHN1cHBvcnRzIFJldiAyLnguCgogICAgU2lnbmVkLW9mZi1ieSBSYW5keSBWaW5zb24gPHJ2aW5zb25AbXZpc3RhLmNvbT4KCmNvbW1pdCBlNDEwOTRjN2UzODE3N2M3NTVmYmQ5YjE4MjAxODA2OTYxNGYwODBkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAxOjUwOjA5IDIwMDcgLTA1MDAKCiAgICA4NXh4Q0RTOiBFbmFibGUgdGhlIFZJQSBQQ0ktdG8tSVNBIGJyaWRnZS4KCiAgICBBdXRob3I6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBsaW51eGJveC4obm9uZSk+CgogICAgRW5hYmxlIHRoZSBQQ0ktdG8tSVNBIGJyaWRnZSBpbiB0aGUgVklBIFNvdXRoYnJpZGdlIGxvY2F0ZWQgb24gdGhlCiAgICBBcmNhZGlhIG1haW4gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFuZHkgVmluc29uIDxydmluc29uQG12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRhOWQ0NjEwZDc2ZTUyYzRkMjBhOGYzZDg0MzM0MzlhN2ZjZjViNzEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDA6MTQ6MjUgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBVRUMgdG8gODU2OAoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzU5ZTQwOTFmZmUwMTQ4Mzk4YjllOWZmMTRhMDE5ZWEwMzhiNzQzMgpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTkgMTQ6MTg6MzQgMjAwNyAtMDQwMAoKICAgIEFkZCBQQ0kgc3VwcG9ydCBmb3IgTVBDODU2OE1EUyBib2FyZAoKICAgIFRoaXMgcGF0Y2ggaXMgYWdhaW5zdCB1LWJvb3QtbXBjODV4eC5naXQgb2Ygd3d3LmRlbnguY29tCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDExMWQ2MzgyYzk5ZmRlYTA4YzIzMTJlZWVhZTg3ODY5NDVlMTg5YQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTkgMTQ6MTg6MzIgMjAwNyAtMDQwMAoKICAgIEVtcGlyaWNhbGx5IHNldCBjcG8gYW5kIGNsa19hZGp1c3QgZm9yIG1wYzg1eHggRERSMiBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBpcyBhZ2FpbnN0IHUtYm9vdC1tcGM4NXh4LmdpdCBvZiB3d3cuZGVueC5jb20KCiAgICBTZXR0aW5nIGNwbyB0byAweDkgZm9yIGZyZXF1ZW5jaWVzIGhpZ2hlciB0aGFuIDMzM01IeiBpcyB2ZXJpZmllZCBvbgogICAgYm90aCBNUEM4NTQ4Q0RTIGJvYXJkIGFuZCBNUEM4NTY4TURTIGJvYXJkLCBlc3BlY2lhbGx5IGZvciBzdXBwb3J0aW5nCiAgICA1MzNNSHogRERSMi4KCiAgICBTZXR0aW5nIGNsa19hZGp1c3QgdG8gMHg2KDMvNCBsYXRlIGN5Y2xlKSBmb3IgTVBDODU2OE1EUyBib2FyZCBpcyBmb3IKICAgIEREUjIgb24gYWxsIGN1cnJlbnQgYm9hcmQgdmVyc2lvbnMgZXNwZWNpYWxseSB2ZXIgMS45MiBvciBsYXRlciB0byBicmluZwogICAgdXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZGIwYmVmNTllYWIxMTU1ODAxNjE4Y2VmNWM0ODFlOTc1NTNiNTk3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyA3IDE4OjA3OjI3IDIwMDcgLTA1MDAKCiAgICBVc2UgYW4gYWJzb2x1dGUgYWRkcmVzcyB3aGVuIGp1bXBpbmcgb3V0IG9mIDRrIGJvb3QgcGFnZQoKICAgIE9uIGU1MDAgd2hlbiB3ZSBsZWF2ZSB0aGUgNGsgYm9vdCBwYWdlIHdlIHNob3VsZCB1c2UgYW4gYWJzb2x1dGUgYWRkcmVzcyBzaW5jZQogICAgd2UgZG9uJ3Qga25vdyB3aGVyZSB0aGUgYm9hcmQgY29kZSBtYXkgd2FudCB1cyB0byBiZSByZWFsbHkgcnVubmluZyBhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDM5OTgwYzYxMGM5YTRjMzgxOTA3YzllMWQxYjljMGUxYzBkY2E1N2EKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTMgMTQ6NDk6NTkgMjAwNyAtMDUwMAoKICAgIE1QQzg1eHggQkEgYml0cyBub3Qgc2V0IGZvciAzLWJpdCBiYW5rIGFkZHJlc3MgRElNTQoKICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHNldCB0aGUgbnVtYmVyIG9mIGJhbmsgYWRkcmVzcyBiaXRzCiAgICAoQkEpIGluIHRoZSBwcm9jZXNzb3IuIFRoZSBkZWZhdWx0IGFzc3VtZXMgMiBsb2dpY2FsIGJhbmsgYml0cy4gVGhpcwogICAgd29ya3MgZmluZSBmb3IgYSBESU1NIHRoYXQgdXNlcyBkZXZpY2VzIHdpdGggNCBpbnRlcm5hbCBiYW5rcyAoU1BECiAgICBieXRlMTcgPSAweDQpIGJ1dCBuZWVkcyB0byBiZSBzZXQgYXBwcm9wcmlhdGVseSBmb3IgYSBESU1NIHRoYXQgdXNlcwogICAgZGV2aWNlcyB3aXRoIDggaW50ZXJuYWwgYmFua3MgKFNQRCBieXRlMTcgPSAweDgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyZWcgRGF2aXMgPERhdmlzR0BlbWJlZGRlZHBsYW5ldC5jb20+Cgpjb21taXQgNmM1NDM1OTdiYjRiMWVjZjVkODU4OWY3YWJiMGYzOTkyOWZiN2ZkMQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMyAxNDozODowNiAyMDA3IC0wNTAwCgogICAgRml4IG1pbm9yIDg1eHggd2FybmluZ3MKCiAgICBTb21lIHBhdGNoZXMgaGFkIGluc2VydGVkIHdhcm5pbmdzIGludG8gdGhlIGJ1aWxkOgogICAgKiBtcGM4NTYwYWRzIGRlY2xhcmVkIGRhdGEgd2l0aG91dCB1c2luZyBpdAogICAgKiBjcHVfaW5pdCBkZWNsYXJlZCBlY20gYW5kIGltbWFwIHdpdGhvdXQgdXNpbmcgaXQgaW4gYWxsIENPTkZJR3MKICAgICogTVBDODU0OENEUy5oIGhhZCBpdHMgZGVmYXVsdCBmaWxlbmFtZXMgY2hhbmdlZCBzbyB0aGF0IHRoZXkgY29udGFpbmVkCiAgICAgICJcbSIgaW4gdGhlIHBhdGhzLiAgTWFkZSB0aGUgZGVmYXVsdHMgbm90IFdpbmRvd3Mtc3BlY2lmaWMgKG9yCiAgICAgIGFueXRoaW5nLXNwZWNpZmljKQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMmNmZjZiMTA0ZjgyYjk5M2JlZjYwODZjZTBjOTcxNTliYmUxYWRkCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo1MiAyMDA3IC0wNTAwCgogICAgODU0OGNkcyBQQ0lFIHN1cHBvcnQuCgogICAgTWFrZSB0aGUgZWFybHkgTDEgY2FjaGUgc3RhY2sgcmVnaW9uIGd1YXJkZWQgdG8gcHJldmVudCBzcGVjdWxhdGl2ZQogICAgZmV0Y2hlcyBvdXRzaWRlIHRoZSBsb2NrZWQgcmFuZ2UuCgogICAgVXNlIF9QSFlTIGRlZmluZXMsIG5vdCBfTUVNIGZvciBjcHUtc2lkZSBQQ0kgbWVtb3J5IG1hcHBlZCByZWdpb25zLgogICAgaW5pdC5TIHdoaXRlc3BhY2UgY2xlYW51cC4KCiAgICBBbGxvdyBURVhUX0JBU0UgdmFsdWUgdG8gYmUgc3BlY2lmaWVkIG9uIGNvbW1hbmQgbGluZS4gIFRoaXMgYWxsb3dzIGl0CiAgICB0byBiZSBzZXQgdG8gMHhmZmZjMDAwMCB3aGljaCBjdXRzIHRoZSB1Ym9vdCBiaW5hcnkgaW4gaGFsZi4KCiAgICBDbGVhciBhbmQgZW5hYmxlIGxiYyBhbmQgZWNtIGVycm9ycy4KCiAgICBVcGRhdGUgbGFzdF9idXNubyBpbiBkZXZpY2UtdHJlZSBmb3IgcGNpIGFuZCBwY2llLgoKICAgIFJlbW92ZSBsb2FkIG9mIG9ic29sZXRlIGNwdS9tcGM4NXh4L3BjaS4wCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODM3ZjFiYTA1Y2ZiMjQ4YWJhNWFiOGUxZmIxYmZlZWZhMDdkNTk2MgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NTEgMjAwNyAtMDUwMAoKICAgIDg1NDRkcyBQQ0lFIHN1cHBvcnQKCiAgICBQQ0kxIExBVyBtYXBwaW5nIHNob3VsZCB1c2UgQ0ZHX1BDSTFfTUVNX1BIWSBhbmQgbm90IF9CQVNFIGFkZHJlc3MuCgogICAgRW5hYmxlIExCQyBhbmQgRUNNIGVycm9ycyBhbmQgY2xlYXIgZXJyb3IgcmVnaXN0ZXJzLgoKICAgIEFkZCB0ZnRwZmxhc2ggZW52IHZhciB0byBnZXQgdWJvb3QgZnJvbSB0ZnRwIHNlcnZlciBhbmQgZmxhc2ggaXQuCgogICAgQWRkIHBjaS9wY2llIGNvbnZlbmllbmNlIGVudiB2YXJzIHRvIGRpc3BsYXkgcmVnaXN0ZXIgc3BhY2U6CiAgICAgICJydW4gcGNpZTNyZWdzIiB0byBzZWUgYWxsIHBjaWUzIGNjc3IgcmVnaXN0ZXJzCiAgICAgICJydW4gcGNpZTNjZmciIHRvIHNlZSBhbGwgY2ZnIHJlZ2lzdGVycwogICAgV2hpdGVzcGFjZSBjbGVhbnVwIGFuZCBNUEM4NTQ0RFMuaAoKICAgIEVuYWJsZSBDT05GSUdfSU5URVJSVVBUUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MWEyMWU5ODBhN2I5MTg4NDI0ZDA0ZjFjMjY1ZmRjNWMyMWM3ZTg1CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAxOjM0OjIxIDIwMDcgLTA1MDAKCiAgICA4NXh4IHN0YXJ0LlMgY2xlYW51cCBhbmQgZXhjZXB0aW9uIHN1cHBvcnQKCiAgICBGcm9tOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKICAgIFN1cHBvcnQgZXh0ZXJuYWwgaW50ZXJydXB0cyBmcm9tIHBsYXRmb3JtIHRvIGVsaW1pbmF0ZSBzeXN0ZW0gaGFuZ3MuCiAgICBEZWZpbmUgQ09ORklHX0lOVEVSUlVQVFMgYm9hcmQgY29uZmlndXJlIG9wdGlvbiB0byBlbmFibGUuCiAgICBFbmFibGUgZWNtLCBkZHIsIGxiYywgYW5kIHBjaS9wY2llIGVycm9yIGludGVycnVwdHMgaW4gUElDLgoKICAgIFJlbW92ZSBleHRyYSBjcHUgaW5pdGlhbGl6YXRpb24gcmVkdW5kYW50IHdpdGggaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24uCiAgICBXaGl0ZXNwYWNlIGNsZWFudXAuCgogICAgRGVmaW5lIGFuZCB1c2UgX1NUQVJUX09GRlNFVCBjb25zaXN0ZW50IHdpdGggb3RoZXIgcHJvY2Vzc29ycyB1c2luZwogICAgcHBjX2FzbS50bXBsCgogICAgTW92ZSBhZGRpdGlvbmFsIGNvZGUgZnJvbSAudGV4dCB0byBib290IHBhZ2UgdG8gbWFrZSByb29tIGZvcgogICAgZXhjZXB0aW9uIHZlY3RvcnMgYXQgc3RhcnQgb2YgaW1hZ2UuCgogICAgSGFuZGxlIE1hY2hpbmUgQ2hlY2ssIEV4dGVybmFsIGFuZCBDcml0aWNhbCBleGNlcHRpb25zLgoKICAgIEZpeCBlNTAwIG1hY2hpbmUgY2hlY2sgZXJyb3IgZGV0ZXJtaW5hdGlvbiBpbiB0cmFwcy5jCgogICAgVEVYVF9CQVNFIGNhbiBub3cgYmUgMHhmZmZjXzAwMDAgLSB3aGljaCBjdXRzIGJpbmFyeSBpbWFnZSBpbiBoYWxmLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdiZDMwZmM0YTY0NzViNDFkNjY3OWFlM2FhZmM5ZmE1MDUyNjBjNDcKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDE6MzM6MTggMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwYzdmOWIwZGU0ZTMwMDM3MGFkZmM3MDQxMjhmYTBmNzlhMTQzYjYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ4IDIwMDcgLTA1MDAKCiAgICA4NXh4IGFsbG93IGRlYnVnZ2VyIHRvIGNvbmZpZ3VyZSBkZHIuCgogICAgT25seSBjaGVjayBmb3IgbXBjODU0OCByZXYgMSB3aGVuIGNvbXBpbGVkIGZvciA4NTQ4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI5MzcyZmYzOGM1YmFhYjdkMGUzYThjMTRmZTExZmExOTRhMzg3MDQKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ3IDIwMDcgLTA1MDAKCiAgICBtcGM4NXh4IEwyIGNhY2hlIHJlcG9ydGluZyBhbmQgU1JBTSByZWxvY2F0aW9uIG9wdGlvbi4KCiAgICBBbGxvdyBkZWJ1Z2dlciB0byBvdmVycmlkZSBmbGFzaCBjczAvY3MxIHNldHRpbmdzIHRvIGVuYWJsZSBhbHRlcm5hdGUKICAgIGJvb3QgcmVnaW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQxZjBmOGZiMWFiOTJmMGNiYTdkMzI5ZGU5MDA3MGY4MjJmODI5OWYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ2IDIwMDcgLTA1MDAKCiAgICBlNTAwIG5lZWRzIHBwY19hc20udG1wIE1DS19FWENFUFRJT04KCiAgICBBbHdheXMgZGVmaW5lIE1DS19FWENFUFRJT04gbWFjcm8gLSBzbyBlNTAwIGNhbiB1c2UgaXQgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUzYTVjNDI0YmY4NjU1YjdiNGUyYzMwNWE0NDE5NjMyNTlhMjZhODEKQXV0aG9yOiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTA6NDE6MDcgMjAwNyAtMDUwMAoKICAgIG11bHRpY2FzdCB0ZnRwOiBSRkMyMDkwCgogICAgSW1wbGVtZW50ZWQgSUVURiBSRkMyMDkwLCBNdWx0aWNhc3QgVEZUUC4gIEluaXRpYWwgaW1wbGVtZW50YXRpb24KICAgIG9uIFJlYWx0ZWsgUlRMODEzOSBhbmQgRnJlZXNjYWxlIFRTRUMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNWQxMTBmMGFhNjlmMDY1ZWUzODZlYzE4NDBkZmVlMWU4Y2M0NmJjMQpBdXRob3I6IFdpbHNvbiBDYWxsYW4gPHdjYWxsYW5Ac2F2YW50YXYuY29tPgpEYXRlOglTYXQgSnVsIDI4IDEwOjU2OjEzIDIwMDcgLTA0MDAKCiAgICBOZXcgQ09ORklHX0JPT1RQX1NFUlZFUklQIG9wdGlvbgoKICAgIEFkZGVkIENPTkZJR19CT09UUF9TRVJWRVJJUCB0byBhbGxvdyB0aGUgdGZ0cCBzZXJ2ZXIgdG8gYmUgZGlmZmVyZW50CiAgICBmcm9tIHRoZSBib290cCBzZXJ2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXaWxzb24gQ2FsbGFuIDx3Y2FsbGFuQHNhdmFudGF2LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDUwY2NhOGI5NzZlYzc0MDY5ODYwMjA4YzM2ZTY0Y2U4ZjRkNWU0YzEKQXV0aG9yOiBNaWtlIFJhcG9wb3J0IDxtaWtlQGNvbXB1bGFiLmNvLmlsPgpEYXRlOglTdW4gQXVnIDEyIDA4OjQ4OjI3IDIwMDcgKzAzMDAKCiAgICBBZGQgYWJpbGl0eSB0byB0YWtlIE1BQyBhZGRyZXNzIGZyb20gdGhlIGVudmlyb25tZW50IHRvIERNOTAwMCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIFJhcG9wb3J0IDxtaWtlQGNvbXB1bGFiLmNvLmlsPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgYmU1ZDcyZDEwZDQ3NjA5MzI2MjI2MjI1MTgxZTMwMWZiOWEzM2I1OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgMTMgMjE6NTc6NTMgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2NhMzQ5NjdjYmQxM2ZmNmJkMzUyYmUyOWUzZjFjYzg4YWIyNGMwNQpBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVNhdCBBdWcgMTEgMDY6NTQ6NTggMjAwNyAtMDUwMAoKICAgIE1vZGlmeSBTQkM4NjQxRCB0byB1c2UgbmV3IEZyZWVzY2FsZSBQQ0kgcm91dGluZXMKCiAgICBQQ0ktRXhwcmVzcyBzb2NrZXRzIDEgYW5kIDIgdmVyaWZpZWQgd29ya2luZyB3aXRoIEludGVsIFByby8xMDAwIFBUCiAgICBhZGFwdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBTaWduZGUtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEwODQ1ODMwM2U3ZjlkYjY3ZjI5Njk4MDAzNmQzMjkyYzM1Y2I0NWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEp1biAyOSAxODozODo1MSAyMDA3ICswMjAwCgogICAgYXRtZWxfbWNpOiBGaXggZGF0YSB0aW1lb3V0IHZhbHVlCgogICAgQ2FsY3VsYXRlIHRoZSBkYXRhIHRpbWVvdXQgYmFzZWQgb24gdmFsdWVzIGZyb20gdGhlIENTRCBpbnN0ZWFkIG9mCiAgICBqdXN0IHVzaW5nIGEgaGFyZGNvZGVkIERUT1IgdmFsdWUuIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBhIHNpbWlsYXIgZml4CiAgICBpbiBCU1AgMi4wLCB3aXRoIG9uZSBhZGRpdGlvbmFsIGZpeDogdGhlIERUT0NZQyB2YWx1ZSBpcyByb3VuZGVkIHVwCiAgICBpbnN0ZWFkIG9mIGRvd24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMGJhOGVlZDI4YjU3NTYyNmIxN2UwYTc4ODJmOTIzYjgzZTBkNzU4NApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gQXVnIDEzIDE3OjIyOjMxIDIwMDcgKzAyMDAKCiAgICBBVlIzMjogSW5jbHVkZSA8ZGl2NjQuaD4gaW5zdGVhZCBvZiA8YXNtL2RpdjY0Lmg+CgogICAgaW5jbHVkZS9hc20tYXZyMzIvZGl2NjQuaCB3YXMgcmVjZW50bHkgbW92ZWQgdG8gaW5jbHVkZS9kaXY2NC5oLCBidXQKICAgIGNwdS9hdDMyYXAvaW50ZXJydXB0cy5jIHdhc24ndCBwcm9wZXJseSB1cGRhdGVkIChhbiBlYXJsaWVyIHZlcnNpb24gb2YKICAgIHRoZSBwYXRjaCB3YXMgbWVyZ2VkIHBlcmhhcHM/KQoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBjcHUvYXQzMmFwL2ludGVycnVwdHMuYyBzbyB0aGF0IHRoZSBhdnIzMiBwb3J0CiAgICBjb21waWxlcyBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmMGQxMjQ2ZWQ3Y2I1YTg4NTIyMjQ0YzU5NmQ3YWU3ZTZmMTYxMjgzCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKdW4gMjcgMTM6MzQ6MjYgMjAwNyArMDIwMAoKICAgIGF0bWVsX21jaTogVXNlIDUxMiBieXRlIGJsb2Nrc2l6ZSBpZiBwb3NzaWJsZQoKICAgIEluc3RlYWQgb2YgYWx3YXlzIHVzaW5nIHRoZSBsYXJnZXN0IGJsb2Nrc2l6ZSB0aGUgY2FyZCBzdXBwb3J0cywgY2hlY2sKICAgIGlmIGl0IGNhbiBzdXBwb3J0IHNtYWxsZXIgYmxvY2sgc2l6ZXMgYW5kIHVzZSA1MTIgYnl0ZXMgaWYgcG9zc2libGUuCiAgICBNb3N0IGNhcmRzIGRvIHN1cHBvcnQgdGhpcywgYW5kIG90aGVyIHBhcnRzIG9mIHUtYm9vdCBzZWVtIHRvIGhhdmUKICAgIHRyb3VibGUgd2l0aCBibG9jayBzaXplcyBkaWZmZXJlbnQgZnJvbSA1MTIgYnl0ZXMuCgogICAgQWxzbyBlbmFibGUgdW5kZXJydW4vb3ZlcnJ1biBwcm90ZWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQWNrZWQtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+Cgpjb21taXQgMjczZGI3ZTFiZGQxOTM3ZTMyZjFkNDUwNzMyMWJiNzIxZWJkMzExOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyAxMyAwOTowNTozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiBQTEwgY2xvY2sgY2FsY3VsYXRpb24KCiAgICBUaGlzIHBhdGNoIHdhcyBvcmlnaW5hbGwgcHJvdmlkZWQgYnkgRGF2aWQgTWl0Y2hlbGwgPGRtaXRjaGVsbEBhbWNjLmNvbT4KICAgIGFuZCBmaXhlcyBhIGJ1ZyBpbiB0aGUgUExMIGNsb2NrIGNhbGN1bGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTg2YmMzZTQwZTg5OWJlYTM3MmE5OWEyYmNhNDA3MWJkZjJlMjRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAyMTozNDo1MCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDc3ZDE5YThiZjNiMGIxZTQwMWNiOWYyM2M4MWUyZWY0MTk3MDVjMWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDIxOjM0OjM0IDIwMDcgKzAyMDAKCiAgICBNaW5vciBhbGlnbm1lbnQgb2Ygb3V0cHV0LCAybmQgdHJ5LgogICAgQWxzbyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2YjMwOWYyMmE3MjRmYWQ4NDE4ZTgxMTc1MWEwNzQxYjg5MzQxOWNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAyMDozNTo0OSAyMDA3ICswMjAwCgogICAgTWlub3IgYWxpZ25tZW50IG9mIG91dHB1dAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmY2ZDdiOWM4NTU5ZTI0MWU4ZDIzMjYyMTU0MmI4YjU5Njk5YjA3YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTg6Mjg6MTggMjAwNyArMDIwMAoKICAgIENsZWFudXAgb3V0cHV0IG9uIEFEUzUxMjEgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rCgpjb21taXQgYTRkMjYzNmYyYTg1OTI0NWVkM2E0MDFmMjYxODlkYTJkZmRhNGNlYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTU6MTE6MzggMjAwNyArMDIwMAoKICAgIEFkYXB0IGJvYXJkIGNvbmZpZ3VyYXRpb24gYW5kIGZpeCBrZXJuZWwgY3Jhc2ggb24gTUNDMjAwIGJvYXJkLgoKICAgIFRoZSB1cGRhdGUgcHJvY2VkdXJlIHdhcyBtb2RpZmllZCB0byB0dXJuIG9mZiB0aGUgVVNCIHN1YnN5c3RlbQogICAgYmVmb3JlIGV4aXQgZm9yIE1DQzIwMCBhbmQgVFJBQi4gVGhpcyBpcyBuZWNlc3NhcnkgYXMgb3RoZXJ3aXNlIHRoZQogICAgVVNCIGNvbnRyb2xsZXIgY29udGludWVzIHRvIHdyaXRlIHBlcmlvZGljYWxseSB0byBzeXN0ZW0gbWVtb3J5IQoKICAgIE1DQzIwMC1zcGVjaWZpYyBub3RlczoKICAgIC0gdGhlIHBhdGNoIGRpc2FibGVzIHRoZSBtYWdpYyBrZXkgY2hlY2sgZm9yIE1DQzIwMAogICAgLSB0aGUgcGF0Y2ggY29udGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBtYWRlCiAgICAgIGZvciB0aGUgbmV3IHJldmlzaW9uIG9mIHRoZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMjdmM2E2ZWZiOWRiNWE1MzMyMjNiMDVjNjI5ZmY0YWM4ZDkyMWJmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxNDo0Nzo1NCAyMDA3ICswMjAwCgogICAgQWRqdXN0IGRlZmF1bHQgY29uZmlndXJhdGlvbiBvZiBBRFM1MTIxIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWZhYWM4NmZlMjk0OGFjODRjZDlhMTJiYmVkODgzYjNjNjgzZTdkOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTQ6Mjc6MzkgMjAwNyArMDIwMAoKICAgIENsZWFuIHVwIHNvbWUgcmVtYWluaW5nIENGR19DTURfIC0+IENPTkZJR19DTURfIGlzc3Vlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVmZTZiZTYyMDhkZGE4NTJjMzU2NGUzODRiZDc4ZDc1Nzg0ZGVhM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgQXVnIDcgMjE6MTQ6MjIgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgZXJyb3IgcHJpbnQgbWVzc2FnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5OWRmZmNhM2I3NTkwYTE2YTAwYmM0NzVjODYwYjY3YjJhM2YxNDYyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxNyAxMzo1NzowNCAyMDA3IC0wNTAwCgogICAgZmR0OiBhbGxvdyBmb3IgYnVpbGRzIHRoYXQgZG9uJ3Qgd2FudCBlbnYgYW5kIGJkX3Qgbm9kZXMKCiAgICBwcm90ZWN0IGZkdF9lbnYgYW5kIGZkdF9iZF90IGludm9jYXRpb25zLCBmaXggY29kaW5nc3R5bGUgd2hpbGUgaW4gdGhlCiAgICBhcmVhLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTExNDhiZjdhZWJhMTQyZDZmMzQ4ODA1ZGI3NjI1ZGI3ZGE2NGQ2ZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTcgMTM6NTY6NTMgMjAwNyAtMDUwMAoKICAgIGZkdDogZG8gYm9hcmQgc2V0dXAgYmFzZWQgb24gZmR0IGFkZHJlc3Mgc3BlY2lmaWVkIG9uIGJvb3RtIGxpbmUKCiAgICBUaGUgbGFzdCBmZHQgcGF0Y2ggdG8gYm9vdG0gZGlkIGJvYXJkIHNldHVwIGJhc2VkIG9uIHRoZSBhZGRyZXNzCiAgICBzcGVjaWZpZWQgYnkgYSBwcmlvciBmZHQgYWRkcmVzcyBjb21tYW5kIGludm9jYXRpb24uICBUaGUgYm9vdG0KICAgIGNvZGUsIGFzIGl0cyBjYWxsIHRvIGZkdF9jaG9zZW4gZG9lcywgc2hvdWxkIHVzZSB0aGUgZmR0IHNwZWNpZmllZAogICAgYnkgdGhlIHVzZXIgb24gdGhlIGJvb3RtIGNvbW1hbmQuICBOb3RlIHRoaXMgcmVzdG9yZXMgZnVsbAogICAgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIDgzNjAncyBleGlzdGluZyBkZWZhdWx0IGJvb3QgZW52aXJvbm1lbnQKICAgIHZhbHVlcywgZS5nLiAncnVuIG5mc2Jvb3QnIChpLmUuIG5vIGhhdmluZyB0byAnZmR0IGFkZHIgJGZkdGFkZHInCiAgICBiZWZvcmUgYm9vdGluZyBhIGtlcm5lbCkuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMTI1YTJmZmMyMDlkZDM0Nzk0ZTMyNmM3MTc1NjU4MjUzYmVhZGYzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAyMDo0MDozOSAyMDA3IC0wNDAwCgogICAgQ2FsbCBmdF9ib2FyZF9zZXR1cCgpIGZyb20gdGhlIGJvb3RtIGNvbW1hbmQuCgogICAgSW4gdGhlIHBhdGNoIHRpdGxlZCAiQ3JlYXRlIG5ldyBmZHQgYm9hcmRzZXR1cCBjb21tYW5kLi4uIiBJIHJlbW92ZWQgdGhlCiAgICBjYWxsIHRvIGZ0X2JvYXJkX3NldHVwKCkgZnJvbSB0aGUgcm91dGluZSBmZHRfY2hvc2VuKCksIGJ1dCBJIGZvcmdvdAogICAgdG8gYWRkIGEgZGlyZWN0IGNhbGwgYmFjayBpbnRvIGNtZF9ib290bS5jCgogICAgVGhpcyBmaXhlcyB0aGUgb3ZlcnNpZ2h0IGJ5IGFkZGluZyB0aGUgZGlyZWN0IGNhbGwgdG8gdGhlIGJvb3RtIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBmZDYxZTU1ZGQ4Y2I1MmNlM2ZmOTFiMzkxN2FmMjZlMjRiNmIwODQ1CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAyMzoyNToyOCAyMDA3IC0wNDAwCgogICAgQ3JlYXRlIG5ldyBmZHQgYm9hcmRzZXR1cCBjb21tYW5kLCBmaXggYnVnIHBhcnNpbmcgW10gZm9ybSBvZiBzZXQgdmFsdWVzLgoKICAgIFByZXZpb3VzbHkgZnRfYm9hcmRfc2V0dXAoKSB3YXMgY2FsbGVkIGJ5IGZkdF9jaG9zZW4oKSB3aGljaCB3YXMgbm90CiAgICByZWFsbHkgY29ycmVjdGx5IHN0cnVjdHVyZWQuICBUaGlzIHNwbGl0cyBmdF9ib2FyZF9zZXR1cCgpIG91dCBieSBjcmVhdGluZwogICAgYSBuZXcgZmR0IGJvYXJkc2V0dXAgY29tbWFuZC4KCiAgICBGaXggYSBidWcgd2hlbiBwYXJzaW5nIGZkdCBzZXQgY29tbWFuZCB2YWx1ZXMgd2hpY2ggaGF2ZSB0aGUgc3F1YXJlCiAgICBicmFja2V0IGZvcm0gWzAwIDExIDIyIDMzXSAtIHRoZSBsZW5ndGggd2FzIHVwZGF0ZWQgaW5jb3JyZWN0bHkgaW4gd2hlbgogICAgcGFyc2luZyB0aGF0IGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA2ZjM1ZGVkOWU4NTQ5MzU5NWUwZWI2NmE4MmI1MDJhOTUzMjZkMDQ5CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAyMDo1NTo1OCAyMDA3IC0wNDAwCgogICAgVGlnaHRlbiB1cCB0aGUgZXJyb3IgbWVzc2FnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBjNDU4NzRiMDVhYWU4OTdhNmMyOWQxYTk3ZDRiYjcwOGZjYTI3NTZjCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxOTo1MjoyMyAyMDA3IC0wNDAwCgogICAgQXN0aGV0aWMgaW1wcm92ZW1lbnRzOiBlcnJvciBtZXNzYWdlcyBhbmQgbGluZSBsZW5ndGhzLgoKICAgIFRpZ2h0ZW4gdXAgdGhlIGVycm9yIG1lc3NhZ2VzLCBzcGxpdCBvdmVybGVuZ3RoIGxpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMzVlYzM5OGYxNmUxN2RmNjAwZWRjMWIzOGMxZTllNjJjMTVjOWFhMQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBNYXkgMjUgMjI6MDg6NTcgMjAwNyAtMDQwMAoKICAgIEZpeCBmZHRfY2hvc2VuKCkgdG8gY2FsbCBmdF9ib2FyZF9zZXR1cCgpLCBjbGVhbiB1cCBsb25nIGxpbmVzLgoKICAgIFRoZSBmZHRfY2hvc2VuKCkgZnVuY3Rpb24gd2FzIGFkZGluZy9zZXRpbmcgc29tZSBwcm9wZXJ0aWVzIGFkLWhvYwogICAgICBpbXByb3Blcmx5IGFuZCBkdXBsaWNhdGVkIChwb29ybHkpIHdoYXQgd2FzIGRvbmUgaW4gZnRfYm9hcmRfc2V0dXAoKQoKICAgIENsZWFuIHVwIGxvbmcgbGluZXMgKHNldHRpbmcgcHJvcGVydGllcywgcHJpbnRpbmcgZXJyb3JzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDA2ZTE5YTA3NzAxYzk2OGYxNWQ3MmMwODNiNTg3MmExYTExYzdiMDEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gTWF5IDIxIDIzOjI3OjE2IDIwMDcgLTA0MDAKCiAgICBGb3IgZmR0X2ZpbmRfbm9kZV9ieV9wYXRoKCksIGhhbmRsZSB0aGUgcm9vdCBwYXRoIHByb3Blcmx5LgoKICAgIEFsc28gcmVtb3ZlcyB0aGUgc3BlY2lhbCBjYXNlIHJvb3QgcGF0aCBkZXRlY3Rpb24gaW4gY21kX2ZkdC5jIHNpbmNlIGl0CiAgICBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOTY3NWVlNzIwOGFiOTY1ZDEzZWE4ZDgyNjJkNzdhYzQxNjBlZjU0OQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVRodSBNYXkgMTcgMjM6NTQ6MzYgMjAwNyAtMDQwMAoKICAgIEFkZCBmZHRfZmluZF9ub2RlX2J5X3R5cGUoKSBhbmQgZmR0X2ZpbmRfY29tcGF0aWJsZV9ub2RlKCkgdG8gTElCRkRUCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAxYTg2MTE2OWJjMzc1OGY5ZGUzYWVhZDYyYjA1ODczNmM2ODkxMjQ2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEp1biA2IDIyOjQ3OjU4IDIwMDcgLTA0MDAKCiAgICBSZXBsYWNlIGZkdF9ub2RlX29mZnNldCgpIHdpdGggZmR0X2ZpbmRfbm9kZV9ieV9wYXRoKCkuCgogICAgVGhlIG5ldyBuYW1lIG1hdGNoZXMgbW9yZSBjbG9zZWx5IHRoZSBrZXJuZWwncyBuYW1lLCB3aGljaCBpcyBhbHNvCiAgICBhIG11Y2ggYmV0dGVyIGRlc2NyaXB0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYWRkZDhjZTgzMDc4YzI1ZjBlY2E1ZjIzYWRiZGZjNjRjYTUwYTI0MwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBNYXkgMTYgMjI6Mzk6NTkgMjAwNyAtMDQwMAoKICAgIEZpeCBjbWRfZmR0IGxpbmUgbGVuZ3RocywgcmVmYWN0b3IgY29kZS4KCiAgICBCcmVhayBsaW5lcyB0aGF0IHdlcmUgZ3JlYXRlciB0aGFuIDgwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLgogICAgTW92ZSB0aGUgZmR0IHByaW50IGFuZCBwcm9wZXJ0eSBwYXJzaW5nIGNvZGUgdG8gc2VwYXJhdGUgc3RhdGljIGZ1bmN0aW9ucwogICAgICB0byByZWR1Y2UgY29kaW5nIGNsdXR0ZXIgaW4gdGhlIGZkdF9jbWQgaGFuZGxpbmcgYm9keS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDI1MTE0MDMzYWIyMTc4ODgxMGM0OGJhNGRmMTAzYjY0OWRhMTIyM2IKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWF5IDEyIDA5OjQ3OjI1IDIwMDcgLTA0MDAKCiAgICBGRFQgY29tbWFuZCBpbXByb3ZlbWVudHMuCgogICAgRml4ICJmZHQgc2V0IiBzbyB0aGF0IGl0IHdpbGwgY3JlYXRlIGEgbm9uLWV4aXN0aW5nIHByb3BlcnR5LgogICAgQWRkICJmZHQgbWtub2RlIiB0byBjcmVhdGUgbm9kZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAzOGViNTA4ZThlODExZTJlNTc2MjhmNDQ1ZGUzYTI0YTIzYzdkODA0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1heSAxMiAwOTo0NTo0NiAyMDA3IC0wNDAwCgogICAgUmVvcmdhbml6ZSBhbmQgZml4IHByb2JsZW1zIChyZXR1cm5zKSBpbiB0aGUgYm9vdG0gY29tbWFuZC4KCiAgICBEbyAqTk9UKiByZXR1cm4gYWZ0ZXIgdGhlICJwb2ludCBvZiBubyByZXR1cm4iIGhhcyBiZWVuIHBhc3NlZC4KICAgICAgSWYgc29tZXRoaW5nIGdvZXMgd3JvbmcsIHRoZSBib2FyZCBtdXN0IGJlIHJlc2V0IGFmdGVyIHRoYXQgcG9pbnQuCiAgICBNb3ZlIHRoZSAiVHJhbnNmZXJyaW5nIGNvbnRyb2wgdG8gTGludXgiIGRlYnVnIG1lc3NhZ2UgYmFjayB0byB3aGVyZSBpdAogICAgICBiZWxvbmdzOiBqdXN0IGJlZm9yZSB0cmFuc2ZlcnJpbmcgY29udHJvbCB0byBsaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDg5Yzg3NTdkOGYyMTNjNDc3MDliZGM0ZWZlMDY5NTI2M2E2MDgwYTYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgTWF5IDggMjE6Mjc6MzUgMjAwNyAtMDQwMAoKICAgIEZpeCBidWdzIGluIHRoZSBDT05GSUdfT0ZfTElCRkRUCgogICAgU3R1cGlkIGNvZGluZyBtaXN0YWtlcyAoaWRlbnRpZmllZCBieSBUaW11ciBUYWJpLCB0aGFua3MpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNmJlMDdjYzFjYTQ1ODI3OGM4NWVjZGJmMWEwNTM2Y2ZmNGM3MDFlYwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMjI6NDc6MTUgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgZmR0IG1vdmUgbGVuZ3RoIGhhbmRsaW5nLgoKICAgIE1ha2UgdGhlIGxlbmd0aCBwYXJhbWV0ZXIgb3B0aW9uYWw6IGlmIG5vdCBzcGVjaWZpZWQsIGRvIHRoZSBtb3ZlIHVzaW5nCiAgICB0aGUgY3VycmVudCBzaXplIHVuY2hhbmdlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGJiOTMwZTc2ZmVhNmNmODljYTJkOThlMmY3YzdhNjA0M2Q3OTMyN2QKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgQXByIDI1IDIyOjIzOjM2IDIwMDcgLTA0MDAKCiAgICBNaW5vciBjb2RlIGNsZWFuIHVwLgoKICAgIERlY2xhcmUgdGhlIHZhcmlhYmxlIGZkdCBwcm9wZXJseSBhcyBleHRlcm4uCiAgICBDYWxsIHRoZSAic2V0X2ZuIiBmdW5jdGlvbiBwb2ludGVyIHRoZSAic2hvcnQgd2F5IiB3aXRob3V0IHRoZSBmdWxsCiAgICAgIGRlcmVmZXJlbmNpbmcgc3ludGF4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYmEyNGUyYWMzYmRiNWM0ODlmM2M3ODdlNzU0MmI2NDc0YzRkNjVjNgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMjE6MjQ6MjcgMjAwNyAtMDQwMAoKICAgIEltcHJvdmUgZXJyb3IgbWVzc2FnZXMsIG1vcmUgaW5mb3JtYXRpdmUuCgogICAgUHJpbnQgbW9yZSB0aGFuIHRoZSByYXcgbGliZmR0IGVycm9yIG1lc3NhZ2Ugc3RyaW5ncy4gIFRoaXMgaXMgZXNwZWNpYWxseQogICAgdXNlZnVsIGZvciBjbHVpbmcgaW4gdGhlIHVzZXIgd2hlbiB0aGUgYm9vdG0gY29tbWFuZCBhYm9ydHMgZHVlIHRvCiAgICBibG9iIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgODA5NmIzYjhmNzcyYzE4OTRkZGVkYTlkYmNlZmY2YTg4MjY0NzNhNApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMjI6NDY6NTMgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogQ29uZGl0aW9uYWxseSBjb21waWxlIGJhc2VkIG9uIENPTkZJR19PRl9MSUJGRFQKCiAgICBUaGlzIGlzIHRoZSB3YXkgdS1ib290IHJlZHVjZXMgY29uZmlndXJlZC1vdXQgY29kZS4gIEF0IFdvbGZnYW5nCiAgICBHcmFuZGVnZ2VyIGFuZCBXb2xmZ2FuZyBEZW5rJ3MgcmVxdWVzdCwgbWFrZSBsaWJmZHQgY29uZm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDkyM2VmZDI4NjQxMWVkMDUyZDllMDc0ZjU5Zjg5ODZkNjA4MTA2MWMKQXV0aG9yOiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTQ6NTQ6NDcgMjAwNyAtMDcwMAoKICAgIGFkZCBpbWFnZSBzaXplIGFuZCBkZXNjcmlwdG9ycyBmb3IgU3BhcnRhbiAzRSBGUEdBIGNoaXBzCgogICAgU3BhcnRhbiAzRSBpbWFnZSBzaXplcyB0YWtlbiBmcm9tIFRhYmxlIDEtNCBpbiBYaWxpbnggVUczMzIgKHYxLjEpCgogICAgU2lnbmVkLW9mZiBieTogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGNjcHUuY29tPgoKY29tbWl0IGZiNTY1NzlmZmU3ZWYzMjc1YjcwMzZiYjdiOTI0ZTVhMGQzMmJkNzAKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE1OjM0OjQ4IDIwMDcgLTA1MDAKCiAgICBtYWtlIE1BS0VBTEwgbW9yZSBpbW11bmUgdG8gbWVyZ2UgY29uZmxpY3RzCgogICAgLi5ieSBwbGFjaW5nIGJvYXJkIGVudHJpZXMgb25lIHBlciBsaW5lLCBhcyBzdWdnZXN0ZWQgYnkgamRsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjYyODExNGVjNTY0Zjk2OWYzNGI1ZjcxMDVmYmQxNjhjYjhjOWMzZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTM6Mjg6MjUgMjAwNyAtMDUwMAoKICAgIFJFQURNRTogUmVtb3ZlIG91dGRhdGVkIGNwdSB0eXBlLCBib2FyZCB0eXBlLCBhbmQgTkFNRV9jb25maWcgbGlzdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5YmI1OTkxMmQyMWFhY2I1MDdlYjgxZmQyMWZiN2FmNjUwYzcwNmMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTU6NDg6NTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IFN1cHByZXNzIHRoZSB3YXJuaW5nICdidXJzdGxlbicKCiAgICBzdXBwcmVzcyB0aGUgd2FybmluZyAnYnVyc3RsZW4nIG9mIHNwZF9zZHJhbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NDZiYmE2NDY1YTQ1YzYwNzQ2ZDRjYzE2MDJjZDA2YzE5NjBmMmQKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgQXVnIDkgMTU6MTE6MDMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTQkM4NjQxRC4gQ29uZmlnIGZpbGVzLgoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODY0MUQgcmVmZXJlbmNlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBBY2tlZC1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhYzI3MzI3MWQ1NzMyMWY5MDUwNWM3YTUxY2RiMWVmMjExM2I2MjgKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgQXVnIDkgMTU6MTA6NTMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTQkM4NjQxRC4gIEJvYXJkIGZpbGVzLgoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODY0MUQgcmVmZXJlbmNlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CiAgICBBY2tlZC1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMyYzBhYjRhZmY4NjYyMmI4MzdhNDhhMGU1NjAzNTFmOWFmYWZiOTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTAgMjA6MzQ6NTggMjAwNyArMDIwMAoKICAgIENvbmRpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNzRiMjEwOGUzMWZlMDliZDFjNWQyOTFjM2NmMzYwNTEwZDRmMTNlCkF1dGhvcjogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+CkRhdGU6CUZyaSBBdWcgMTAgMjA6MjY6MTggMjAwNyArMDIwMAoKICAgIFtBUk1dIFRJIERhVmluY2kgc3VwcG9ydCwgaG9wZWZ1bGx5IGZpbmFsCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgRGFWaW5jaSBib2FyZHM6CiAgICAtIERWX0VWTQogICAgLSBTQ0hNT09HSUUKICAgIC0gU09OQVRBCgogICAgQ2hhbmdlczoKCiAgICAtIFNwbGl0IGludG8gc2VwYXJhdGUgYm9hcmQgZGlyZWN0b3JpZXMKICAgIC0gUmVtb3ZlZCBjaGFuZ2VzIHRvIE1URF9ERUJVRyAob3Igd2hhdGV2ZXIgaXQncyBjYWxsZWQpCiAgICAtIE5ldyBDT05GSUdfQ01EIHBhcnR5IGxpbmUgZm9sbG93ZWQKICAgIC0gU29tZSBjb3NtZXRpYyBmaXhlcywgY2xlYW51cCBldGMuCiAgICAtIFBhdGNoZXMgYWdhaW5zdCB0aGUgbGF0ZXN0IFUtQm9vdCB0cmVlIGFzIG9mIG5vdy4KICAgIC0gRml4ZWQgQ09ORklHX0NNRF9ORVQgaW4gbmV0IGZpbGVzLgogICAgLSBGaXhlZCBDT05GSUdfQ01EX0VFUFJPTSBmb3Igc2NobW9vZ2llLgogICAgLSBNYWRlIHN1cmUgaXQgY29tcGlsZXMgYW5kIHdvcmtzIChmb3JjZWVudigpIGxpbmsgcHJvYmxlbSkgb24gU0NITU9PR0lFIGFuZAogICAgICAgRFZfRVZNLiBDYW4ndCBjaGVjayBpZiBpdCB3b3JrcyBvbiBTT05BVEEsIGRvbid0IGhhdmUgYSBib2FyZCBhbnkgbW9yZSwKICAgICAgIGJ1dCBpdCBhdCBsZWFzdCBjb21waWxlcy4KCiAgICBIZXJlIGlzIGFuIGV4Y2VycHQgZnJvbSBzZXNzaW9uIGxvZyBvbiBTQ0hNT09HSUUuLi4KCiAgICBVLUJvb3QgMS4yLjAtZzZjMzNjNzg1LWRpcnR5IChBdWcgIDcgMjAwNyAtIDEzOjA3OjE3KQoKICAgIERSQU06ICAxMjggTUIKICAgIE5BTkQ6ICAxMjggTWlCCiAgICBJbjogICAgc2VyaWFsCiAgICBPdXQ6ICAgc2VyaWFsCiAgICBFcnI6ICAgc2VyaWFsCiAgICBBUk0gQ2xvY2sgOiAyOTdNSHoKICAgIEREUiBDbG9jayA6IDE2Mk1IegogICAgRVRIIFBIWSAgIDogRFA4Mzg0OCBAIDB4MDEKICAgIFUtQm9vdCA+IGlwcm9iZQogICAgVmFsaWQgY2hpcCBhZGRyZXNzZXM6IDFCIDM4IDNBIDNEIDNGIDUwIDVEIDZGCiAgICBVLUJvb3QgPiBwaW5nIDE5Mi4xNjguMjUzLjEwCiAgICBob3N0IDE5Mi4xNjguMjUzLjEwIGlzIGFsaXZlCiAgICBVLUJvb3QgPgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgogICAgQWNrZWQtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgogICAgQWNrZWQtYnk6IFphY2ggU2FkZWNraSA8WmFjaC5TYWRlY2tpQHJpcGNvZGUuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZTRkOTRmMWUzYzI5NjE0Mjg5NjdhMzNiNmZmMjUyMDU2ODM5MWIzCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NSAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGNsZWFudXAuCgogICAgRG8gbm90IGVuYWJsZSBub3JtYWwgZXJyb3JzIGNyZWF0ZWQgZHVyaW5nIHByb2JlIChtYXN0ZXIgYWJvcnQsIHBlcnIsCiAgICBhbmQgcGNpZSBJbnZhbGlkIENvbmZpZ3VyYXRpb24gYWNjZXNzKS4KCiAgICBBZGQgQ09ORklHX1BDSV9OT1NDQU4gYm9hcmQgb3B0aW9uIHRvIHByZXZlbnQgYnVzIHNjYW4uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTM2YjNlNjliNjY3YzNlYjlhNjFlY2U0ZTc4NjQ3ZDNmY2U5ZmMyYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDQgMjAwNyAtMDUwMAoKICAgIHBjaWF1dG9fc2V0dXBfZGV2aWNlIGJhcnNfbnVtIGZpeAoKICAgIFBhc3NpbmcgYmFyc19udW09MCB0byBwY2lhdXRvX3NldHVwX2RldmljZSBzaG91bGQgYXNzaWduIG5vIGJhcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmMGIxODVlNThjYTBhZWM4YWUyYjJhODgwNGVjMGVmNThlZTIxZDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDYgMTc6Mzk6NDQgMjAwNyAtMDUwMAoKICAgIDg2NDFocGNuOiBEbyBjb3JyZWN0IHNpemVkIHBvaW50ZXIgbWF0aC4KCiAgICBXaGVuIEkgcmViYXNlZCBFZCdzIHBhdGNoIGFuZCBjbGVhbmVkIHVwIGEgZmV3IGNvbXBpbGF0aW9uCiAgICBwcm9ibGVtcywgSSBhcHBhcmVudGx5IHJlYmFzZWQgbXkgYnJhaW4gb24gY3JhY2sgZmlyc3QuCiAgICBGaXggdGhhdCBieSBkb2luZyAoY2hhciAqKSBzaXplZCBwb2ludGVyIG1hdGggYXMgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2ZjN2E3ZjViYjMyNzNjOTk1MTE3M2M3ODgwMDFkNDUxMThmMTQxZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMiAxNDo0MjoyMCAyMDA3IC0wNTAwCgogICAgY3B1Lzg2eHggZml4ZXMuCgogICAgUmVtb3ZlIHJldiAxIGZpeGVzLgogICAgQWx3YXlzIHNldCBQSUNHQ1JfTU9ERS4KICAgIEVuYWJsZSBtYWNoaW5lIGNoZWNrIGFuZCBwcm92aWRlIGJvYXJkIGNvbmZpZyBvcHRpb24KICAgIHRvIHNldCBhbmQgaGFuZGxlIFNvQyBlcnJvciBpbnRlcnJ1cHRzLgoKICAgIEluY2x1ZGUgTVNTU1IwIGluIGVycm9yIG1lc3NhZ2UuCgogICAgSXNvbGF0ZSBhIFJBTUJPT1QgYml0IG9mIGNvZGUgd2l0aCAjaWZkZWYgQ0ZHX1JBTUJPT1QuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzVkMjJmOTU3YTg1YTIyYmIzY2QxYWQwODRmYTU0MDQ2MjBkMWM0MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxMCAxMDo0MjoyNSAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2E2ZDU2YzIwOTg5ZmUyNzM2MGFmZTc0M2JkMmE3YWQ0ZDc2ZTQ4ZgpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVRodSBBdWcgMiAxNzo0MjowOCAyMDA3ICswMjAwCgogICAgTWFrZSB1c2Ugb2YgZ2VuZXJpYyA2NGJpdCBkaXZpc2lvbiBpbiBuYW5kX3V0aWwuYwoKICAgIFVzZSBnZW5lcmljIDY0Yml0IGRpdmlzaW9uIGluIG5hbmRfdXRpbC5jLiBUaGlzIG1ha2VzIG5hbmRfdXRpbC5jCiAgICBpbmRlcGVuZGVudCBvZiBhbnkgdG9vbGNoYWluIDY0Yml0IGRpdmlzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IGY3YzA4NmU5NGU4Y2U5YWFkNzI2OGFmOTdmNzNhYTY4ODQ2ODZmMjcKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglUaHUgQXVnIDIgMTc6NDE6MTQgMjAwNyArMDIwMAoKICAgIE1vdmUgNjRiaXQgZGl2aXNpb24gZnJvbSBhdnIzMiB0byBnZW5lcmljIGxpYgoKICAgIE1vdmUgdGhlIDY0Yml0IGRpdmlzaW9uIGZyb20gbGliX2F2cjMyIHRvIGxpYl9nZW5lcmljLiBXaXRoIHRoaXMsIGFsbAogICAgYm9hcmRzIGNhbiBkb19kaXYvX19kaXY2NF8zMiBpZiBuZWVkZWQsIG5vdCBvbmx5IGF2ciBvbmUuIENvZGUgaXMgcHV0CiAgICB0byBsaWJfZ2VuZXJpYywgc28gbm8gbGFyZ2VyIG1lbW9yeSBmb290cHJpbnQgaWYgbm90IHVzZWQuIE5vIGNvZGUKICAgIG1vZGlmaWNhdGlvbnMuIFRoYW5rcyBmb3IgcHJvcG9zYWwgYnkgSMOldmFyZCBTa2lubmVtb2VuLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDE1N2NkYTRkMGMzZDU5MmNjYmIxOWJiZmMwN2Q5MjUxODk0ZjA4OTQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjMxOjIyIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U1IGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2ZTVkZTI2YzZlNzU4MGZhZjE2ZTg3NzQ1Y2Q0ODhiOTJiNDkyZDBjCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozMDozMyAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZTgzOTdmYzc4YzkzOTRkNzFkZTIzM2E0ZDgxMGZiYzkwNDdlNGM3NgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mzg6MjYgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IGNvbW1vbiBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgYWM5ODJlYTVhNGYyZjk5M2VmY2Y1MmRjYTEyMmY1YTU5ZGYwNDdkOApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mjg6NDQgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IG1ha2UgcmVsYXRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMTM3ZmRkOWY0NzRlY2I4NTNlZmRhY2U1MjAwNTc2MzA4YzY3ZjE4ZApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mjg6MDMgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTUgY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA3MTRiYzU1YjM1YjZmNmE2NWNjODc0MGEzODQyYTU0M2U4OGNkZWYyCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyNzoxNSAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDE4OTRkZDM4MTEyNGJkYmZiZGFlN2NmM2E2Y2E1MmE4ZWIxZjQ0MjEKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI1OjMxIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBSRUFETUVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2NDFjY2E5NTY5Y2UzNTFkZGIyODdmZDMzNDNkOGIxZGNiNTkxZGI0CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozNzo0MCAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSW5mcmFzdHJ1Y3R1cmUKCiAgICBUaGlzIHNlcmllcyBvZiBwYXRjaGVzIGFkZHMgc3VwcG9ydCBmb3IgMiBib2FyZHMgZnJvbSBOZXRzdGFsIE1hc2NoaW5lbi4KCiAgICBUaGUgSENVNCBoYXMgYSBQUEM0MDVHcHIgYW5kCiAgICB0aGUgSENVNSBoYXMgYSBQUEM0NDBFUFguCgogICAgVGhlIEhDVTQgaGFzIGEgc29tZWhvdyBjb21wbGljYXRlZCBmbGFzaCBzZXR1cCwgYXMgdGhlIGJvb3RlcHJvbSBpcwogICAgb25seSA4IGJpdHMgYW5kIHRoZSBDRkkgMTYgYml0cyB3aWRlLCB3aGljaCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHVzZSBhIG1vcmUKICAgIGVsZWdhbnQgc29sdXRpb24uCgogICAgVGhlIEhDVTUgaGFzIG9ubHkgYSBib290ZXByb20gYXMgdGhlIHdob2xlIGNvZGUgd2lsbCBiZSBkb3dubG9hZGVkIGZyb20gYQogICAgZGlmZmVyZW50IGJvYXJkIHdoaWNoIGhhcyBIRCwgQ0QtUk9NLCBldGMgYW5kIHdoZXJlIGFsbCBjb2RlIGlzIHN0b3JlZC4KCiAgICBUaGlzIGlzIG15IHRoaXJkIHRyeS4gSSBpbmNvcnBvcmF0ZWQgYWxsIHN1Z2dlc3Rpb25zIG1hZGUgYnkgV29sZmdhbmcgYW5kIFN0ZWZhbi4KICAgIFRoYW5rcyB0aGVtIGEgbG90LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgM2U0YzkwYzYyMzM2MThmYzE4MDZlNjNmZGU2OGRmNWYzZDZhMDE3MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxMCAwODo0Mjo1NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IFBPU1QgY29uZmlndXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOWNiMjVkYTU2YWZlMThjZjVlNzA3MmE5MmE5ZDk4ZWE4YWYxZmQ0CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgQXVnIDEwIDA4OjI1OjIyIDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgcHBjNHh4IFVBUlQgUE9TVCBzdXBwb3J0IHdpdGhvdXQgZXh0ZXJuYWwgdWFydCBjbG9jayAobHdtb241KQoKICAgIFRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFVBUlQgUE9TVCBvbiBwcGM0NHgtYmFzZWQgYm9hcmRzIHdpdGggbm8KICAgIGV4dGVybmFsIHNlcmlhbCBjbG9ja3MgaW5zdGFsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTljMmZkYWI5MWJjNjMzZTQ2ZmI0MWRiYWE2MjlmODdjY2Y2ZTAwZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgNiAxODoxODozNCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IElUWFtHUF0gTz1idWlsZGRpciBidWlsZHMKCiAgICBtYWtlOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCBgL3dvcmsvd2QvdG1wL2JvYXJkL21wYzgzNDlpdHgvdS1ib290LmxkcycsIG5lZWRlZCBieSBgL3dvcmsvd2QvdG1wL3UtYm9vdCcuICBTdG9wLgoKICAgIEJvdGggdGhlIElUWCBhbmQgSVRYLUdQIGZhaWwgd2hlbiB5b3UgdXNlICJtYWtlIE89PHNvbWUgZGlyPiAuLi4iIG9yCiAgICAiQlVJTERfRElSPTxzb21lIGRpcj4gLi9NQUtFQUxMIC4uLiIKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ3ZThiYzg0Njc1OWUwMzdiOGFmMGU1ZjljOWY5Y2ZhN2ExMDUwYzMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMSAxNTowMDo1OSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQ29ycmVjdCB0aGUgUkVBRE1FIGZvciBERFIgRUNDCgogICAgVXBkYXRlIHRoZSBSRUFETUUgZm9yIEREUiBFQ0MsIGNoYW5nZSB0aGUgbmFtZQogICAgdG8gUkVBRE1FLm1wYzgzeHguZGRyZWNjLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRhYWI4YzY3ZDJkZWZlZjczZGMyNmFiMDdmMGMzYWZkMWIwNWQwMTkKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMSAxNTowMDoxNSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQ29uc29saWRhdGUgdGhlIEVDQyBzdXBwb3J0IG9mIDgzeHgKCiAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZWQgc291cmNlIGNvZGUgb2YgZWNjIGNvbW1hbmQgb24gdGhlIDxib2FyZD4uYywKICAgIGZvciByZXVzZWQsIG1vdmUgdGhlc2UgY29kZSB0byBjcHUvbXBjODN4eCBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDM2NTc1YzU0NGNmMWI2OTY1NGQ4ZmIzMzRiZGE2OWM2ZmYzZGEzNgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEF1ZyA0IDEzOjM3OjM5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBDb3JyZWN0IHRoZSBidXJzdCBsZW5ndGggZm9yIEREUjIgd2l0aCAzMiBiaXRzCgogICAgVGhlIGJ1cnN0IGxlbmd0aCBzaG91bGQgYmUgNCBmb3IgRERSMiB3aXRoIDMyIGJpdHMgYnVzCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYzI3NGM0ZTA1YjZkYzliMjRlZGM4YWE2MThiMDJmNjA3ZWU2ZWVkCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyNSAxOToyNTozMyAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzIzRSBSREIKCiAgICBNUEM4MzIzRSBiYXNlZCBib2FyZCB3aXRoIDY0TUIgZml4ZWQgU0RSQU0sIDE2TUIgZmxhc2gsCiAgICBmaXZlIDEwLzEwMCBldGhlcm5ldCBwb3J0cyBjb25uZWN0ZWQgdmlhIGFuIElDUGx1cyBJUDE3NUMKICAgIHN3aXRjaCwgb25lIFBDSSBzbG90LCBhbmQgc2VyaWFsLiAgRmVhdHVyZXMgbm90IHN1cHBvcnRlZAogICAgaW4gdGhpcyBwYXRjaCBhcmUgU0QgY2FyZCBpbnRlcmZhY2UsIDIgVVNCIHBvcnRzLCBhbmQgdGhlCiAgICB0d28gcGhvbmUgcG9ydHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM0M2Q5MTAwOWQ1NWZjNWIzZmY4Y2M5NDA1OTdhZjZjNmFhMWQzNTkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDI1IDE5OjI1OjI4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXh1cCBnZW5lcmljIHBjaSBmb3IgbGliZmR0CgogICAgYWRkIGxpYmZkdCBzdXBwb3J0IHRvIHRoZSBnZW5lcmljIDgzeHggcGNpIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1N2FjN2E3YjM3MTA5MjQ1YjY5ZGI4MDgzOWViZWUyNjE3OTk2NmEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDI1IDE5OjI1OjIyIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggODM2MCBhbmQgY3B1IGZ1bmN0aW9ucyB0byB1cGRhdGUgZmR0IGJlaW5nIHBhc3NlZAoKICAgIC4uYW5kIG5vdCB0aGUgZ2xvYmFsIGZkdC4gUmVuYW1lIGxvY2FsIGZkdCB2YXJzIHRvIGJsb2Igc28gYXMgbm90IHRvCiAgICBiZSBjb25mdXNlZCB3aXRoIHRoZSBnbG9iYWwgdmFyIHdpdGggdGhlIHNhbWUgdGhyZWUtbGV0dGVyIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YmU0MDQ0NTlhNmI3Mzk1NDE1YTU3YmIzNWU4Mzc3ZTNiMmI1YWNiCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjE6MzQ6MjQgMjAwNyAtMDQwMAoKICAgIG1wYzgzeHg6IEZpeCBlcnJvcnMgd2hlbiBDT05GSUdfT0ZfTElCRkRUIGlzIGVuYWJsZWQKCiAgICBTZXZlcmFsIG5vZGUgc3RyaW5ncyB3ZXJlIG5vdCBjb3JyZWN0ICh0cmFpbGluZyBzbGFzaGVzIGFuZCBwcm9wZXJ0aWVzCiAgICAgIGluIHRoZSBzdHJpbmdzKQogICAgQWRkZWQgc2V0dGluZyBvZiB0aGUgdGltZWJhc2UtZnJlcXVlbmN5LgogICAgSW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgYW5kIHVzZSBkZWJ1ZygpIGluc3RlYWQgb2YgcHJpbnRmKCkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjZkMDJjOWJiYWMxNzUxYzVlMTkyOTRmMDAwMTAwYjQ4ZDQzYTkyMApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIxOjI3OjMwIDIwMDcgLTA0MDAKCiAgICBtcGM4M3h4OiBSZXBsYWNlIGZkdF9ub2RlX29mZnNldCgpIHdpdGggZmR0X2ZpbmRfbm9kZV9ieV9wYXRoKCkuCgogICAgVGhlIG5ldyBuYW1lIG1hdGNoZXMgbW9yZSBjbG9zZWx5IHRoZSBrZXJuZWwncyBuYW1lLCB3aGljaCBpcyBhbHNvCiAgICBhIG11Y2ggYmV0dGVyIGRlc2NyaXB0aW9uLgoKICAgIFRoZXNlIGFyZSB0aGUgbXBjODN4eCBjaGFuZ2VzIG1hZGUgbmVjZXNzYXJ5IGJ5IHRoZSBmdW5jdGlvbiBuYW1lIGNoYW5nZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YmUzOWE2N2M5ZjhmZWY3MTA3ZjVkZjA5ZDY3MzAwNWYwNGQwOTYzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxMDo0MTo1NiAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBkaXNwbGF5IG9mIHJlc2V0IHN0YXR1cwoKICAgIDgzeHggcHJvY2Vzc29yIGZhbWlseSBoYXMgbWFueSByZXNldCBzb3VyY2VzLCBzdWNoIGFzCiAgICBwb3dlciBvbiByZXNldCwgc29mdHdhcmUgaGFyZCByZXNldCwgc29mdHdhcmUgc29mdCByZXNldCwKICAgIEpUQUcsIGJ1cyBtb25pdG9yLCBzb2Z0d2FyZSB3YXRjaGRvZywgY2hlY2sgc3RvcCByZXNldCwKICAgIGV4dGVybmFsIGhhcmQgcmVzZXQsIGV4dGVybmFsIHNvZnR3YXJlIHJlc2V0LgogICAgc29tZXRpbWVzLCB0byBmaWd1cmUgb3V0IHRoZSBmYXVsdCBvZiBzeXN0ZW0sIHdlIG5lZWQgdG8KICAgIGtub3cgdGhlIGNhdXNlIG9mIHJlc2V0IGVhcmx5IGJlZm9yZSB0aGUgcHJvbXB0IG9mCiAgICB1LWJvb3QgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZjk2NThkNzA0OWJmOGM4ZThlMGEwNWRiZTVlOWY3ZTkxYWE1YTVkCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxMDo0MTowNCAyMDA3ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBhbGlnbiBidWcgb2YgU0RNQSBidWZmZXIKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCB1c2VyIG1hbnVhbCwgdGhlIFNETUEgdGVtcG9yYXJ5CiAgICBidWZmZXIgYmFzZSBhZGRyZXNzIG11c3QgYmUgNEtCIGFsaWduZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjZkYzJjMmRjNTFmOGI4OGJiOGUyMzFiYzgwY2Q5MmVhZTFkNjQ3NgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTM6MjE6MTIgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IFJldmlzZSB0aGUgTVBDODM2MEVNRFMgcmVhZG1lIGRvYwoKICAgIFdoZW4gdGhlIHJldjIueCBzaWxpY29uIG1vdW50IG9uIHRoZSBNUEM4MzYwRU1EUyBiYW9yZCwKICAgIGFuZCBpZiB5b3UgYXJlIHVzaW5nIHRoZSB1LWJvb3QgdmVyc2lvbiBhZnRlciB0aGUgY29tbWl0CiAgICAzZmMwYmQxNTkxMDNiNTM2ZTFjNTRjNmY0NDU3YTA5YjNhYmE2NmNhLgogICAgdG8gbWFrZSB0aGUgZXRoZXJuZXQgaW50ZXJmYWNlIHVzYWJsZSwgd2UgaGF2ZSB0byBzZXR1cAogICAgdGhlIGp1bXBlcnMgY29ycmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3MzliYzk1Nzk3YWFjNGZlZmM0Yzc1YjU1YzdjNzhlNTlkM2VhOWMKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDMgMTM6NDY6MzIgMjAwNyAtMDUwMAoKICAgIEZTTCBJMkMgZHJpdmVyIHByb2dyYW1zIHRoZSB0d28gSTJDIGJ1c3NlcyBkaWZmZXJlbnRseQoKICAgIFRoZSBpMmNfaW5pdCgpIGZ1bmN0aW9uIGluIGZzbF9pMmMuYyBwcm9ncmFtcyB0aGUgdHdvIEkyQyBidXNzZXMgZGlmZmVyZW50bHkuCiAgICBUaGUgc2Vjb25kIEkyQyBidXMgaGFzIGl0cyBzbGF2ZSBhZGRyZXNzIHByb2dyYW1tZWQgaW5jb3JyZWN0bHkgYW5kIGlzCiAgICBtaXNzaW5nIGEgNS11cyBkZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZjMzZjZiNGQ2ZDYzNjkzZGQ5MjAwODA4YjI0MmRlMWI4NmNiOGU4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAzIDEzOjA0OjM0IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgU0NDUiBwcm9ncmFtbWluZyBpbiBjcHVfaW5pdF9mKCkgdG8gc3VwcG9ydCBhbGwgODN4eCBwcm9jZXNzb3JzCgogICAgVXBkYXRlIHRoZSBjcHVfaW5pdF9mKCkgZnVuY3Rpb24gaW4gY3B1L21wYzgzeHgvY3B1X2luaXQuYyB0byBwcm9ncmFtIHRoZQogICAgYml0ZmllbGRzIGZvciBhbGwgODN4eCBwcm9jZXNzb3JzLglUaGUgY29kZSB0byB1cGRhdGUgc29tZSBiaXRmaWVsZHMgd2FzCiAgICBjb21waWxlZCBvbmx5IG9uIHNvbWUgcHJvY2Vzc29ycy4gIE5vdywgdGhlIGJpdGZpZWxkcyBhcmUgcHJvZ3JhbW1lZCBhcyBsb25nCiAgICBhcyB0aGUgY29ycmVzcG9uZGluZyBDRkdfU0NDUiBvcHRpb24gaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgaGVhZGVyIGZpbGUuCiAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIGJvYXJkIGhlYWRlciBmaWxlIHNob3VsZCBub3QgZGVmaW5lIGFueSBDRkdfU0NDUiBtYWNyb3MKICAgIGZvciBiaXRmaWVsZHMgdGhhdCBkb24ndCBleGlzdCBvbiB0aGF0IHByb2Nlc3Nvciwgb3RoZXJ3aXNlIHRoZSBTQ0NSIHdpbGwgYmUKICAgIHByb2dyYW1tZWQgaW5jb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTU0NjI2Njk5OWYwYjliNTEzNzI2MzY2MTQyMTFiODhkOTBmMGYyNQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglGcmkgSnVuIDIyIDEzOjA0OjIyIDIwMDcgKzAyMDAKCiAgICBUUU04MzR4OiBjbGVhbnVwIGNvbmZpZ3VyYXRvbgoKICAgIFJlbW92ZSBpcnJpdGF0aW5nICN1bmRlZiBERUJVRwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZDQ5N2U2YmYwZjViZjYzNzI5YjRhNDdiM2ZkNzg2ZDNjNzdhMWJjCkF1dGhvcjogZGF2aWQuc2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglNb24gSnVuIDE4IDA5OjA5OjUzIDIwMDcgLTA3MDAKCiAgICBNUEM4M3h4OiBGaXggbWFrZWZpbGUgdG8gZ2VuZXJhdGUgY29uZmlnLmggZmlsZSBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5CgogICAgTVBDODN4eDogRml4IHRoZSBNYWtlZmlsZSBjb25maWcgc2VjdGlvbnMgdG8gZ2VuZXJhdGUgdGhlIGluY2x1ZGUvY29uZmlnLmgKICAgIGZpbGUgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWRlZDAyNDJlNDM3MjU5MzY2NzkyZDUyYjdlOWQxZTE5MzFkOGZhNQpBdXRob3I6IExlZSBOaXBwZXIgPExlZS5OaXBwZXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxNCAyMDowNzozMyAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIDgzNjAgc2lsaWNvbiByZXZpc2lvbiAyLjEKCiAgICBUaGlzIGNoYW5nZSBhZGRzIDgzNjAgc2lsaWNvbiByZXZpc2lvbiAyLjEgc3VwcG9ydCB0byB1LWJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTGVlIE5pcHBlciA8bGVlLm5pcHBlckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjI4MDY0NjlhOGYyYjY5YzgyOWY0ZmQ1MzYxZmRlYmQwY2IwMWI0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEF1ZyA4IDA0OjE0OjI4IDIwMDcgLTA1MDAKCiAgICBUcmVhdCBwcGM2NCBob3N0IGFzIHBwYwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGRjNDI3OWIwOGZmODI0NzJiZWMyZTJjOTA4NTg2MDI0NTlmZWJlOApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOCAwOTowMTo0NiAyMDA3ICswODAwCgogICAgTWlub3IgZml4IGZvciBiaW9zIGVtdWxhdG9yIG1ha2VmaWxlCgogICAgQWRkICQob2JqKSB0byBMSUIgYXZvaWRpbmcgb2JqZWN0cyBiZSBidWlsdCBpbiB0aGUgc291cmNlIGRpcgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2U5ODFkYzg1N2FkZmM4MDM2Y2EyZjZkNWQ1YTA2YzJhOGFhNzdkNgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOCAwODozMzoxMSAyMDA3ICswODAwCgogICAgQWRkIENPTkZJR19CSU9TRU1VIGRlZmluZSB0byBndWFyZCBhbGwgdGhlIGJpb3MgZW11bGF0b3IgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CgogICAgVGhpcyBwYXRjaCBmaXggdGhlIGNvbXBpbGUgaXNzdWUgb24gdGhlIGJvYXJkIHRoYXQgZGlkIG5vdCBlbmFibGUgdGhlIGJpb3MgZW11bGF0b3IKCmNvbW1pdCBlZDgxMDY0MzM1MjJmMmVhODkzM2U5ODA4MzQ2ODYwZDA2MWQ3NzMxCkF1dGhvcjogWmFjaCBTYWRlY2tpIDxaYWNoLlNhZGVja2lAcmlwY29kZS5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTI6Mjc6MjUgMjAwNyAtMDUwMAoKICAgIHRzZWM6IGZpeCBtdWx0aXBsZSBQSFkgc3VwcG9ydAoKICAgIFRoZSBjaGFuZ2UgZW50aXRsZWQgIlJlZHVjZSBDT05GSUdfTVBDOFlYWF9UU0VDeCB0byBDT05GSUdfVFNFQ3giCiAgICBicm9rZSBtdWx0aXBsZSBQSFkgc3VwcG9ydCBpbiB0c2VjLmMuICBUaGlzIGZpeGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFphY2ggU2FkZWNraSA8WmFjaC5TYWRlY2tpQHJpcGNvZGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkY2I4NGI3MjA4YWRlMGJiZWJiZWI1NmJlYzljMmM2NGY4YjJlZWRlCkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IEF1ZyA5IDA5OjA4OjE4IDIwMDcgLTA1MDAKCiAgICB0c2VjOiBBbGxvdyBUZW4gQml0IEludGVyZmFjZSBhZGRyZXNzIHRvIGJlIGNvbmZpZ3VyYWJsZQoKICAgIEFsbG93IHRoZSBhZGRyZXNzIG9mIHRoZSBUZW4gQml0IEludGVyZmFjZSAoVEJJKSB0byBiZSBjaGFuZ2VkIGluIHRoZQogICAgZXZlbnQgb2YgYSBjb25mbGljdCB3aXRoIGFub3RoZXIgZGV2aWNlLgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+Cgpjb21taXQgM2JhNGMyZDY4ZjY1NDFkYjQ2NzdiNGFlYTEyMDcxZjU2ZTZmZjZlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyA4IDA5OjU0OjI2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDFkZTFmMGQzNzNlMDljNzgyZGVhNTU4Mzg1YTA2MjQ3MTExYmE1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDU6MTU6MTggMjAwNyAtMDUwMAoKICAgIFBvcnQgZW5hYmxlZCBmb3IgSTJDIHNpZ25hbHMgYW5kIGNoaXBzZWxlY3RzIHBvcnQgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWEzM2NlNjVhNGM1MWE2OTE5MGRkOGM0MDhmOWUxYzYyYTY2ZTk0ZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDA0OjMxOjE4IDIwMDcgLTA1MDAKCiAgICBBZGRlZCBOQU5EIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWFmOWU0NDdiZWIzZTQ5ODgxOGVmOGFkMGI4YzE1OTdjZDUwNjE0OQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDA0OjExOjIwIDIwMDcgLTA1MDAKCiAgICBBZGRlZCBJMkMgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OWMwM2MxNzVkMjY4OTA5MzE3NmZhY2YxN2M1OGNlMmNiMzIwMDAxCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6NTg6NTIgMjAwNyAtMDUwMAoKICAgIENoYW5nZWQgQ0ZHX0NMSyB0byBnZC0+YnVzX2NsayBmb3IgQ0ZHX1RJTUVSX1BSRVNDQUxFUi4gQWRkZWQgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgZm9yIHRpbWUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZDFkNjZhZjU0ZDMwNWRlMjlkMGJiZjRhYThjOWU2Mzc1ZjdmNzMxCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6NTU6MjEgMjAwNyAtMDUwMAoKICAgIEFkZGVkIHVhcnRfZ3Bpb19jb25mKCkgaW4gc2VyaWFsX2luaXQoKSwgc2VwZXJhdGVkIHVhcnQgcG9ydCBjb25maWd1cmF0aW9uIGZyb20gY3B1X2luaXQoKSB0byB1YXJ0X2dwaW9fY29uZigpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmZGU4NGE0NGI3ZTU3NWVhODBmZTBlMmQ1YmUzYjZmNzNkMWU2MzAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzo0MzozMCAyMDA3IC0wNTAwCgogICAgTW92ZWQgc3luYygpIGZyb20gYm9hcmQgZmlsZSB0byBpbmNsdWRlL2FzbS1tNjhrL2lvLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWU3MzdkODQ3NmU3ZDZhNTk2ZDE2Y2FhZjZhMzg1M2E5YTExOTBhMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjMwOjQ0IDIwMDcgLTA1MDAKCiAgICBEZWNsYXJlZCBhdHRyaWJ1dGVzIG9mIHZvaWQgX19taWlfaW5pdCh2b2lkKSBhcyBhbiBhbGlhcyBmb3IgaW50IG1paV9pbml0KHZvaWQpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5OThiZDM3ZWFkODVlOTM5NTM1NTk3MjA3MTBkM2IwNjg1YzgxZTYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzoxOToxMCAyMDA3IC0wNTAwCgogICAgUmVuYW1lZCBDT05GSUdfTUNGU0VSSUFMIHRvIENPTkZJR19NQ0ZVQVJUCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjNGMzNzIyYTM4ZDQwYjBjZjUzN2RkYWU3MmIwNGY0MDg4YjE5MGMKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDcgMTY6MTc6MDYgMjAwNyArMDgwMAoKICAgIEFkZCBDT05GSUdfQklPU0VNVSBkZWZpbmUgdG8gZ3VhcmQgYWxsIHRoZSBiaW9zIGVtdWxhdG9yIGNvZGUKCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgY29tcGlsZSBpc3N1ZSBvbiB0aGUgYm9hcmQgdGhhdCBkaWQgbm90IGVuYWJsZSB0aGUgYmlvcyBlbXVsYXRvcgoKY29tbWl0IGJmMTA2MGVhNGY5ZWFhN2U3ZDE2NGE3MGE3ZDZmMjg5Mzk4ODIwNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDcgMTY6MDI6MTMgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGJyYWNlIGVycm9yIGluIGZzL2ZhdC9mYXQuYwogICAgW3BvaW50ZWQgb3V0IGJ5IFJvZGVyaWsgV2lsZGVuYnVyZ10KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDcwNjcxNGQ5N2EwZDA4ZDU5ZWRhNGRlMjI2OGMzOWY1MDQ2ODgzMjkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBBdWcgNiAyMzo0MTo1MyAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVtb3ZlIGN1dGUgY29kZQoKY29tbWl0IGY1MDBkOWZkZWI1NzYyODg2NTZkYWM0MjcwNTJhZDJjNWNhMGFkMWEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBBdWcgNiAyMzozNToyNiAyMDA3ICswMjAwCgogICAgW0ZJWF0gRml4IHJvbWZzIGNvZGUKCmNvbW1pdCBhYjRiOTU2ZDMxNDNmOGY4MTc0MDg5MDUzZjVkZmFiYmIwNDc2MmIwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gQXVnIDYgMjM6MzE6NDkgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvZGluZyBzdHlsZSBjbGVhbnVwIC0gV29sZmdhbmcncyBzdWdnZXN0aW9ucwoKY29tbWl0IDZjMzNjNzg1NTdjYTZmOGRhNjhjMDFjZTMzZTI3ODY5NTE5N2QzZjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMjM6MjE6MDUgMjAwNyArMDIwMAoKICAgIEZpeGVkIHR5cG8gaW4gUkVBRE1FIChwb2ludGVkIG91dCBieSBNYXJ0aW4gSm9zdCkuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MzcyMjNhZmE2MWY2NDQ4MGRmMzFjZTQ0MGE5Y2IzODZkZjRhODE0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMjE6MTA6MTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgQmFtYm9vIFJFQURNRSBkb2MvUkVBRE1FLmJhbWJvbwoKICAgIEFzIHN1Z2dlc3RlZCBieSBFdWdlbmUgTydCcmllbiA8RXVnZW5lLk8nQnJpZW5AYWR2YW50ZWNoYW10LmNvbT4sCiAgICBoZXJlIGFuIHVwZGF0ZWQgQmFtYm9vIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWM3ZTRiMDYyMTRkYjYxYmIyMWYxYmNiZTU3Yzk3NTE5NjY5YmFhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAwMjoxNzozNiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyMjE4MzhjYzdlYjE3ODM3MGZmNjJhYTA1OTIwYTU4MmUxMmFjMzIyCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOTowMzoyMiAyMDA3ICswODAwCgogICAgUmVtb3ZlIHRoZSBiaW9zIGVtdWxhdG9yIGZyb20gTUFJIGJvYXJkLgoKICAgIFRoZSBiaW9zIGVtdWxhdG9yIGluIHRoZSBNQUkgYm9hcmQgY2FuIG5vdCBwYXNzIGNvbXBpbGUKICAgIGFuZCBoYXZlIGEgbG90IG9mIGNyYXAgaW4gaXQuIHJlbW92ZSBpdCBhbmQgd2lsbCBoYXZlIGEKICAgIGNsZWFuIGFuZCBzbWFsbCBiaW9zIGVtdWxhdG9yIGluIHRoZSBkcml2ZXJzIGRpcmVjdG9yeQogICAgd2hpY2ggY2FuIGJlIHVlc2VkIGZvciBldmVyeSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2MTgzMzI0MDliYjk2ZjQ0NDhkMTcxMjg5OTM2OWZjODBjMGI0ODkKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDEzIDEyOjE0OjU5IDIwMDcgKzA4MDAKCiAgICBGaXggc29tZSBjb21waWxlIGlzc3VlcyBmb3IgTUFJIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGY0NjBhMWVlMTQ4YjY0OGVlMjQyYzMxNTc2NTAyODdkNDI5NjI2MApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTMgMTI6MTQ6NTggMjAwNyArMDgwMAoKICAgIENvbmZpZ3VyYXRpb25zIGZvciBBVEkgdmlkZW8gY2FyZCBCSU9TIGVtdWxhdG9yCgogICAgVGhpcyBwYXRjaCBhZGQgZGVmaW5pdGlvbiBvZiB0aGUgQklPUyBlbXVsYXRvciBhbmQgdGhlIEFUSSBmcmFtZWJ1ZmZlcgogICAgZHJpdmVyIGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlY2U5MmY4NTA1M2I4ZGY2MTNlZGNmMDViMjZhNDE2Y2JjM2Q2MjljCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA2IDA4OjM0OjU2IDIwMDcgKzA4MDAKCiAgICBUaGlzIGlzIGEgQklPUyBlbXVsYXRvciwgcG9ydGluZyBmcm9tIFNjaVRlY2ggZm9yIHUtYm9vdCwgbWFpbmx5IGZvcgogICAgQVRJIHZpZGVvIGNhcmQgQklPUy4gYW5kIGNhbiBiZSB1c2VkIGZvciB4ODYgY29kZSBlbXVsYXRpb24gYnkgc29tZQogICAgbW9kaWZpY2F0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUwNzIxODhhY2FiZGUzMTc4ZmFjN2Y1YTU5NzE1MGU2ZTc0ZmQ0MGMKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDYgMDg6MzM6MzMgMjAwNyArMDgwMAoKICAgIFRoaXMgaXMgYSBmcmFtZWJ1ZmZlciBkcml2ZXIgZm9yIEFUSSB2aWRlbyBjYXJkLCBjYW4gd29yayBmb3IgUENJOTIwMCwKICAgIFgzMDAsIFg3MDAsIFg4MDAgQVRJIHZpZGVvIGNhcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3MjhiZTM4OWU2NWZkNDdmMzRiMzNjMjU5NjI3MWViNGRiNzUxYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMDE6MDE6NDkgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODA5MmZlZjRjMjliMzk1OTU4YmI2NDk2NDdkYTdlMzc3NTczMTUxNwpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPE1hcnRpbi5LcmF1c2VAdHFzLmRlPgpEYXRlOglUdWUgRGVjIDEyIDE0OjI2OjAxIDIwMDYgKzAxMDAKCiAgICBBZGQgZnVuY3Rpb25zIHRvIGxpc3Qgb2YgZXhwb3J0ZWQgZnVuY3Rpb25zCgogICAgQWRkaXRpb25hbGx5IGV4cG9ydCB0aGUgZm9sbG93aW5nIGZ1Y3Rpb25zICh0byBtYWtlIHRyYWJfY29uZmlnIGJ1aWxkIGFnYWluKToKICAgIC0gc2ltcGxlX3N0cnRvbCgpCiAgICAtIHN0cmNtcCgpCgogICAgQWxzbyBidW1wIHRoZSBBQkkgdmVyc2lvbiB0byByZWZsZWN0IHRoaXMgY2hhbmdlCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNjNjZWM1ODE0ZmFiNWQyYjFjODY5ODIzMjc0MzM4MDdhNWFjMDI0OQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMiAxNDowOTo0OSAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4NjQxJ3MgUENJL1BDSS1FIGRyaXZlciBhIGNvbW1vbiBkcml2ZXIgZm9yIG1hbnkgRlNMIHBhcnRzLgoKICAgIEFsbCBvZiB0aGUgUENJL1BDSS1FeHByZXNzIGRyaXZlciBhbmQgaW5pdGlhbGl6YXRpb24gY29kZSB0aGF0CiAgICB3YXMgaW4gdGhlIE1QQzg2NDFIUENOIHBvcnQgaGFzIG5vdyBiZWVuIG1vdmVkIGludG8gdGhlIGNvbW1vbgogICAgZHJpdmVycy9mc2xfcGNpX2luaXQuYy4gIEluIGEgc3Vic2VxdWVudCBwYXRjaCwgdGhpcyB3aWxsIGJlCiAgICB1dGlsaXplZCBieSB0aGUgODV4eCBwb3J0cyBhcyB3ZWxsLgoKICAgIENvbW1vbiBQQ0ktRSBJTU1BUCByZWdpc3RlciBibG9ja3MgZm9yIEZTTCA4NXh4Lzg2eHggYXJlIGFkZGVkLgoKICAgIEFsc28gZW5hYmxlIHRoZSBzZWNvbmQgUENJLUV4cHJlc3MgY29udHJvbGxlciBvbiA4NjQxCiAgICBieSBnZXR0aW5nIGl0cyBCQVRTIGFuZCBDRkdfIHNldHVwIHJpZ2h0LgoKICAgIEZpeGVkIGEgdTE2IHZlbmRvciBjb21waWxlciB3YXJuaW5nIGluIEFIQ0kgZHJpdmVyIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTI3NGNhNGY2ZDY4ODMwZTdjOTE2Zjg5NzU2MWNmZjhjNDEwMWMzOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDIyOjMzOjA1IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKY29tbWl0IGFmODM3N2Q0ZWIzYTBhYzVhODMxODMwZDVjZTYzZmJmNjVmZWNiN2YKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAxNjoxMzozMSAyMDA3ICswMjAwCgogICAgW0ZJWF0gWGlsaW54IFVhcnRsaXRlIGRyaXZlcgogICAgQmVjYXVzZSBQUEM0MDUgY2FuIHVzZSBVQVJUTElURSBzZXJpYWwgaW50ZXJmYWNlIGFuZAogICAgTWljcm9ibGF6ZSBjYW4gdXNlIFVhcnQxNjU1MCBzZXJpYWwgaW50ZXJmYWNlIG5vdCBvbmx5IFVhcnRsaXRlLgoKY29tbWl0IDk4ODg5ZWRkNTBhYWRmODYyMDcxZWI1NjY0NzQ3YWQwZDU2OGEyMGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAxNTo1NDo1MyAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ2hhbmdlIGNvbmZpZ3VyYXRpb24gZm9yIFhVUFYyUCBNaWNyb2JsYXplIGJvYXJkCgpjb21taXQgNTM3MDkxYjRlZWQ5MzAyODY1ZDAzZmVmM2Y3MjEyYjRmZTVjZjI4ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDE1OjUzOjUwIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEFkZGVkIHN1cHBvcnQgZm9yIFhpbGlueCBFbWFjIGNvbW11bml0eSBkcml2ZXIKCmNvbW1pdCA4NmIxMTZiMWIxZTE2NWNhNDg0MGRhZWZlZDM2ZDJlM2I4NDYwMTczCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEF1ZyAzIDEyOjA4OjE2IDIwMDcgKzAyMDAKCiAgICBjbTFfcXAxIC0+IGNtNTIwMDogc2luZ2xlIFUtQm9vdCBpbWFnZSBmb3IgbW9kdWxlcyBmcm9tIHRoZSBjbTUyMDAgZmFtaWx5LgoKICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgbW9kdWxlcyBmcm9tIHRoZSBTY2hpbmRsZXIgY201MjAwIGZhbWlseSB0byB1c2UgYQogICAgc2luZ2xlIFUtQm9vdCBpbWFnZToKICAgIC0gcmVuYW1lIGNtMV9xcDEgdG8gY201MjAwCiAgICAtIGFkZCBydW4tdGltZSBtb2R1bGUgZGV0ZWN0aW9uCiAgICAtIHBhcmFtZXRyaXplIFNEUkFNIGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBtb2R1bGUgd2UgYXJlIHJ1bm5pbmcgb24KCiAgICBGZXcgbWlub3IsIGJvYXJkLXNwZWNpZmljIGZpeGVzIGluY2x1ZGVkIGluIHRoaXMgcGF0Y2g6CiAgICAtIGJldHRlciBNQUMgYWRkcmVzcyBoYW5kbGluZwogICAgLSB1cGRhdGVkIGRlZmF1bHQgZW52aXJvbm1lbnQgKCd1cGRhdGUnIGNvbW1hbmQgdXNlcyAre2ZpbGVzaXplfSBub3cpCiAgICAtIGltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIGluIHRoZSBhdXRvLXVwZGF0ZSBjb2RlCiAgICAtIGFsbG93IGJvb3RpbmcgVS1Cb290IGZyb20gUkFNIChDRkdfUkFNQk9PVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM3ZTcxN2ViYzJiMDQ0ZDdhNzEwNjI1NTJjOWRjMGY1NGVhOWI3NzkKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMyAwNDowNToyNSAyMDA3IC0wNTAwCgogICAgQWRkIE1hcnZlbGwgMTE0OSBQSFkgc3VwcG9ydCB0byB0aGUgVFNFQwoKY29tbWl0IGIxYjU0ZTM1MjAyOGVkMzcwYzNhYTk1ZDZmZGViOWQ2NGM1ZDJmODYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMjE6Mjc6NDYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2M2UyMjc2NGQyZjg2NTNmNjg4ODhjNjY3ZWI2NWIzOTk2YjUyNjgwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDEwOjExOjE4IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjbGVhbnVwIG9mIDxib2FyZD5fbmFuZCBidWlsZCBydWxlcy4KCmNvbW1pdCA5Y2E4ZDc5ZGUwOTZjNjViOWI5Yzg2NzI1OWIzZmY0Njg1Zjc3NWVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMDg6MzM6NTYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM5MjQwOTgxMjIwNmFjNjdhN2ZhN2FhZTI5ODUzOWE5YzM4MDRhNDYKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxODo1MTo0OCAyMDA3ICswMjAwCgogICAgW3BwYzQ0MFNQZV0gR3JhY2VmdWwgcmVjb3ZlcnkgZnJvbSBtYWNoaW5lIGNoZWNrIGR1cmluZyBQQ0llIGNvbmZpZ3VyYXRpb24KCiAgICBEdXJpbmcgY29uZmlnIHRyYW5zYWN0aW9ucyBvbiB0aGUgUENJZSBidXMgYW4gYXR0ZW1wdCB0byBzY2FuIGZvciBhCiAgICBub24tZXhpc3RlbnQgZGV2aWNlIGNhbiBsZWFkIHRvIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gd2l0aCBjZXJ0YWluCiAgICBwZXJpcGhlcmFsIGRldmljZXMuIEluIG9yZGVyIHRvIGF2b2lkIGNyYXNoaW5nIGluIHN1Y2ggc2NlbmFyaW9zIHRoZQogICAgaW5zdHJ1bWVudGVkIHZlcnNpb25zIG9mIHRoZSBjb25maWcgY3ljbGUgcmVhZCByb3V0aW5lcyBhcmUgaW50cm9kdWNlZCwgc28KICAgIHRoZSBleGNlcHRpb25zIGZpeHVwcyBmcmFtZXdvcmsgY2FuIGdyYWNlZnVsbHkgcmVjb3Zlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGRlYzk5NTU4YjllYTc1YTM3OTQwZDA3ZjQxYTM1NjVhNTBiNTRhZDEKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSnVsIDMxIDE4OjE5OjU0IDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBTZXBhcmF0ZSBzZXR0aW5ncyBmb3IgUENJZSBidXMgbnVtYmVyaW5nIG9uIDQ0MFNQZSByZXYuQQoKICAgIFRoaXMgYnJpbmdzIGJhY2sgc2VwYXJhdGUgc2V0dGluZ3MgZm9yIFBDSWUgYnVzIG51bWJlcnMgZGVwZW5kaW5nIG9uIGNoaXAKICAgIHJldmlzaW9uLCB3aGljaCBnb3QgZWxpbWluYXRlZCBpbiAyYjM5M2IwZjBhZjg0MDJlZjQzYjI1YzE5NjhiZmQyOTcxNGRkZmZhCiAgICBjb21taXQuIDQ0MFNQZSByZXYuIEEgZG9lcyBOT1Qgd29yayBwcm9wZXJseSB3aXRoIHRoZSBzYW1lIHNldHRpbmdzIGFzIGZvcgogICAgdGhlIHJldi4gQiAobm8gZGV2aWNlcyBhcmUgc2VlbiBvbiB0aGUgYnVzIGR1cmluZyBlbnVtZXJhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjZGQ5MTdhNDNkYTZmYTdmYzhmNTRhM2NjOWY0MjBjZTVlY2YzMTk3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDAwOjQ4OjQ1IDIwMDcgKzAyMDAKCiAgICBGaXggYnVpbGQgZXJyb3JzIGFuZCB3YXJuaW5ncyAvIGNvZGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQyZjY4MDA2NjI3ZWRhNmNiNmM3ZjM2NGJkZGY2MjFkYmZkMmZjNjgKQXV0aG9yOiBFdWdlbmUgT0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTA6MjQ6NTYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgQmFtYm9vIDQ0MEVQIHN1cHBvcnQKCiAgICBDaGFuZ2VkIHN0b3JhZ2UgdHlwZSBvZiBjZmdfc2ltdWxhdGVfc3BkX2VlcHJvbSB0byBjb25zdAogICAgQ2hhbmdlZCBzdG9yYWdlIHR5cGUgb2YgZ3Bpb190YWIgdG8gc3RhY2sgc3RvcmFnZQogICAgKENhbm5vdCBhY2Nlc3MgZ2xvYmFsIGRhdGEgZGVjbGFyYXRpb25zIGluIC5ic3MgdW50aWwgYWZlciBjb2RlIHJlbG9jYXRpb24pCgogICAgSW1wcm92ZWQgU0RSQU0gdGVzdHMgdG8gY2F0Y2ggcHJvYmxlbXMgd2hlcmUgZGF0YSBpcyBub3QgdW5pcXVlbHkgYWRkcmVzc2FibGUKICAgIChlLmcuIGluY29ycmVjdGx5IHByb2dyYW1tZWQgU0RSQU0gcm93IG9yIGNvbHVtbnMpCgogICAgQWRkZWQgQ09ORklHX1BST0dfU0RSQU1fVExCIHRvIHN1cHBvcnQgQmFtYm9vIFNJTU0vRElNTSBtb2R1bGVzCiAgICBGaXhlZCBBTTI5TFYzMjBEVCAoT3BDb2RlIEZsYXNoKSBzZWN0b3IgbWFwCgogICAgU2lnbmVkLW9mZi1ieTogRXVnZW5lIE9CcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVhOWY2YmNlMzgzY2M5ZmJjZGVlMjhiNTgzNjEwOWIxYTZkYmE1NzQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMzEgMDg6Mzc6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0MEVQeCBsd21vbjUgYm9hcmQgc3VwcG9ydAoKICAgIC0gQ2xlYXIgRUNDIHN0YXR1cyByZWdzIGFmdGVyIEVDQyBQT1NUIHRlc3QKICAgIC0gU2V0IGRjYnogZm9yIEVDQyBnZW5lcmF0aW9uIHdpdGggY2FjaGVzIGVuYWJsZWQgYXMgZGVmYXVsdAogICAgLSBDb2RlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjdhNTI4ZmI0MTQzM2M0YzFlMmI1ZDZiZDNmZDhkNzg2MDZmYzcyNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAzMCAxMTowNDo1NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBPbmx5IHByaW50IEVDQyByZWxhdGVkIGluZm8gd2hlbiB0aGUgZXJyb3IgYmlzIGFyZSBzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTM2MjIwYTRiYWYxZjE4OGJhNjBmMTdlOWQwZjA0MzA2OWIxMzYyYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSnVsIDI3IDE2OjQ0OjMxIDIwMDcgKzAyMDAKCiAgICBuZXcgRlBHQSBpbWFnZSBmb3IgUExVNDA1IGJvYXJkCgogICAgbmV3IEZQR0EgaW1hZ2UgZm9yIFBMVTQwNSBib2FyZCB3aXRoIGltcHJvdmVkIENvbXBhY3RGbGFzaCB0aW1pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA4OTkzZTU0YjZmMzk3OTczNzk0ZjNkNmY0N2QzYjNjMGM5OGRkNGY2CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAxNDo0Mzo1OSAyMDA3ICswMjAwCgogICAgW0FEUzUxMjFdIFN1cHBvcnQgZm9yIHRoZSBBRFM1MTIxIGJvYXJkCgogICAgVGhlIGZvbGxvd2luZyBNUEM1MTIxZSBzdWJzeXN0ZW1zIGFyZSBzdXBwb3J0ZWQ6CgogICAgLSBsb3ctbGV2ZWwgQ1BVIGluaXQKICAgIC0gTk9SIEJvb3QgRmxhc2ggKGNvbW1vbiBDRkkgZHJpdmVyKQogICAgLSBERFIgU0RSQU0KICAgIC0gRkVDCiAgICAtIEkyQwogICAgLSBXYXRjaGRvZwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+Cgpjb21taXQgMTg2M2NmYjdiMTAwYmEwZWUzNDAxNzk5NDU3YTAxZGMwNTg3NDVmOApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMTQ6MjI6MDQgMjAwNyArMDIwMAoKICAgIFtQUENdIFJlbW92ZSB1bnVzZWQgTVNSX1VTRVIgZGVmaW5pdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgZDQwMjRiYjcyZGQ4MTY5NWVjMDk5YjIxOTllZGEwZDI3YzYyM2U2MgpBdXRob3I6IEpvaG4gT3RrZW4gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KRGF0ZToJVGh1IEp1bCAyNiAxNzo0OToxMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgc3VwcG9ydCBmb3IgQU1DQyA0MDVFUCBUYWlodSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gT3RrZW4gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KCmNvbW1pdCBiNjYwOTFkZTZjNzM5MDYyMDMxMmMyNTAxZGIyM2Q4MzkxZTdjYWJiCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDI2IDE1OjA4OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogVXBkYXRlIExpbWUgaW5pdGlhbGl6YXRpb24KCiAgICBDaGFuZ2UgTGltZSBTRFJBTSBpbml0aWFsaXphdGlvbiB0byBub3cgc3VwcG9ydCAxMDBNSHogYW5kCiAgICAxMzNNSHogKGlmIGVuYWJsZWQpLiBBbHNvIHRoZSBmcmFtZWJ1ZmZlciBpcyBpbml0aWFsaXplZCB0bwogICAgZGlzcGxheSBhIGJsdWUgcmVjdGFuZ2xlIHdpdGggYSB3aGl0ZSBib3JkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlmMjRhODA4ZjE3ZmMwZjM3YjdmYjQ4MDVmNzM0NzQxMzM1Y2FlY2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMjQgMDk6NTI6NTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBTdXBwb3J0IGZvciAxMjggTUJ5dGUgTk9SIEZMQVNIIGFkZGVkCgogICAgVGhlIHVzZWQgSW50ZWwgTk9SIEZMQVNIIGNoaXBzIGhhdmUgaW50ZXJuYWxseSB0d28gZGllcywgYW5kIGFyZSBub3cKICAgIHRyZWF0ZWQgYXMgdHdvIHNlcGVyYXRlIGNoaXBzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZWRmNWJkZTE3OWVjZmJkMGE5NjEzMGQxODk5NmE5NjUxOGI3ODVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDI0IDA3OjIwOjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBsd21vbjUgaW50ZXJydXB0IGNvbnRyb2xsZXIgc2V0dXAgKHBvbGFyaXR5LCB0cmlnZ2VyLi4uKQoKICAgIEFzIHN1Z2dlc3RlZCBieSBIYWthbiBFcnlpZ2l0LCBoZXJlIGFuIHVwZGF0ZWQgc2V0dXAgZm9yIHRoZSBsd21vbjUKICAgIGludGVycnVwdCBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNzFkOTZlYWM4MTMwYjUzYTkxZjkzY2QxMGM3MGZjYTBkYjE4ZDUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDIwIDE1OjAzOjQ0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBidWcgd2l0aCBkZWZhdWx0IEdQSU8gb3V0cHV0IHZhbHVlCgogICAgQXMgc3BvdHRlZCBieSBNYXR0aGlhcyBGdWNocywgdGhlIGRlZmF1bHQgb3V0cHV0IHZhbHVlcyBmb3IgYWxsIEdQSU8xCiAgICBvdXRwdXRzIHdlcmUgbm90IHNldHVwIGNvcnJlY3RseS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1MzFlM2U4YjgzMWYzNTcwNTY0NDhmYTU3MzEzN2Q1ZmIzNzAwMGZkCkF1dGhvcjogUGF2ZWwgS29sZXNuaWtvdiA8Y29uY29yZEBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1bCAyMCAxNTowMzowMyAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIEVDQyBQT1NUIGZvciB0aGUgbHdtb241IGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIEVDQyBQb3N0IHRlc3QgZm9yIHRoZSBMd21vbjUgYm9hcmQgYmFzZWQKICAgIG9uIFBQQzQ0MEVQeCB0byBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogUGF2ZWwgS29sZXNuaWtvdiA8Y29uY29yZEBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjMzAyM2I5Zjk1ZDdhYzk1OWE3NjQ0NzFhNjUwMDEwNjJhZWNmNDEKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSnVsIDE5IDE3OjEyOjI4IDIwMDcgKzAyMDAKCiAgICBGaXggYnJlYWthZ2Ugb2YgOHh4IGJvYXJkcyBmcm9tIHJlY2VudCBjb21taXQuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgbmVnYXRpdmUgY29uc2VxdWVuY2VzIGZvciA4eHggb2YgdGhlIHJlY2VudAogICAgInBwYzR4eDogQ2xlYW4gdXAgNDQwIGV4Y2VwdGlvbnMgaGFuZGxpbmciIGNvbW1pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM4ODNmNmVhMzJkY2U5MWYwNzY3MGIzYWFmZWNmNmM5OWIxZTUzNDEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTM6MTE6MTIgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4NDhlYzg1OGY3NGVkNmRhYjA2ZmI2ZDVkZGM5MzNlMGExMzI4YmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTA6MDI6MTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJhNDlmYzE3ZDA5MDIwZTdlYmQ5NTM2Njk0ZDk5ZDIwZTQxOWZjYjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTA6MDE6MzggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQU1DQyBMdWFuIHVzZXMgdGhlIG5ldyBib2FyZHNwZWNpZmljIEREUjIgY29udHJvbGxlciBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjNmMTc0MjJhZWIwM2ZiODFhN2FjOGM3OGQyYjA1ZDA1YWE0Y2Y5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEwOjAwOjQzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFN1cHBvcnQgZm9yIFl1Y2NhIGJvYXJkIHdpdGggNDQwU1BlIFJldiBBIGFkZGVkIHRvIDQ0eF9zcGRfZGRyMi5jCgogICAgVGhlIG5ldyBib2FyZHNwZWNpZmljIEREUjIgY29udHJvbGxlciBjb25maWd1cmF0aW9uIGlzIHVzZWQgZm9yIHRoZSBZdWNjYQogICAgYm9hcmQuIE5vdyB0aGUgWXVjY2EgYm9hcmQgd2l0aCA0NDBTUGUgUmV2LiBBIGNoaXBzIGlzIGFsc28gc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZWQxNGFkZGY5N2M4Y2Q4ZjUzMWU5YWU3YjJkM2UyMjJmZmZkNTNlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDA5OjU3OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBuZXcgd2VhayBmdW5jdGlvbnMgdG8gc3VwcG9ydCBib2FyZHNwZWNpZmljIEREUjIgY29uZmlndXJhdGlvbgoKICAgIFRoZSBuZXcgIndlYWsiIGZ1bmN0aW9ucyBkZHJfd3JkdHIoKSBhbmQgZGRyX2Nsa3RyKCkgYXJlIGFkZGVkIHRvIGJldHRlcgogICAgc3VwcG9ydCBub24gZGVmYXVsdCwgYm9hcmRzcGVjaWZpYyBERFIoMikgY29udHJvbGxlciBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1NzQzYTkyMDdhMzcwYjkwZjA5YjIwZWJkNjExNjdjODA2YjkzN2YzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDA4OjUzOjUxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCByZW1vdmVfdGxiKCkgZnVuY3Rpb24gdG8gcmVtb3ZlIGEgbWVtIGFyZWEgZnJvbSBUTEIgc2V0dXAKCiAgICBUaGUgbmV3IGZ1bmN0aW9uIHJlbW92ZV90bGIoKSBjYW4gYmUgdXNlZCB0byByZW1vdmUgdGhlIFRMQidzIHVzZWQgdG8KICAgIG1hcCBhIHNwZWNpZmljIG1lbW9yeSByZWdpb24uIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHRoZSBERFIoMikKICAgIHNldHVwIHJvdXRpbmVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUgU0RSQU0gYXJlYSB0ZW1wb3JhcmlseSBhcyBhIGNhY2hlZAogICAgYXJlYSAoZm9yIHNwZWVkdXAgb24gYXV0by1jYWxpYnJhdGlvbiBhbmQgRUNDIGdlbmVyYXRpb24pIGFuZCBsYXRlcgogICAgbmVlZCB0aGlzIGFyZWEgdW5jYWNoZWQgZm9yIG5vcm1hbCB1c2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGMwYTljZGExYmRlMzcxMDY1MjA0NzZlZDQ4NmJkNjdlYjhkMzBhZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEp1bCAxNiAwMDozMTowNyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBTdXBwb3J0IGZvciBYaWxpbnggRW1hY0xpdGUgY29udHJvbGxlcgoKY29tbWl0IDNhNmNhYjg0NGNmNzRmNzY2MzlkNzk1ZTBiZTg3MTdlMDJjODZhZjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSnVsIDE0IDIyOjUxOjAyIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MjgwZjM1MmM4ZGEzM2IxZDdmYmY0NDg3Njg3MTdkOWUxNmZmOWExCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgSnVsIDE0IDEzOjExOjI4IDIwMDcgKzAyMDAKCiAgICBbRklYXSBzdXBwb3J0IGZvciBzaW1wbHkgbWVhc3VyaW5nIHRpbWUKCmNvbW1pdCA5MWJiNGNhNjY1ZDJlMGNmN2Y2MGM0YjViMzcwOTkwMjUwZWMwYzQzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgSnVsIDE0IDEyOjQxOjIzIDIwMDcgKzAyMDAKCiAgICBbRlNdIEFkZGVkIHN1cHBvcnQgZm9yIFJPTUZTCgpjb21taXQgMDExNTk1MzA3NzMxYTdhNjdhNzQ0NWQxMDdjMjc5ZDAzMWU4YWI5NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IEp1bCAxNCAwMTowNjo1OCAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQktIGZpeCBjb21waWxlIGVycm9yLCBpZiBCVUlMRF9ESVIgaXMgdXNlZAoKY29tbWl0IDVhMmYxMDk4ZDgxYWQ1OGIzMDllNWU1NThkMDQ5MjY0MzE2NmE3OTkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBKdWwgMTQgMDA6MTg6NDggMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3VwcG9ydCB0aW1lIHdpdGhvdXQgdGltZXIKCmNvbW1pdCBhNDc2Y2EyYWMyMjE3ZGRkMDVhMmJmMGM1MTQwNzU4MTRiMTBhM2MwCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDEzIDIxOjQzOjU1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSBwcm9ibGVtIHdpdGggZGlzYWJsZWQgQkFSUkVMIFNISUZURVIKCmNvbW1pdCA1NWUyNmFkNjIxMDdkMmYxNGY3NTdkZTNhZTBiMTRiOWFhN2FlZDk0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDEzIDIxOjQxOjQ0IDIwMDcgKzAyMDAKCiAgICBbRklYXSBjb3JyZWN0IGhlbHAgZm9yIHJzcHIKCmNvbW1pdCBmYWQ2MzQwNzE1NGY0NjI0NmNlODBkNTNhOWM2NjlhNDQzNjJhYzY3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSnVsIDEzIDA5OjU0OjE3IDIwMDcgKzAyMDAKCiAgICBtYWtlIHNob3dfYm9vdF9wcm9ncmVzcyAoKSB3ZWFrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDkwNzkwMjQ3MjM5MWI2Y2ExODc2ZWMzMDA2ODc1NjJlY2FmNDU5YjEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTMgMDg6MjY6MDUgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JLSBUaGUgRElBRyBMRURzIGFyZSBub3cgYmxpbmtpbmcsIGlmIGFuIGVycm9yIG9jY3VyCgkJLSBmaXggY29tcGlsZSBlcnJvciwgaWYgQlVJTERfRElSIGlzIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBhMmUxYzcwOThjZjk1NzQzODZiMGM5Njg0MWRmYzhlYTVjYzkzNTc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEyIDE2OjMyOjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSByZWNlaXZlIGJ1ZmZlciBoYW5kbGluZyBpbiB0aGUgNHh4IGVtYWMgZHJpdmVyCgogICAgVGhpcyBjaGFuZ2UgZml4ZXMgYSBidWcgaW4gdGhlIHJlY2VpdmUgYnVmZmVyIGhhbmRsaW5nLCB0aGF0CiAgICBjb3VsZCBsZWFkIHRvIHByb2JsZW1zIHVwb24gaGlnaCBuZXR3b3JrIHRyYWZmaWMgKGJyb2FkY2FzdHMuLi4pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyMzlmMDVlZTRkZDRjZmUwYjUwZjI1MWI1MzNkY2ViZTllNjdjMzYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMiAwMTo0NTozNCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRywgbWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YTU2YWYzYjUyMmJhNDdmYjMzYTNmZWU4NGQyM2JmMWU1NDI5NjU0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVuIDggMTY6NDE6MTggMjAwNyAtMDUwMAoKICAgIFJlbW92ZSBlcnJvbmVvdXMgZXJyYXRhIGNvZGUgZnJvbSBNYXJ2ZWwgODhFMTExMVMgZHJpdmVyCgogICAgVGhlIE1hcnZlbCA4OEUxMTExUyBkcml2ZXIgZm9yIHRoZSBUU0VDIHdhcyBjb3BpZWQgZnJvbSB0aGUKICAgIDg4RTExMDEgZHJpdmVyLCBhbmQgaW5jbHVkZWQgYSBmaXggZm9yIGFuIGVycmF0dW0gd2hpY2ggZG9lcyBub3QKICAgIGV4aXN0IG9uIHRoYXQgcGFydC4gIE5vdyBpdCBpcyByZW1vdmVkCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4MmVmY2YyM2ZkMDM2NDdlMDFlMmZiZTI4YTdhMzYyMzkxNTZjYzAKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNSAxNjozODo0NCAyMDA3IC0wNTAwCgogICAgRnJvbTogZXJhbiBsaWJlcnR5IDxlcmFuLmxpYmVydHlAZ21haWwuY29tPgoKICAgIGFkZHMgdGhlIHJlc2V0IHJlZ2lzdGVyIHRvIDg1eHggaW1tYXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBFcmFuIExpYmVydHkgPGVyYW4ubGliZXJ0eUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDNlYzBkOTQzYTA0NWJkYjk5ZTE1OWU3YmJjNzc0MzBlMDlmMTFkNwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1heSAxMCAxNzo1MDowMSAyMDA3IC0wNTAwCgogICAgUG9saXNoZWQgdGhlIDg1eHggQURTIGNvbmZpZyBmaWxlcwoKICAgIE1hZGUgdGhlIGJvb3QgY29tbWFuZHMgdXNlIGRldmljZSB0cmVlcyBieSBkZWZhdWx0LgogICAgQWxzbyBtb3ZlZCB0aGUgcmFtZGlzayB0byAxMDAwMDAwIChJIHRoaW5rIHRoZSBwcmV2aW91cyBhZGRyZXNzCiAgICB3YXMgZ2V0dGluZyBvdmVycmlkZGVuIGR1cmluZyBib290KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmZiMzdiMzJkMWIwYjAzZjE4MDc3ZGJhNDljYzY2YTZlNzZmYTAzOApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTowMzozMiAyMDA3IC0wNTAwCgogICAgODU0NGRzOiBGaXggTWFrZWZpbGUgYWZ0ZXIgbW92aW5nIHBpeGlzIHRvIGJvYXJkL2ZyZWVzY2FsZS4KCiAgICBUaGUgT0JKVFJFRSAhPSBTUkNUUkVFIGJ1aWxkIHNjZW5hcmlvIHdhcyBicm9rZW4uCiAgICBUaGlzIGZpeGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJhM2NlZTQzYzNiNzFmYTViOGQ5MWRiMTlmMDUwNjc4NjUyOTBmM2UKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgOSAwMDo1NDoyMCAyMDA3IC0wNTAwCgogICAgdHNlYzogRml4IFBIWSBjb2RlIHRvIG1hdGNoIGZpcnN0IGRyaXZlcgoKICAgIEphcnJvbGQgV2VuIG5vdGljZWQgdGhhdCB0aGUgZ2VuZXJpYyBQSFkgY29kZSBhbHdheXMgbWF0Y2hlcwogICAgdW5kZXIgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24uICBDaGFuZ2UgaXQgc28gdGhlIGZpcnN0IG1hdGNoCiAgICB3aW5zLCBhbmQgKm9ubHkqIHVua25vd24gUEhZcyB0cmlnZ2VyIHRoZSBnZW5lcmljIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjY2MwOTFhYWM2MWEzOGNkOTk4ZDU3NWQ5MmY3MjMyZTI1NmQ2MzEyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDggMTc6Mjc6NDMgMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBDUE0gZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbiB0byA4NTYwIEFEUwoKICAgICogQWRkcyBjb2RlIHRvIG1vZGlmeSBDUE0gZnJlcXVlbmNpZXMKICAgICogQ2xlYW5zIHVwIHRoZSBjb25maWcgZmlsZSB0byAjZGVmaW5lIFRTRUMgYW5kIChmb3Igbm93KSAjdW5kZWYgRkNDCiAgICAqIEFkZHMgdGhlIE1JSSBjb21tYW5kIGZvciBhbGwgODU2MCBBRFMgY29uZmlndXJhdGlvbnMKICAgICogVXBkYXRlcyBjb25maWcgZmlsZSB0byBwcm92aWRlIGNvbnZlbmllbmNlIGNvbW1hbmRzIGZvciBib290aW5nCiAgICAgIHdpdGggYSBkZXZpY2UgdHJlZQoKICAgIFNpZ25lZC1vZmYtYnk6IFZpdGFseSBCb3JkdWcgPHZib3JkdWdAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NTA3ZDU2Y2NhZjdhYWUxYzQ3NDM0MmE5YTU1NDAxNjVjZDdlOWQ5CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDggMTc6MjM6MDIgMjAwNyAtMDUwMAoKICAgIEZpeCBNYXJ2ZWxsIDg4ZTExNDUgUEhZIGluaXQgY29kZQoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgTWFydmVsbCA4OGUxMTQ1IFBIWSBpbml0IGNvZGUgaW4gdGhlIFRTRUMgZHJpdmVyCiAgICB3aGVyZSB0aGUgcmVzZXQgd2FzIGJlaW5nIGRvbmUgYWZ0ZXIgdGhlIGVycmF0YSBjb2RlIGluc3RlYWQgb2YKICAgIGJlZm9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkYzIxMGRlYzViYWNlOThhNTBiNmJhOTA1MzQ3ODkwMDkxYTliYjAKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUyOjE2IDIwMDcgLTA1MDAKCiAgICBBZGQgc2ltcGxlIGFnZW50L2VuZC1wb2ludCBjb25maWd1cmF0aW9uIGluIFBDSSBBdXRvQ29uZmlnIGZvciBQQ0lfQ0xBU1NfUFJPQ0VTU09SX1BPV0VSUEMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOGI4NWYzYmE0Y2Q4OTMwZTBhMmZlYTIxMDBjODE1ZDY0MjAxNzY1CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MjowOCAyMDA3IC0wNTAwCgogICAgcGNpYXV0byBzZXR1cCBicmlkZ2UKCiAgICBUaGUgUDJQIGJyaWRnZSBidXMgbnVtYmVycyBwcm9ncmFtbWVkIGludG8gdGhlIGRldmljZSBhcmUgcmVsYXRpdmUgdG8KICAgIGhvc2UtPmZpcnN0X2J1c25vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTcxZjQ5ZmE3MTcwMDRjYTQyNjhiNGUyNDA1N2VmYzdiZjlmOTg3YgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTI6MDEgMjAwNyAtMDUwMAoKICAgIFN1cHBvcnQgUENJZSBleHRlbmRlZCBjb25maWcgcmVnaXN0ZXJzCgogICAgRlNMIFBDSWUgYmxvY2sgaGFzIGV4dGVuZGVkIGNmZyByZWdpc3RlcnMgaW4gdGhlIDEwMCBhbmQgNDAwIHJhbmdlLgogICAgRm9yIGV4YW1wbGUsIHRvIHJlYWQgdGhlIExUU1NNIHJlZ2lzdGVyOiBwY2kgZGlzcGxheSA8YnVzbj4uMCA0MDQgMQoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmE1ZmViMTI1ODFiYjI5MTJjZTMwMWU0ODY2YjcxZjg0NmU5ZmMwNwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTE6NDggMjAwNyAtMDUwMAoKICAgIE1pbm9yIGltcHJvdmVtZW50cyB0byBkcml2ZXJzL3BjaV9hdXRvLmMKCiAgICAtIE1ha2UgcGNpYXV0b197cHJlLHBvc3R9c2Nhbl9zZXR1cF9icmlkZ2Ugbm9uLXN0YXRpYwogICAgLSBBZGRlZCBwaHlzaWNhbCBhZGRyZXNzIGRpc3BsYXkgaW4gZGVidWcgbWVzc2FnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGU4MWFkZGFiN2JiNzRkMjBkZGY2ODFjZTliYWJjODgwYTgyOGVlCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MTozNSAyMDA3IC0wNTAwCgogICAgU3RhcnQgcGNpIGhvc2Ugc2NhbiBmcm9tIGhvc2UtPmN1cnJlbnRfYnVzbm8uCgogICAgRW5zdXJlIGhvc2UtPmN1cnJlbnRfYnVzbm8gaXMgbm90IGxlc3MgdGhhbiBmaXJzdF9idXNuby4gIFRoaXMgZml4ZXMKICAgIGJyb2tlbiBib2FyZCBjb2RlIHdoaWNoIGxlYXZlcyBjdXJyZW50X2J1c25vPTAgd2hlbiBmaXJzdF9idXNubyBpcwogICAgZ3JlYXRlciB0aGFuIDAgZm9yIHRoZSBjYXNlcyB3aXRoIG11bHRpcGxlIGNvbnRyb2xsZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg2NWIxZmI3ODQzYTA4YWQ0OWE2MzE5YTM2NDE1NzUyMjc2ZmY0OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAxMSAxMjoxMzo1MyAyMDA3ICswMjAwCgogICAgRml4IHNvbWUgY29tcGlsZSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXRlc3QgQ0ZHX0NNRF94eHggY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYTFkZjMwODkyNmE2ZjcwZTM1MDRjNTc1MTRlZjI3YWMzMWZkMTNhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAyMDoxMTowNyAyMDA3ICswMjAwCgogICAgQ00xLlFQMTogU3VwcG9ydCBmb3IgdGhlIFNjaGluZGxlciBDTTEuUVAxIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDk2ZTFkNzViZTgxOTNjYTc5ZTQyMTVhMzY4YmY5ZDdmMjM2MjQ1MGYKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTEgMTg6Mzk6MTEgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JLSBTaG93IG9uIHRoZSBESUFHIExFRHMsIGlmIHRoZSBTSEExIGNoZWNrIGZhaWxlZAoJCS0gbm93IHRoZSBGbGFzaCBTVCBNMjlXMDQwQiBpcyBzdXBwb3J0ZWQgKG5vdCB0ZXN0ZWQpCgkJLSBmaXggdGhlICJsZWQiIGNvbW1hbmQKCQktIGZpeCBjb21waWxlIGVycm9yLCBpZiBCVUlMRF9ESVIgaXMgdXNlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU5NTE0NzUxY2ZhNWNjZTYxZWE2OTlmYTBkM2ViMzc4OThhNWVlYjUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgOCAxMzo0NDoyNyAyMDA3ICswMjAwCgogICAgRml4IG1hbGxvYyBwcm9ibGVtIGludHJvZHVjZWQgd2l0aCB0aGUgcmVsb2NhdGlvbiBmaXh1cCBmb3IgdGhlIFBQQyBwbGF0Zm9ybQoKICAgIFRoZSByZWxvY2F0aW9uIGZpeHVwIGRpZG4ndCBoYW5kbGUgdGhlIG1hbGxvYyBwb2ludGVyIGluaXRpYWxpemF0aW9uCiAgICBjb3JyZWN0bHkuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtLiBUZXN0ZWQgc3VjY2Vzc2Z1bGx5IG9uIDR4eC4KICAgIFRoZSByZWxvY2F0aW9uIGZpeHVwIHBhdGNoZXMgZm9yIDR4eCB3aWxsIGZvbGxvdyBzb29uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGNhODc0ZGI2MjcxOGU0MTI1MzY1OWU2MGYzYTFkZTdlYjQxOGNlCkF1dGhvcjogVHNpQ2h1bmcgPHRjbGlld0BHb2t1Lihub25lKT4KRGF0ZToJVHVlIEp1bCAxMCAxNTo0NTo0MyAyMDA3IC0wNTAwCgogICAgQ2FjaGUgdXBkYXRlIGFuZCBhZGRlZCBDRkdfVU5JRllfQ0FDSEUKCiAgICBFbmFibGVkIGNhY2hlIGluIGNwdV9pbml0X2YoKSBmb3IgZmFzdGVyIGZsYXNoIHRvIG1lbSBhbGxvY2F0aW9uLiBVcGRhdGVkIGNhY2hlIGhhbmRsaW5nIGluIHN0YXJ0LlMuIEFwcGxpZWQgY2FjaGUgaW52YWxpZGF0ZSBpbiBmZWNfc2VuZCgpIGFuZCBmZWNfcmVjdigpLiBBZGRlZCBDRkdfVU5JRllfQ0FDSEUgZm9yIENGIFYzIG9ubHkuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgPHRjbGlld0BHb2t1Lihub25lKT4KCmNvbW1pdCA1MmIwMTc2MDRhOGY0ZDRhNzk1ODgwZWY2ZTc4NjFkN2YyZjFiMDA1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MzY6MTYgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZS4gSW5jbHVkZSBkdGltZXJfaW50cl9zZXR1cCgpLiBDaGFuZ2VkIHRpbWVyIGRpdmlkZXIgdG8gZ2xvYmFsIGRlZmluZS4KCiAgICBJbmNsdWRlIGltbWFwLmggYW5kIHRpbWVyLmguIE1vdmVkIGR0aW1lciBpbnRlcnJ1cHQgc2V0dXAgdG8gZHRpbWVyX2ludHJfc2V0dXAoKSBmcm9tIGNwdS9tY2Y1MzJ4L2ludGVycnVwdHMuYy4gQ2hhbmdlZCAoQ0ZHX0NMSyAvMTAwMDAwMCkgLTEgPDwgOCB0byBDRkdfVElNRVJfUFJFU0NBTEVSCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVjZGMwN2M3ZWY4ZjA4ZWE1NWQzYzQ3ZWQ5MjIxZDkxYWE2ZDVmYWMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzozMToyNSAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlcwoKICAgIEluY2x1ZGUgaW1tYXAuaCBhbmQgcmVuYW1lZCBtY2ZydGMuaCB0byBydGMuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyODcwZTk4YWM4ZTU1NTNlOTE4N2IxMmE0N2U1ZjQ2YmFiYjUzOTkwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6Mjk6MjEgMjAwNyAtMDUwMAoKICAgIEFkZCBtY2ZmZWNfaW5pdGlhbGl6ZSgpCgogICAgQWRkZWQgbWNmZmVjX2luaXRpYWxpemUoKSBpbiBldGhfaW5pdGlhbGl6ZSgpCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1YTI1YmZkMGM1MmY4YTNmYTEzNzIxNmJjOTRkMzJmOTBiZWRjNWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyNzo0MCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCBjbGVhbiB1cAoKICAgIEluY2x1ZGUgaW1tYXAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwY2VlOWM2NjMxODYwMmM4NTZhODk5YWU1ZmE3NTc5Y2NiYTY0NDNhCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MjM6MTUgMjAwNyAtMDUwMAoKICAgIE5ldyB1YXJ0IHN0cnVjdHVyZSBhbmQgZGVmaW5lcwoKICAgIFNlcGVyYXRlZCBmcm9tIG1jZnVhcnQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTBlNzlkZThkOTllOWM5ZDY5ZDYwYmZmZjlmMjRjMzM3MTY1OTAwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MjI6MzEgMjAwNyAtMDUwMAoKICAgIE5ldyB0aW1lciBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMKCiAgICBTZXBlcmF0ZWQgZnJvbSBtY2Z0aW1lci5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUwNGFjYjJlYmE0NzgyNDg5NDE3MjQwZWZmNzZlMjBlMTc2YWVjMTAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyMTowOSAyMDA3IC0wNTAwCgogICAgUmVuYW1lIG1jZnJ0YyB0byBydGMKCiAgICBTaW5jZSBpdCBpcyBhbHJlYWR5IGluIG02OGsgZm9sZGVyLCB1bi1uZWNlc3NhcnkgdG8gcGFkIG1jZi4gUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHRvIGltbWFwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmJkODA2ZmU0ZmMyMzk1OGI4Zjc4Nzc4MTk5ZTdhNmUzZjhmNmFkNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjE3OjM2IDIwMDcgLTA1MDAKCiAgICBSZW5hbWUgbWNmc2VyaWFsLmMuIFVwZGF0ZSBpbmNsdWRlIGhlYWRlcgoKICAgIFJlbmFtZWQgbWNmc2VyaWFsLmMgdG8gbWNmdWFydC5jLiBNb2RpZmllZCBNYWtlZmlsZSBmb3IgbWNmdWFydC5vIGZyb20gbWNmc2VyaWFsLm8uIFJlcGxhY2UgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHRvIGltbWFwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjIyMDhmYmMyZWI5ZGUzZjQyODViZmFhMDIxYzZlYmFlMTZjOWIwZQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjEzOjU4IDIwMDcgLTA1MDAKCiAgICBIZWFkZXIgZmlsZSB1cGRhdGUsIGNsZWFuIHVwIGFuZCBjYWNoZSBoYW5kbGluZwoKICAgIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIEluY2x1ZGVkIGNhY2hlX2ludmFsaWQuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJlM2YyNWFlOTA4MmRhYTlmNWQxODFkYjQ1ZGZiYzJlNTJjZTBmOTcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoxMDo0MCAyMDA3IC0wNTAwCgogICAgQ3JlYXRlIGludGVycnVwdHMuYyBhbmQgbW9kaWZ5IE1ha2VmaWxlCgogICAgaW50ZXJydXB0X2luaXQoKSBhbmQgZHRpbWVyX2ludHJfc2V0dXAoKSBhcmUgcGxhY2VkIGluIGludGVycnVwdHMuYy4gQWRkZWQgaW50ZXJydXB0cy5vIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZDEwNGYxZWQ2NTVlZGE1MGMwNmJhNjM2MjM3YTgzZWQ5NDNmMzQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowNjo1NSAyMDA3IC0wNTAwCgogICAgRW5hYmxlIEljYWNoZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOWJmM2RlMzc3YjJiYWU3MGM5ODNjOWI5N2ZlYWU5MTQ5OTllNzM1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDU6MzEgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgc29tZSBjbGVhbiB1cAoKICAgIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIFJlbW92ZWQgd2hpdGVzcGFjZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg0YTAxNWI1MmVjODIwYTVhZTE3MzcxN2Q3ODUxNmRlNzMxYzg5YzIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowMzoyOCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCBlbmFibGUgaWNhY2hlCgogICAgUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gRW5hYmxlZCBpY2FjaGVfZW5hYmxlKCkgaW4gY3B1X2luaXRfcigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YTE3ZTc1OWM3YThiNThlOTEwZGFmNTRkZjYxMWU5NGZjOGNhMDc0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDE6MjIgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgcmVtb3ZlZCBpbnRlcnJ1cHRfaW5pdCgpCgogICAgUmVwbGFjZSBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBSZW1vdmVkIGludGVycnVwdF9pbml0KCkgYW5kIHBsYWNlZCBpdCBpbiBpbnRlcnJ1cHRzLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2I2MzU0OTJjOTViZDBkNmUwOGY5M2Y2OTk4MjFjYmExZjYwMmE2NApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjU3OjQ2IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgZm9yIGZsYXNoLm8gYW5kIG1paS5vCgogICAgUmVtb3ZlZCBmbGFzaC5vIGFuZCBhZGRlZCBtaWkubwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNWRlZDI3NWQ4MzllNGZmNzlmNDE3MThkNTBhODM1ZDk4OWY1N2JjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTY6MTkgMjAwNyAtMDUwMAoKICAgIE1JSSBmdW5jdGlvbnMgY2FsbHMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQyN2M4MTQxMDQ1NjBlMjliZGExNDk1NWM2NzcwMzI0NWFhYWE1YjQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1NDo0MiAyMDA3IC0wNTAwCgogICAgUmVtb3ZlZCBNSUkgZnVuY3Rpb25zIGFuZCByZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLgoKICAgIFRoZSByZW1vdmVkIE1JSSByb3V0aW5lcyB3aWxsIGJlIHBsYWNlZCBpbiBtaWkuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDFhNzkzZmRhMDljNjNkZjVhNDk2ZjA5ZGMxYzdjYjI2ZTY3NTFhMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjUxOjA1IDIwMDcgLTA1MDAKCiAgICBEdXBsaWNhdGUgY29kZQoKICAgIFRoZXJlIGlzIGEgQ29tbW9uIEZsYXNoIEludGVyZmFjZSBEcml2ZXIgZXhpc3RlZC4gVG8gdXNlIHRoZSBDRkkgZHJpdmVyLCBkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSBpbiBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI3NDQzNTRhODQzN2I4Zjc4ZGIxNzhlMzA2NjAyMTU2ODhiZmY1NzAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0NjozOCAyMDA3IC0wNTAwCgogICAgU2VwZXJhdGUgb2xkIHN0cnVjdHVyZSBkZWZpbmVzIGFuZCBuZXcgc3RydWN0dXJlIGRlZmluZXMKCiAgICBSZW1vdmVkIG5ldyB1YXJ0IHN0cnVjdHVyZSBhbmQgZGVmaW5lcyB0byB1YXJ0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmJkNTg2MDhkYmNmZjg4OTBjYTlhMGM1OWU4NjFhYzI0ZjhiYjIzMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQ1OjAxIDIwMDcgLTA1MDAKCiAgICBTZXBlcmF0ZSBvbGQgc3RydWN0dXJlIGRlZmluZXMgYW5kIG5ldyBzdHJ1Y3R1cmUgZGVmaW5lcwoKICAgIE5ldyB0aW1lciBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMgd2lsbCBtb3ZlIHRvIG5ldyB0aW1lci5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhjZDVjZDZkZTRmZjkyZTAzOTc4MzM4ZWQ3YWViM2NlN2I3Yjk3ODQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0MjoyMyAyMDA3IC0wNTAwCgogICAgQ2xlYW4gdXAKCiAgICBSZW1vdmVkIHdoaXRlc3BhY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTE0ODcxZjU2NWRkOGJkMTEyMWU0YTNhYzE2NjVhNzkwZTIwYjhmMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQxOjI0IDIwMDcgLTA1MDAKCiAgICBDbGVhbiB1cAoKICAgIFJlcGxhY2VkIHdoaXRlc3BhY2Ugd2l0aCB0YWJzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4ZGJmZWFiYzdhZmZmZTMwNjA5YTQ0ODlmMTBjMjJjYjY3ZWY3ZGQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjozOTowNyAyMDA3IC0wNTAwCgogICAgQ3JlYXRlIG5ldyBoZWFkZXIgZmlsZSBhbmQgbW92ZSBwZXJpcGhlcmFscyBiYXNlIGFkZHJlc3MgZnJvbSBjb25maWdzIGZpbGUgdG8gbmV3IGhlYWRlciBmaWxlLgoKICAgIENyZWF0ZSBuZXcgaGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbW1hcF81eHh4LmggYW5kIG01eHh4LmggYW5kIHRvIHNoYXJlIGFtb25nIGRyaXZlcnMgd2l0aG91dCB1cGRhdGUgaW4gZHJpdmVyIGZpbGUgZWFjaCBwcm9jZXNzb3IgaXMgYWRkZWQuIE1vdmVkIHBlcmlwaGVyYWxzIGJhc2UgYWRkcmVzcyBhbmQgZGVmaW5lcyBmcm9tIGNvbmZpZ3MgZmlsZSB0byBpbW1hcC5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTI5NmUzMWM0NDExZjk2ZDljYjNkMmFmYzhmY2IwMDY4NjdhYmZhCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6MjQ6NTggMjAwNyAtMDUwMAoKICAgIFJldmVydCBmaWxlIG1vZGUKCiAgICBDaGFuZ2VkIE1BS0VBTEwgZmlsZSBtb2RlIHRvIGV4ZWN1dGFibGUsIHJlbW92ZWQgZXhlY3V0YWJsZSBmaWxlIG1vZGUgZnJvbSBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiM2FmZjBjYjllY2YyMzZkN2U4YzkzNzYxZGQxZGFkZjY4MzdhNTgyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMToxOTo1MCAyMDA3IC0wNTAwCgogICAgZGlzay8gZG9jLyBsaWJfKi8gYW5kIHRvb2xzLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGI1ZDg2ZjAyMTViY2I2YzI5MzUxMGM1MGViMDUwZTkyODgzYjdhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMToxMzoyMSAyMDA3IC0wNTAwCgogICAgZHJpdmVycy86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjQwYTdmM2UzODg4YjQyYTQzNjc0YjA5OWU1NDcwMDIyYzhjNTQ0YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MDc6NTYgMjAwNyAtMDUwMAoKICAgIGZzLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MTBmMmU5YzI4YTljMTAxZTA5ZmExYjc4MTQzY2Y1ZjAwZWQxNTkzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMTowNTowMiAyMDA3IC0wNTAwCgogICAgbmV0LzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MDI1MzE3ODgzNzYwNDZkYTIxMmFmZDE2NjFjZmZiNjJmM2RhYTFjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMTowMjo0NCAyMDA3IC0wNTAwCgogICAgY29tbW9uLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMzliNTc0MTU4MzhjNzNmYjBhMzdlY2E4NGRlM2M2OGJhOTkwNTg2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDo0ODoyMiAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2otel0qOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3YTMxODU0NWQ1N2FlZmE4NDQ3NTI0NjViOTRjN2UwOWEzZjI2ZDAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjM5OjEwIDIwMDcgLTA1MDAKCiAgICBib2FyZC9bQS1aYS1pXSo6IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDY4YjYwYTBlYjdlNzNiMjQzY2E1NTM5OWYyYTdkZjc2ZTJjM2YzZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6Mjc6MzkgMjAwNyAtMDUwMAoKICAgIGNwdS8gcnRjLyBpbmNsdWRlLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDc5YTEzNmMzNTg4ODE0Nzg0NTYxZDZlNDg1Njk3MGVlODJkNmUyYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6MTI6MTAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bcC16XSogKyBtaXNjOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmNWMwMTU3NzQwMGM3NGNjNWJhYzc0ZjQxZGQwZDNjNzlkZjYyM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjM4OjAyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW2ctb10qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwZmY0Zjk5Yjg0YjY0ZWRjYTNmZDEwZGEzNjVlYzE0OTNiZTFjOTUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjI5OjAxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW2EtZV0qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGExYWEwYmI1MDJlMjVmZDU5OGI1ZTBjY2RmYjJjMTc0OTIxZDcxNGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjIyOjIzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW1AtWl0qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1OWUyZjY3MzYyMzJhMDhhY2NhODc4NWMyMDZlMmI0ZDljZDA3ZDcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjEwOjQ5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0otT10qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDExNzk5NDM0YzVmZjE1YTYxMjU3N2JiMWFkMWY0ZWExYTA1OTVlNGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjAyOjU3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0EtSV0qOiBDbGVhbnVwIEJPT1RQIGFuZCBsaW5nZXJpbmcgQ0ZHX0NNRF8qLgoKICAgIEV4cGxpY2l0bHkgYWRkIGluIGRlZmF1bHQgQ09ORklHX0JPT1RQXyogb3B0aW9ucyB3aGVyZSBjbWRfY29uZmRlZnMuaAogICAgdXNlZCB0byBiZSBpbmNsdWRlZCBidXQgQ09ORklHX0JPT1RQX01BU0sgd2FzIG5vdCBkZWZpbmVkLgoKICAgIFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmZTgwZDc5YzVjNGU1MmQzNDEwYTdhYjRiODUxNWRhMDk1Y2RhYjMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjI6MDg6MzQgMjAwNyAtMDUwMAoKICAgIEZpbmFsbHkgcmV0aXJlIGNtZF9jb25mZGVmcy5oIGFuZCBDT05GSUdfQk9PVFBfTUFTSyEKCiAgICBBbGwgb2YgdGhlIGNob2ljZXMgZm9yIENPTkZJR19CT09UUF8gYXJlIG5vdyBkb2N1bWVudGVkIGluCiAgICB0aGUgUkVBRE1FIGZpbGUuICBZb3UgbXVzdCBub3cgaW5kaXZpZHVhbGx5IHNlbGVjdCBleGFjdGx5CiAgICB0aGUgc2V0IHRoYXQgeW91IHdhbnQgdXNpbmcgYSBzZXJpZXMgb2YKCSNkZWZpbmUgQ09ORklHX0JPT1RQXzx4PgogICAgc3RhdGVtZW50cyBpbiB0aGUgYm9hcmQgcG9ydCBjb25maWcgZmlsZXMgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDNiOGMxYTc0M2RjZDMxNjI1Yzk5ZTZhNDQ1OTBmMjA3ZWIwMDAyOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTo1NzozMSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1ttLXpdKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZmQ5MGNlNTc1YjAyZDE4OWNiZjQ0M2M4NTMwOWJjZDAwMWFhMzkzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjQ4OjI2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW2EtbV0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM3ZDRiYjcwNTg2NjU5ZGVkZWYxNjU4Y2UxYmVkMDcxYmUwOThhZWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6Mzg6MDIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bVC1aXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgyMjVlOGRkMTk1MGJkNmRiZjM1MDExZTQzNmRiN2Y0NzRjMTg3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTozMToyNCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tQLVNdKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YmUwNDRlNGVhNjQ0YjBlZjFjNDg2ZGFkYzFhNGMyNjY1YjQzNzRkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjI0OjE5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0gtTl0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkMmViZTFiM2VmMDA1NWM2NjFiYjFhMGQyNTJiZjI1MjM4MDA2OWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6MTY6NTMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bQS1HXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjU1ZjdmOGQ4M2YzNjAyMWFiMWYwZTNkNzM4ZjVkOGM4MDgzYTdlMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxOToxMjozMCAyMDA3IC0wNTAwCgogICAgUmV0aXJlIENPTkZJR19DT01NQU5EUyBmaW5hbGx5LgogICAgU3RyaXAgb2xkIENGR19DTURfKiBzeW1ib2xzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI1NTAxZjdkNzIwZmVkOTlhYjBiNDJjODNmNWRlYTUyODY4Y2UwMDcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTk6MTA6MDMgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBSRUFETUUuKiB0byByZWZlcmVuY2UgbmV3IENPTkZJR19DTURfKiBuYW1lcyBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NDMxMjgzYzdlNmQ1NGFlMTgwZDQ2NmU1MWJmMmQ5NzQ3MWEwYWQ5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE5OjA2OjAwIDIwMDcgLTA1MDAKCiAgICBjcHUvbSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2ExZWQxZTFmOTIyYzQxOWJiNzFmN2RmNDk0OWQ3ODNhZGUzNjlmYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODo1NzoyMiAyMDA3IC0wNTAwCgogICAgY3B1L1s3YS1sbi16XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWIzYWJjYmFiZDg0MDkyOGZiMWViNTEyMjExOGNhNDY2YjVlNTAxMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODo0NToxNiAyMDA3IC0wNTAwCgogICAgYm9hcmQvW3Etel0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNmZTAwMTA5YTVmMTJkZTU1YjZlMjViMWY5OGRmYzI0YmM5MDkwYzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6Mzg6MzkgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1ttLXBdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTA4YTRjZWZkOGE5NTNmYzY0OTU3NjUwNTA2YTAzNWU2ZTNkOWQxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjMxOjI4IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bZi1sXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjkzMDcyNjJmOGE5ZjNiNWM5ZTE1YTYwNjdlYWRjMTc0MDcxNDZmNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODoyNDo1NSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2QtZV0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZjZWMyZWI5M2UxMjY0MDAwMDk3MjkzMjhlNzk3ZjEyYmM5NGYxZmQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MTk6MDkgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tBLVphLWNdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTkzODE0ZjJiZTBjOWNkYzMxMzNjZDU1MGIxNjdiOGE5ODgzMjhmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjEwOjUwIDIwMDcgLTA1MDAKCiAgICBydGMvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY3MzUwNTY4ZjlkNDZlNjZjMjE4MjlmMzUxM2IzZGIwY2FlYjk0OGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MDU6MzggMjAwNyAtMDUwMAoKICAgIGxpYl97YXJtLGF2cjMyLGJsYWNrZmluLGdlbmVyaWMsaTM4Nn0vOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkZWY2YjM0ZjkxMGYwOGQ3ZWYwYTE0NjQ2ZGEwNjc3MTkyMzdjYTIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MDI6MTEgMjAwNyAtMDUwMAoKICAgIGxpYl97bTY4ayxtaWNyb2JsYXplLG1pcHMscHBjfS86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGQ2MGQxMjIzYjk5YTg4YTcyMTZmM2UwNDFmZTQwNjM0YWQ0YzJiYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzo1Njo1MCAyMDA3IC0wNTAwCgogICAgZnMvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5MTg5OGJiYzUwNWFmZjNlMTJhODA3YWY4OGU3NmRhMThlZmI3ZWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6NDY6MDkgMjAwNyAtMDUwMAoKICAgIHRvb2xzLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NDNkMWFiMjM5NjA5NTBiNTJlMGEyODAzYzJkM2VhNGM1NThmYTAxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjQ1OjE0IDIwMDcgLTA1MDAKCiAgICBuZXQvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiNTFjMGJmODhmOTVhMWJjYTY4MzI0YjAxMjZmOGVlZDhiNDMyNzMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6Mzk6NDIgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvW24tel0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA3ZDM4YTE3ZTk2NGFlYzRjNzgyN2YwZWU5YTU4M2JjOGNjMWFkNmIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6MzA6MDEgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvW2EtbV0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkZTVjNjRkMTdjZjQ4MzRhYTdiNWMzNzNmMjg4YmM3ZGFkMjdiMjkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6MjI6MzcgMjAwNyAtMDUwMAoKICAgIGRpc2svOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzOTIyMWM3NmM4ODIxNWJkNTVhZjgzYWQxNzRmYzMwZDE5NDBmOGYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6MTU6NDkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKICAgIE1vc3RseSByZW1vdmVkIGZyb20gY29tbWVudHMgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlZjIxOGY2ZmRmOGQ3NDdmNDU4OWRhNTI1MmIwMDRlN2QyYzI4NzYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDEwIDAwOjAxOjI4IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM4NjAzY2ZiZDQ1NzMzNzlhNjA3NmM5YzIwODU0NWJhMmJiZjAxOWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgOSAxMTowMDoyNCAyMDA3ICswMjAwCgogICAgU21hbGwgY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGY5MmM3ZTdjOWE2Mjc1NWIxNDU3ZDNjNDZmOTNjOGMxZjZjMTlmYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gSnVsIDkgMTA6MTA6MDggMjAwNyArMDIwMAoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICBSZW1vdmUgdW51c2VkIENGR19OQU5EX0xFR0FDWSBkZWZpbmUKCiAgICBUaGVzZSBib2FyZHMgdG8gbm90IGhhdmUgTkFORC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiZDg0ZWU0YzIwMjBjM2E2ODYxZjRiYjJlN2VhMGZiNDlmODJlODAzCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBKdWwgOSAxMDoxMDowNiAyMDA3ICswMjAwCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICAtY2xlYW51cAogICAgLXVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycyAoaW4vb3V0X2JlMzIoKSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBlMDlmN2FiNTc0OWMzNDVmOTI0ZGEyNzJiZWEwNTIxYTczYWY1YjExCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBKdWwgOSAxMDoxMDowNCAyMDA3ICswMjAwCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIFRoaXMgcGF0Y2ggcHJlcGFyZXMgdGhlIG1pZ3JhdGlvbiBmcm9tIHRoZSBsZWdhY3kgTkFORCBkcml2ZXIKICAgIHRvIFUtQm9vdCdzIG5ldyBOQU5EIHN1YnN5c3RlbSBmb3IgZXNkIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjMzUxN2Y5MTlkMGY2MTY1MGNmMzAyN2ZkNGZhZjBmNjMxMTQyZjZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE4OjEwOjA4IDIwMDcgLTA1MDAKCiAgICBjb21tb24vKiBub24tY21kKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZDliY2FhMzViZTY0ZmU0MWE0MjIzZmRiNmVjZGJhZDUyNDcwYjM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE4OjA1OjM5IDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1twLXhdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzc2ZmU0NzQyNWFmYzdkNWQ2NzBmZjA1Mzk4MjNjODVkNjVkOWM0MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxODowMjoyMyAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9baS1uXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhYTI2ZGI0MTEzNjc5YjgwOTcwZmY0NDdkOTFjYzEwMjE3NzQyYTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTc6NTE6MzkgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2FmXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmMDc1ZWU5NmU1MmRkYTdiNmJjYTZjOTM3NTg4YWVhYWVjNWYyY2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTc6MDI6MDEgMjAwNyAtMDUwMAoKICAgIENsZWFyIHVwIGNvbmZ1c2lvbiBvdmVyIHRoZSBDTURfUE9TVCBhbmQgUE9TVF9ESUFHIG1lc3MuCgogICAgRm9yIHNvbWUgcmVhc29uLCBDT05GSUdfUE9TVCBwZXJtZWF0ZWQgYXMgQ09ORklHX0NNRF9QT1NUX0RJQUcKICAgIHdoZW4gaXQgcmVhbGx5IG1lYW5zIGp1c3QgQ09ORklHX0NNRF9ESUFHLglUaGVyZSBpcyBubyBDTURfUE9TVC4KICAgIENsZWFyIHRoaXMgbWVzcyB1cCBzb21lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjM2MzE0ODcxMDVhNTdhYjdjYmFkZmMyNmVmYmFmOTY3NjI3NTAxOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTo0NTowOCAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCBjbWRfY29uZmRlZnMuaCBpbmNsdWRlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjJkNGRhOTVlMjAwNDliNGRhYTFjMmEwMjJmNjFlOGE3MmYyZmI2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjQyOjU5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IENhdGNoIHNvbWUgQ09ORklHX0NNRF8qIGNvbnZlcnNpb24gc3RyYWdnbGVycy4KCiAgICBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBsd21vbjUuaCBib2FyZCBjb25maWcgZmlsZS4KICAgIEZpeCBDT05GSUdfQ01EXyogdHlwbyBicmFpbmRhbWFnZSBpbiBvbWFwMTUxMGlubi5oCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTU2MjkwMTY2MWJkNDI4ZjdlNWZlYjMzM2Y3OTYzNzJjYjgxMDE5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjMxOjU3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW1RVVldaWVpdKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZTdmNzgyZDViOGM2NGEwMTk1YzY4YzMxYTBhMTFkNGY2NDEzNTVlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjAyOjQ0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTlhMGY4ZjE1YzExZjMzNzk2N2FhMDYwMGFkNmU4YWYzMzAzN2Y1MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNToxMjo0MCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEyYWE5ZmQyM2Q3MjRiZDZhYjg4ZTFiYWEwZGIzNTEzM2EyNzMwM2YKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6NTU6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBRKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhY2YwMjY5Nzc5NDIyZjNlMTQ3ZDJkZGZiNDk5YzlmNmZmMTBhZDVlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjQ5OjQ0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTE4YTEwNjFhODYzMGNiNjc5OTVmZGY5OWFmZDNmYjUwZDFiMTg3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDoyMTo0MyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFtOT10qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgzNTNlMTM5YmZhZDkwNTljNTRmNWIyNDIxZjFhMzA5MGUxNWEyZTIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6MTQ6MTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBNKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNDhmMjU4ZjI0MjUzNDMzZTRhMjMwMmEwYmJjZWI2NzQwYTY3MjQ2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDEzOjQ2OjE4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW0lKS0xdKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YzRmNGRhOWJmYzlmOTQwM2Y1NGZjZTY3OGVkMDM2NGI3Yzg2YTZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDEwOjA5OjM1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgSCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjBhMDg3NmI1MTA2YjM0MjIwZTQ1OWMyMDhiYmY2NDgwNzMzMDZjMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBKdWwgNyAyMTowNDoyNiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEYqIGFuZCBHKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkY2FhNzE1NjI4MjZhMjQ2NmU4OTRjODY4ZDEzMjUwOWRjZGE4NDQ0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEp1bCA3IDIwOjU2OjA1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgRSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2MzMjI3ZjNjNzM3NTAyMzExYjI1YjcyMDg0NTczOTAxY2JiZjE3ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBKdWwgNyAyMDo0MDo0MyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEQqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5Y2Y3ZThlZTdlZjk0M2ZkZmU4NjZjZTI4NDEwYjBiZmJmNmEyNmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMTk6NTI6MzUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBDKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZThiMmE2ZTMzMjk4ZGNkYjEwYmRkYTQ4ZGIyNWU1M2MzMDg5ZWJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDE5OjMyOjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgQiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDk4ZmY5YTIyODQ4NWJkNGI5ZjIzZDA2NmJhZGEyNjhmOWFkZDFkZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAxOToxMzo1MiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEEqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaW5jZSBBRFM4NjAuaCBpbmNsdWRlcyAiYm9hcmQvZmFkcy9mYWRzLmgiIHdpdGggcmFtaWZpY2F0aW9ucwogICAgb24gdGhlIENPTkZJR19DT01NQU5EIHRyZWF0bWVudCwgaXQgdG9vIGhhcyB0byBiZSBhZGp1c3RlZCB0bwogICAgZXhjbHVkZSBhbHJlYWR5IGNvbmZpZ3VyZWQgY29tbWFuZHMgaW4gdGhpcyBzYW1lIGNvbW1pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwZTAzODkzMmYyMmVlODBlYmQ1M2RlMzEyNTMxZTcwZTY1OTBhMmYKQXV0aG9yOiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgpEYXRlOglGcmkgSnVsIDYgMTQ6NTg6MzkgMjAwNyArMDIwMAoKICAgIFtOQU5EXSBCYWQgYmxvY2sgc2tpcHBpbmcgZm9yIGNvbW1hbmQgbmJvb3QKCiAgICBUaGUgb2xkIGltcGxlbWVudGF0aW9uIG9mIGNvbW1hbmQgbmJvb3QgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIHRoZSBpbWFnZSBmcm9tCiAgICBOQU5EIGZsYXNoIHdpdGggc2tpcHBpbmcgb2YgYmFkIGJsb2Nrcy4gVGhlIHBhdGNoIGltcGxlbWVudHMgYSBuZXcgdmVyc2lvbiBvZgogICAgdGhlIG5ib290IGNvbW1hbmQ6IGJ5IGNhbGxpbmcgbmJvb3QuamZmczIgZnJvbSB0aGUgdS1ib290IGNvbW1hbmQgbGluZSB0aGUKICAgIGNvbW1hbmQgd2lsbCBsb2FkIHRoZSBpbWFnZSBmcm9tIE5BTkQgZmxhc2ggd2l0aCByZXNwZWN0IHRvIGJhZCBibG9ja3MgKGJ5IHVzaW5nCiAgICBuYW5kX3JlYWRfb3B0cygpKS4gVGhpcyBpcyBzaW1pbGFyIHRvIGUuZy4gdGhlIE5BTkQgcmVhZCBjb21tYW5kOiAibmFuZAogICAgcmVhZC5qZmZzMiAuLi4iLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzM0MDQzZjYwMWE5MGFjNTNlNWVjYzg0NmZiYjczYTFlZjM4Y2IxZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDEyOjI2OjUxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgZGVmYXVsdCBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZDE4NzQzMGEwNTVkNjJmMTdjYTg0ZDc1ZTcyNDU0MzlkMWY3ZTc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMTE6NDg6MjQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBib2FyZAoKICAgIEFkZCB1bmxvY2s9eWVzIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGRlZmF1bHQgdmFyaWFibGVzIHRvIHVubG9jawogICAgdGhlIENGSSBmbGFzaCBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2YjBhMTc0YTFlNmY1NWUxZjVhMWZiYjIyM2NkYWQ3NjQ1YTQ2NDZlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMDk6NDU6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBwcm9ibGVtIHdpdGggZ2V0L3NldGRjciBjb21tYW5kcyBpbnRyb2R1Y2VkIGJ5IGNmZyBwYXRjaGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxMTUyZjhjMjhkYjRhMjIwODdjMjFjNjE4YTNmN2JhYTQ4ZTlhNGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMDI6NTA6MTkgMjAwNyArMDIwMAoKICAgIENvZGUgY2xlYW51cCBhbmQgZGVmYXVsdCBjb25maWcgdXBkYXRlIGZvciBTVEMgR1AzIFNTQSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU0ZGJlMWIyMTVmNWM2YzQ2MmU3NjkwOWQyNDBiZDk2NDcyYjg0ZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDUgMTc6NTY6MjcgMjAwNyArMDIwMAoKICAgIEZpeGluZyBzb21lIHR5cG9zIGV0Yy4gaW50cm9kdWNlZCBtYWlubHkgYnkgY2ZnIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiNmI0Njg0NTQ2ODA5Zjg5YzhiYWM3Mjg2M2NhNDliNWZkOGFjMGNkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCA1IDExOjEyOjE2IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCBkY2EzYjNkNmQ2Mzk2YjY3ZTVlODRhZjUzNDUyMTY0OTIzYzczNDQzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjQ2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW3Ytel0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjMThlYjk4MDRiNTI1ZjNlNGYzYmIzZDAxNGRkNjlhMjAwZDlmYTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MzggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyB0KiBhbmQgdSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDZkYTFlOTZiN2RiMTRmNGZjZDJjOTI1NDRlN2MwODYyMDI0YmM3NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzozMCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkwY2MzZWI2ZDJiZTg1NmQ5ZGRkODE0MzZkZTljZjM0M2JjNmI1YzgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MjMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBxKiBhbmQgciogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjZhMzQ1NjBkNTZhOWRmNWJjMmFlMjM1MjVkOTIyOTczNjEzNDc1NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzoxNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHAqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1Y2IyMzA5MmE3ZDMxNDkwYTMzZDRlYzg3MTQ2OGI2M2JhYmZhM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MTMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBvKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjlhMmJmZDE0MjczNzAwM2E4ZmMzMmUxYjg2ZTFmMmMxODUwMjU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWRjMTFhNTExOTYwZDQ5MGY3ZjAxZmZkNzQ2ZWRmZTYyNzdmOTliMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzowMSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIG0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDliYmIxYzA4MjBjMWZiZDM4MTFhYjZlZTRiYTBmNmM2Zjc2YjI3ZTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6NTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBsKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYzIzNGMxMjlmYTA0ZmI5ZmEzMzUzMDkzMGU1Y2JjNjA4NGNkNDdhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjUxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgaiogYW5kIGsqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFkMmM2YmM0OTE5NjlmOGQ4ZmIzNGM4ZTMwZThiZWE3YTJhZjljMzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MzIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBpKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OGQ1ZDEwMmEyZjJlNjE5YzkyMDUwYjlhZWRiYjY5Njg5MTg1YmMwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjI1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgaCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzJlYjBlZmFlZDcwNDhhZmNjNjFmYzZmMDA4NWM0OTM5NGI1ZGMzNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjoxOSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGcqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFiZWMzZDMwMDJkM2JiYmFlNmYyNDY4YTBmNzM3NmRiMTEyMGQzM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MTAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBlKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjk5OWJhMWIzMWViZTc4ZGQxNjM3NDM5NGE1NWQ3YzZlNWFhNmU0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjAzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgZCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzdlNGYyNGI4N2ZhMjU1YWU0NTZkMTkzYjdjZDIzYzE4ZGQxZDU2YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTo1NiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhMjM1MWY5ZDFlODQxYmQwMGVhNmRhZDFlM2MxNmQwMjU5YWQyNjQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6NDkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBiKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYjM2MWM5MTY2MTdhZmY3OWU2NDdiNDBmMGU0MzM2MWUwYmJhY2NmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjQyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgYSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjczMGNkYTgyZTM2MmRmNmEyMmY0YzU5YzBhOWI5N2U4ODViMTAxNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTozNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBtcGM1eHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDc5NGNmZWZlYWQ1ZmMxNzdjZjRmNDExNjRlODAzODJlOWM5NDg0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMToxNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIDUyMDAgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWYwZGY1MmFiNDllZWE0YTMwYzE1MDg3ZmQyN2Q1NGMxZDk0NmYyYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBTVHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODY2ZTMwODliZmM4MjZiYjRkYzc0NjM3ZjhhYWQ4N2EzYmFiNzlmYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDo1OCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBzYmMqIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2OTQ2OTBlMjg1YWNhYTM0OTIyZjU1ZjRiNWFlMDMwZGE2MGM1NWEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6NTAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gVFFNIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFjYzRjNDU4MzI5NzY1YjU4ZTU4NGExOTgyMWU3OTZiM2MxMGU5NzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6MjggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gODJ4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZWE1NDk5YWZkYWJhMGFjZjYwOTIzZGQ5OTAwMWMzOTlkNGE3YzhlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjA2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIDgzeHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjQ0ODk2MjE1YTA5YzYwZmE0MGNhZTkwNmY3ZWQyMDdiYmMyYzQ5MgpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBKdWwgNSAwODoxNzozNyAyMDA3ICswMjAwCgogICAgTWVyZ2VkIFBPU1QgZnJhbWV3b3JrIHdpdGggdGhlIGN1cnJlbnQgVE9ULgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgYjI0NjI5ZmEzNzcyMTRkNjNiYjQwZDEzNjBlMzU0YjZkM2U0YWY1NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjM6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzg2eHg6IFJlbW92ZSBvbGQgQ0ZHX0NNRF8qIHJlZmVyZW5jZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NjE3NWQ5NzY0ZGExMjliYjRmZDM0MWNkMjU1NGRjN2Q1NWY1YjJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMjo1NCAyMDA3IC0wNTAwCgogICAgQWRkIE1QQzg1NjhNRFMgdG8gTUFLRUFMTCA4NXh4IHRhcmdldC4KCiAgICBJdCB3YXMgbWlzc2luZyBmcm9tIHRoZSBvcmlnaW5hbCBwb3J0IHN1Ym1pc3Npb24uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyODM1ZTUxOGM5NjllNTEyNGJhMTE3NGVlZjNlODM3NWUxMmZhN2Q1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMjowOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiA4NXh4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU2YjMwNGFjMjA5MTY4OTUwNjA4OGE5YWU2N2Y2M2ZkNjMwMGNmMTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIxOjM3IDIwMDcgLTA1MDAKCiAgICBGaXggI2lmIHR5cG8gaW4gQ09ORklHX0NNRF8qIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNzgwYjgzMzE2ZDlhZjFmNjFkNzFjYzg4YjE5MTdiMzg3YjliOTk1CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJV2VkIEp1biAyNyAxODoxMTozOCAyMDA3ICswMjAwCgogICAgcmVzdWJtaXQ6IHBwYzR4eDogUmVtb3ZlIHNlcXVvaWEvc2VxdWlvYS5oLiBDbGVhbnVwIHBwYzQ0MC5oIGZvciBQUEM0NDBFUFgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+Cgpjb21taXQgMDRlNmMzOGI3NjZlYWEyZjMyODc1NjE1NjNjOWUyMTVlMGMzYTBkNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCA0IDEwOjA2OjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgYm9hcmQKCiAgICAtIEFkZCBvcHRpb25hbCBFQ0MgZ2VuZXJhdGlvbiByb3V0aW5lIHRvIHByZXNlcnZlIGV4aXN0aW5nCiAgICAgIFJBTSB2YWx1ZXMuIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgTGludXggbG9nLWJ1ZmZlciBzdXBwb3J0CiAgICAtIEFkZCBvcHRpb25hbCBERFIyIHNldHVwIHdpdGggQ0w9NAogICAgLSBHUElPNTAgbm90IHVzZWQgYW55bW9yZQogICAgLSBMaW1lIHJlZ2lzdGVyIHNldHVwIGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY4MTBhMzQ2NzdkYmM0NDYzMzRmNWU0NTFmMTY4MjQyNmRkMzNiNDkKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDoxNzoyOCAyMDA3IC0wNjAwCgogICAgRml4IE1ha2VmaWxlIHRvIHVzZSAkKE1LQ09ORklHKSBtYWNybyBmb3IgYWxsIGJvYXJkIHBvcnRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDkwYjFiMmQ2OWI5Mzk2ZmYyZjAxMTY1ZWJjMTZjOWE1OTRlYjU5MjYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDoxNzoyOCAyMDA3IC0wNjAwCgogICAgRml4IE1ha2VmaWxlIHRvIHVzZSAkKE1LQ09ORklHKSBtYWNybyBmb3IgYWxsIGJvYXJkIHBvcnRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA1NzAwNGY0YTQ4NjM1NTRkNTZjYzU2MjY4YmZhN2M3ZDk3MzhlMjcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDo0OSAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4M3h4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVhZjYxYjJmNGI4MzhhMDVmNzliZTI3NGYzZTVhNjZlZGQyZDljOTYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDo0NCAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjYwCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGYzYTUyZmUwNTkyMzkzNWRiODY5ODVkYWY5NDM4ZTJmNzBhYzM5YWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDozOSAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjR4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGE4NWRkMjU0YzA1NzdmY2ExMzYyN2M0NmU5M2ZjMmFkNGM0ZjFmMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDozNCAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjIwCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDZmNzU3NmIyMGVjZjBkMDQwYzNhYzNiMDMyYjVjYmM4NjBlMzhhOTAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoyOSAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBNUEM1eHh4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDM2NDljZDk5YmE4MTViNjYwMTg2ODczNTc2NTYwMmYwMGVmMzY5MmIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoyNCAyMDA3IC0wNjAwCgogICAgQ29ycmVjdCByZWxvY2F0aW9uIGZpeHVwIGZvciBtcGM1eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjgyYjNiNjMwNGI2MjBlZjdlMjhiZmFhMWVhODg3YTJhZDJmYTMyNQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjE5IDIwMDcgLTA2MDAKCiAgICBEb24ndCBzZXQgZ2QtPnJlbG9jX29mZiBpZiByZWxvY2F0aW9uIG9mIC5maXh1cCB3b3JrcyBjb3JyZWN0bHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZTFhNjE0NGMzMmRjN2RlNzNiY2RkMzM5OTVkZTAxNDhjYmQwYmQyOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjE0IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODN4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxN2UzMmZjMzkwOGJmNzA4OWQzZjE2ZmM4MmExYzNhZTY3NGRkNjViCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MDkgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyNjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYWY3ZDM4YjM5MzY5MGQ3ZWVhZjQxOGFjODVhMWU4MzFhNTBkNWZkMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjA0IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmOTRhM2FlY2ViYzQwY2EwOTM5YzdkNjZkMDEwMDA5Y2Y1MWJlOWUyCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NTkgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzICgzIG9mIDQpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGE3MWMwODRmM2FjN2ZlZGYxNDQ1MzdkYjJiMmRhNDczMjMwNjg4MzMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo1MyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMgKDIgb2YgNCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjY3MGExNTQ2OGQxMzY1MjQxZDQwMDIyYjk0MDhlMTAwNDE4MWY1ZQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjQ4IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cyAoMSBvZiA0KQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwOTU1NWJkNDVhMDRjMGU1NGYxNzI1MjhkMjFiYzE4ODk2NTUwZDI4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NDMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjIwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVlZmI5OTJmMDQ2ZTUxMjI1YzkzZDUyZjgwZmVjYmU0MzNhYmQ3ODkKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzozOCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMgKDMgb2YgMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDdjMTNkZmVmNjViMzE2NDdlNjlkOGI2MWRhYTFlZWM1OThhZGQxYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjMzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cyAoMiBvZiAzKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiNGY2NzUxM2E2MjRjZTg1ODY2YzY2YzU3NWJkMmQ5ZDc5NzdkN2YwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MjggMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzICgxIG9mIDMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGI3ZDhlMDVmODY3NTI0OWI1ZjIwOGFhNzNiYWJlZWQzODRhNDUxOWQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoyMyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0MTZhMGI2ZDQwZjZlYmEzYTJmYzU0NzI1M2MxNmJkYTI4ZDkyMmY3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MTggMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgzeHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWZjNTkxNzViOTI4ODNlZDVkMjY2NmEwNGU2YmM0OWU3MGE0YTM2NQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjEzIDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjYwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczN2Y5ZWIwMmQ3MzM1ZGYyYjNlNGQ3YTRkMzM0ODc4NGQxZGEyMDcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzowOCAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5Yzc1N2I3ODlhNTlhODU1ZGI1N2I0NDhkZDgyNTMyOWM0ZTljNGEwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MDMgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyMjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZDE4MWM5YTE1Y2Q0MTg2M2ZlMjQ4NDBkMTc4NDg0MjlmMjdkM2M4YwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMyOjU4IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDI4N2FjOTI0YWRiNzI5MWJlYmU1MDg2NjUyYTM2MmEzMGFiMjhiMTMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMjo1MyAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjNXh4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDUyYjg3MDRkMDI0NWU1ODlmODZkNDYyZTllYzI1YWViN2VjYmJiZGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDQgMDA6NDM6NTMgMjAwNyArMDIwMAoKICAgIEZpeCBhIGZldyBmaWxlIHBlcm1pc3Npb24gcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3OGUwY2YyZGU3YmU3ZjFlYWVlYjYyMmViNjFmZDUwZTRkNWUyMDVjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCA0IDAwOjM4OjM4IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4gUmVidWlsZCBDSEFOR0VMT0cgZmlsZS4KCmNvbW1pdCAyZjljMTllNDk2YWNiNmJiNTBkOTI5OWUxYWFiMzc3NjI1ZDQ4YzM4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzo0NCAyMDA3IC0wNTAwCgogICAgY29uZmlncy8gbXBjODZ4eDogUmV3cml0ZSBjb21tYW5kIGxpbmUgb3B0aW9ucyB1c2luZyBuZXcgQ09ORklHX0NNRC0qIHN0eWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjAyYWQzYjMzZDljZWVmODNkYmFiNDZiZTY4NjQ2ZDY0NWQ2MzdlZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MzkgMjAwNyAtMDUwMAoKICAgIFJFQURNRTogUmV3cml0ZSBjb21tYW5kIGxpbmUgY29uZmlnIHRvIHVzZSBDT05GSUdfQ01EXyogbmFtZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmEwNzRjZWM2OGU1YmFkNjBkNjMyMDZjMDUwOTc0ZTA4YWZkODA0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzozNCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS8gbm9uLWNvbmZpZzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWZjZjU0M2UwYjY2MjhjNzZmZjQ4NzA1YjFiMDU2NmJmZDExNTA3YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MjggMjAwNyAtMDUwMAoKICAgIHRvb2xzLyA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxMDdlYmUwZDM1MjQyMDg5NWFiNjliNzE1Njk3YmRlYmM4Y2FmNTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjIzIDIwMDcgLTA1MDAKCiAgICBib2FyZC9bay16XSo6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVlMzc4MDAzZDU5MmVhODI4ZWM2OWQ2ZGVmY2Q0ZGU3OTA5NmRkNWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjE5IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bTWEtaV0qOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MzcxODQxMTRlYzljOWUwYWI5NGQ2NzEzNTM2MTI2MDczYmQyNDcyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoxNSAyMDA3IC0wNTAwCgogICAgY3B1LyBub24tbXBjKjogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjQ4MDcwZmU1ZmU0NDBkZmI1ZWU1MjY4YzkyMGRlNzBlNDhlYTMyNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MDggMjAwNyAtMDUwMAoKICAgIGNwdS9tcGMqLyA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjNTA1ZGIwYTBkYzFmNjcwYjEzY2UzYjRkM2ZiZjFlYzViM2NiZDIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjAzIDIwMDcgLTA1MDAKCiAgICBsaWJfKi86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczZjAzMjAyMWVjNWYxM2NkYThmYWE0ZTM0YjZkZTgwOTYwZWI4NmYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjU4IDIwMDcgLTA1MDAKCiAgICBsaWJfcHBjLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOThiNzkwMDNjMjFjMjU3ODIwNjAwMzI1NmRlNGU3ODFkNmIzNmNhOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6NTMgMjAwNyAtMDUwMAoKICAgIHJ0Yy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZlMjExNWFjYjZhODkyZDUzYTY4ODFiZjI1M2FlNDFkM2RmMzkxNTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjQ5IDIwMDcgLTA1MDAKCiAgICBuZXQvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NWNkYjliNzJjOTQ2NTVjNzMwOGI0NjRhMjY2NjA1N2MwYjI4NmUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjozNCAyMDA3IC0wNTAwCgogICAgZGlzay86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlMTA5YWU5ODI5NGE1Y2E3ZmY4NDhiNzY1MmM3YmZkNDAyM2E5NGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjIwIDIwMDcgLTA1MDAKCiAgICBmcy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1YmU0M2RlOTNmZjkwNWM0NjVlNTA5ZDQ1YTMxNjRlZjQ4ZDI2ZTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjEwIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjQ1Mzk2MGQ0ZmRiODdiMzk3MGQ5NjExOWI5MGRmMmVkMDI0ZmM0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MDUgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi8gbm9uLWNtZDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjVjNDUwYjQ3YTYyNjU5ZDUyMmNmYThmNGZhMWU0ZTVjNjBkY2NkMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDE6NTQgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2ktel0qIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTc2YWRjODE0MmMxZDk1NjM4NWExMDllMGI3MGY5MzE5ZWRlNGQ2NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDE6NDMgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2EtZl0qIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWM2M2IxMGI2MWZkNjgyMzhkNGMxNWMxY2QwNGMwYjM4MjI4ZTJjMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDE6MzQgMjAwNyAtMDUwMAoKICAgIEludHJvZHVjZSBpbml0aWFsIHZlcnNpb25zIG9mIG5ldyBDb21tYW5kIENvbmZpZyBmaWxlcy4KCiAgICBEZXJpdmUgdGhyZWUgbmV3IGZpbGVzIGZyb20gY21kX2NvbmZkZWZzLmg6Cgljb25maWdfYm9vdHAuaCAtIEhhcyBCT09UUCByZWxhdGVkIGNvbmZpZyBvcHRpb25zLCBub3QgY29tbWFuZHMKCWNvbmZpZ19jbWRfYWxsLmggLSBIYXMgYSBDT05GSUdfQ01EXyogZGVmaW5pdGlvbiBmb3IgZXZlcnkgY29tbWFuZAoJY29uZmlnX2NtZF9kZWZhdWx0LmggLSBIYXMgYSBDT05GSUdfQ01EXyogZGVmaW5pdGlvbiBmb3IgZGVmYXVsdCBjbWRzLgoKICAgIEZvciBub3csIGluY2x1ZGUgImNvbmZpZ19ib290cC5oIiBmb3IgY29tcGF0YWJpbGl0eSB1bnRpbCBhbGwKICAgIHVzZXJzIG9mIGl0IGRpcmVjdGx5IGluY2x1ZGUgaXQgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZjJhMDU4OTg2NTg5MDBkYzU3MTc3NjFlMjdhYmYyMDUyZTY3ZTEzCkF1dGhvcjogTXVzaHRhcSBLaGFuIDxtdXNodGFxa185MjFAeWFob28uY28uaW4+CkRhdGU6CVNhdCBKdW4gMzAgMTg6NTA6NDggMjAwNyArMDIwMAoKICAgIEZpeCBTLUFUQSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IG11c2h0YXEga2hhbiA8bXVzaHRhcWtfOTIxQHlhaG9vLmNvLmluPgoKY29tbWl0IGE1ZDcxZTI5MGYzNjczMjY5YmU4ZWVmYjRlYzQ0ZjUzNDEyZjk0NjEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjUgMTk6MTE6MzcgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JZ2V0IHJpZCBvZiBDT05GSUdfUFBDNHh4X1VTRV9TUERfRERSX0lOSVRfSEFORwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGExYmQ2MjAwZWNjZDNhMDIwNDBhOTU1ZDVmNDNkM2VlMWZjOWY5M2IKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTc6MDM6MTMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUFBDNDQwRVB4IEVtaXQgRERSMCByZWdpc3RlcnMgb24gbWFjaGluZSBjaGVjayBpbnRlcnJ1cHQKCiAgICBUaGlzIHBhdGNoIHByaW50cyB0aGUgRERSIHN0YXR1cyByZWdpc3RlcnMgdXBvbiBtYWNoaW5lIGNoZWNrCiAgICBpbnRlcnJ1cHQgb24gdGhlIDQ0MEVQeC9HUnguIFRoaXMgY2FuIGJlIHVzZWZ1bCBlc3BlY2lhbGx5IHdoZW4KICAgIEVDQyBzdXBwb3J0IGlzIGVuYWJsZWQuCgogICAgSSBhZGRlZCBzb21lIHNtYWxsIGNoYW5nZXMgdG8gdGhlIG9yaWdpbmFsIHBhdGNoIGZyb20gTmlrbGF1cyB0bwogICAgbWFrZSBpdCBjb21waWxlIGNsZWFuLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MDcwMThmYjdmYWNlYjQyOWNlMGNiNDdiYWEyMDczNzQ2YjMzYTRlCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgpEYXRlOglNb24gSnVuIDI1IDE2OjUwOjU1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBPPWJ1aWxkaXIgYnVpbGRzCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSB0byBhc3NlbWJsZSBjcHUvcHBjNHh4L3N0YXJ0LlMKICAgIGV4cGVyaWVuY2VkIGxhc3Qgd2VlayB3aGVyZSBidWlsZGluZyBmYWlsZWQgaGF2aW5nIHNwZWNpZmllZAogICAgTz0uLi9idWlsZC5zZXF1b2lhLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KCmNvbW1pdCA0NjZmZmYxYTdiYjVmZTc2NGEwNjQ1MDYyNmY2MDk4MjE5ZjQ0NmI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDI1IDE1OjU3OjM5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBwY2lfcHJlX2luaXQoKSBmb3IgNDA1IGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgQ0ZHX1BDSV9QUkVfSU5JVCBvcHRpb24gY29tcGxldGVseSwgc2luY2UKICAgIGl0J3Mgbm90IG5lZWRlZCBhbnltb3JlIHdpdGggdGhlIHBhdGNoIGZyb20gTWF0dGhpYXMgRnVjaHMgd2l0aAogICAgdGhlICJ3ZWFrIiBwY2lfcHJlX2luaXQoKSBpbXBsZW1lbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmYzNWM1MzE2NjIxM2MyNGE1YTBlMjM5MGVkODYxMTM2ZmY3Mzg3MApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglTdW4gSnVuIDI0IDE3OjQxOjIxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1haW50ZW5hbmNlIHBhdGNoIGZvciBlc2QncyBDUENJNDA1IGRlcml2YXRzCgogICAgLWFkZCBwY2lfcHJlX2luaXQoKSBmb3IgcGNpIGludGVycnVwdCBmaXh1cCBjb2RlCiAgICAtZGlzYWJsZSBwaHkgc2xlZXAgbW9kZSB2aWEgcmVzZXRfcGh5KCkgZnVuY3Rpb24KICAgIC11c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMKICAgIC1jbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNWExYzlmZjBjNDQzMDViNTdjYjRkOGY5MzY5YmJhOTBiY2YwZTFmOApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglTdW4gSnVuIDI0IDE3OjIzOjQxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBwY2lfcHJlX2luaXQoKSBmb3IgNDA1IGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBjYWxsaW5nIGEgcGxhdHRmb3JtIGRlcGVuZGFudAogICAgcGNpX3ByZV9pbml0KCkgZnVuY3Rpb24gZm9yIDQwNSBib2FyZHMuIFRoaXMgY2FuIGJlIHVzZWQgdG8KICAgIG1vdmUgdGhlIGN1cnJlbnQgcGNpXzQwNWdwX2ZpeHVwX2lycSgpIGZ1bmN0aW9uIGludG8gdGhlCiAgICBib2FyZCBjb2RlLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBtYWtlcyB0aGUgQ0ZHX1BDSV9QUkVfSU5JVCBkZWZpbmUgb2Jzb2xldGUuCiAgICBBIGRlZmF1bHQgZnVuY3Rpb24gd2l0aCAnd2VhaycgYXR0cmlidXRlIGlzIHVzZWQgd2hlbgogICAgYSBib2FyZCBzcGVjaWZpYyBwY2lfcHJlX2luaXQoKSBpcyBub3QgaW1wbGVtZW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMTYzNmQxYzg1MjljMDA2ZDEwNjI4N2NmYmMyMGNkMGEyNDZmZTFjYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMjM6NTk6MDAgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsa2UgY2xlYW51cDsgcmVidWlsZCBDSEFOR0VMT0cKCmNvbW1pdCAyZGM2NDQ1MWI0YzA4ZmZkNjE5MzcyYWJmZGMyNTA2YTJlMjM2M2I5CkF1dGhvcjogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIEFwciAxOCAxNDo1NToxOSAyMDA3ICswNDAwCgogICAgQWRhcHQgbG9nIGJ1ZmZlciBjb2RlIHRvIHN1cHBvcnQgTGludXggMi42CgogICAgQSBuZXcgZW52aXJvbm1lbnQgdmFyaWFibGUsICJsb2d2ZXJzaW9uIiwgc2VsZWN0cyB0aGUgbG9nIGJ1ZmZlcgogICAgYmVoYXZpb3VyLiBJZiBpdCBpcyBub3Qgc2V0IG9yIHNldCB0byBhIHZhbHVlIG90aGVyIHRoYW4gMiwgdGhlbiB0aGUKICAgIG9sZCwgTGludXggMi40LjQsIGJlaGF2aW91ciBpcyBzZWxlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgogICAgLS0KCmNvbW1pdCBhMTFlMDY5NjVlYzkxMjcwYzUxODUzNDA3ZmYxMjYxZDNjNzQwMzg2CkF1dGhvcjogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KRGF0ZToJV2VkIE1hciAyOCAxOTowNjoxOSAyMDA3ICswNDAwCgogICAgRXh0ZW5kIFBPU1Qgc3VwcG9ydCBmb3IgUFBDNDQwCgogICAgQWRkZWQgbWVtb3J5LCBDUFUsIFVBUlQsIEkyQyBhbmQgU1BSIFBPU1QgdGVzdHMgZm9yIFBQQzQ0MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgogICAgLS0KCmNvbW1pdCA1NjZhNDk0ZjU5MmFlM2IzYzA3ODVkOTBkNGUxYmE0NTU3NDg4MGM0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDE5OjExOjU0IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCSAgICB1cGdyYWRlIHRoZSBQQ1M0NDBFUCBib2FyZDoKCQkgICAgLSBTaG93IG9uIHRoZSBTdGF0dXMgTEVEcywgc29tZSBTdGF0ZXMgb2YgdGhlIGJvYXJkLgoJCSAgICAtIEdldCB0aGUgTUFDIGFkZHJlc3NlcyBmcm9tIHRoZSBFRVByb20KCQkgICAgLSB1c2UgUFJFQk9PVAoJCSAgICAtIHVzZSB0aGUgQ0Ygb24gdGhlIGJvYXJkLgoJCSAgICAtIGNoZWNrIHRoZSBVLUJvb3QgaW1hZ2UgaW4gdGhlIEZsYXNoIHdpdGggYSBTSEExCgkJICAgICAgY2hlY2tzdW0uCgkJICAgIC0gdXNlIGR5bmFtaWMgVExCIGVudHJpZXMgZ2VuZXJhdGlvbiBmb3IgdGhlIFNEUkFNCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2ExZjVjODFiMGI5NTU3ODE3YTc4OWJlY2U4Mzk5MDU1ODFjMjIwNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAxNjo1ODo0MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIGV4dGVuZGVkIHByb2dyYW1fdGxiKCkgZnVudGlvbgoKICAgIFRoZSByZWNlbnRseSBleHRlbmRlZCBwcm9ncmFtX3RsYigpIGZ1bmN0aW9uIGhhZCBhIHByb2JsZW0gd2hlbgogICAgbXVsdGlwbGUgVExCJ3MgaGFkIHRvIGJlIHNldHVwIChmb3IgZXhhbXBsZSB3aXRoIDUxMk1CIG9mIFNEUkFNKS4gVGhlCiAgICB2aXJ0dWFsIGFkZHJlc3Mgd2FzIG5vdCBpbmNyZW1lbnRlZC4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlCiAgICBhbmQgaXMgdGVzdGVkIG9uIEthdG1haSB3aXRoIDUxMk1CIFNEUkFNLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMjAzMmU4ZjE0NzUxYTFhNzUxYjA5MjQwYTRmMWNmOWY4YTIwNzdmCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biAyMiAxNDo1ODowNCAyMDA3ICswMjAwCgogICAgW3BwY10gRml4IGJ1aWxkIGJyZWFrYWdlIGZvciBhbGwgbm9uLTR4eCBQb3dlclBDIHZhcmlhbnRzLgoKICAgIC0gYWRhcHQgdG8gdGhlIG1vcmUgZ2VuZXJpYyBFWENFUFRJT05fUFJPTE9HIGFuZCBDUklUX0VYQ0VQVElPTiBtYWNyb3MKICAgIC0gbWlub3IgNHh4IGNsZWFudXAKCmNvbW1pdCBkNjc3YjMyODU1ZjU3N2FlMjY5MGRjZDY0YTE3MmNkZDcwNmUwZmZjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgSnVuIDIyIDEwOjM0OjEyIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIGFkZCBuYW5kX2luaXQoKSBwcm90b3R5cGUgdG8gbmFuZC5oCgogICAgc2luY2UgbmFuZF9pbml0KCkgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGJ5IG90aGVyIHBhcnRzIG9mIHUtYm9vdCwgdGhlcmUKICAgIHNob3VsZCBiZSBhIHByb3RvdHlwZSBmb3IgaXQgaW4gbmFuZC5oCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzYjRjZmEzZDYyOWRmZjAyNjQzNjYyNjNjNWU5NGQ5YTUwYWQ4MGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDIwIDE4OjE0OjI0IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gUmVmcmVzaCBDSEFOR0VMT0cuCgpjb21taXQgYjNmOWVjODZlMzg4MjA3ZmQwM2RjZGY3YjE0NWI5ZWQwODBiZjAyNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxOSAxNzoyMjo0NCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYm9vdHN0cmFwIGNvbW1hbmQgZm9yIEFNQ0MgU2VxdW9pYSAoNDQwRVB4KSBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgYm9hcmQgY29tbWFuZCB0byBjb25maWd1cmUgdGhlIEkyQyBib290c3RyYXAgRUVQUk9NCiAgICB2YWx1ZXMuIFJpZ2h0IG5vdyA1MzMgYW5kIDY2N01IeiBhcmUgc3VwcG9ydGVkIGZvciBib290aW5nIGVpdGhlciB2aWEgTk9SCiAgICBvciBOQU5EIEZMQVNILiBIZXJlIHRoZSB1c2FnZToKCiAgICA9PiBib290c3RyYXAgNTMzIG5vcgk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgNTMzTUh6IE5PUiBib290aW5nCiAgICA9PiBib290c3RyYXAgNjY3IG5hbmQJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDY2N01IeiBOTkFORCBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmOGEyNGNkZDMwMTUxNTA1Y2Y1N2JiZWU1Mjg5ZTkxYmY1M2JkMWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMTkgMTY6NDI6MzEgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEZpeCBwcm9ibGVtIHdpdGggTkFORCBib290aW5nIG9uIEFNQ0MgQWNhZGlhCgogICAgVGhlIGxhdGVzdCBjaGFuZ2VzIHNob3dlZCBhIHByb2JsZW0gd2l0aCB0aGUgbG9jYXRpb24gb2YgdGhlIE5BTkQtU1BMCiAgICBpbWFnZSBpbiB0aGUgT0NNIGFuZCB0aGUgaW5pdC1kYXRhIGFyZWEgKGluY2wuIGNhY2hlKS4gVGhpcyBwYXRjaAogICAgZml4ZXMgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NmJhOTllMzQxOTQzOTQwNTJkMjRjMDRkYzQwZDEyNjNkMjlhMjZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDE5IDE2OjQwOjU4IDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBDaGFuZ2UgYm9hcmQvYW1jYy9hY2FkaWEvY3ByLmMgdG8gcGxsLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGU1ODVmMDJmODJjMTdjYzY2Y2QyMjlkYmYwZmQzMDY2YmJiZjY1OApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTggMTM6NTA6MTMgMjAwNyAtMDUwMAoKICAgIEFkZGVkIE01MzI5QUZFRSBhbmQgTTUzMjlCRkVFIFBsYXRmb3JtcwoKICAgIEFkZGVkIGJvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2YiwgY3B1L21jZjUzMngsIGRyaXZlcnMvbmV0LAogICAgZHJpdmVycy9zZXJpYWwsICBpbW1hcF81MzI5LmgsIG01MzI5LmgsIG1jZnJ0Yy5oLAogICAgaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgsIGxpYl9tNjhrL2ludGVycnVwdHMuYywgYW5kCiAgICBydGMvbWNmcnRjLmMKCiAgICBNb2RpZmllZCBDUkVESVRTLCBNQUtFRklMRSwgTWFrZWZpbGUsIFJFQURNRSwgY29tbW9uL2NtZF9iZGluZm8uYywKICAgIGNvbW1vbi9jbWRfbWlpLmMsIGluY2x1ZGUvYXNtLW02OGsvYnl0ZW9yZGVyLmgsIGluY2x1ZGUvYXNtLW02OGsvZmVjLmgsCiAgICBpbmNsdWRlL2FzbS1tNjhrL2lvLmgsIGluY2x1ZGUvYXNtLW02OGsvbWNmdGltZXIuaCwKICAgIGluY2x1ZGUvYXNtLW02OGsvbWNmdWFydC5oLCBpbmNsdWRlL2FzbS1tNjhrL3B0cmFjZS5oLAogICAgaW5jbHVkZS9hc20tbTY4ay91LWJvb3QuaCwgbGliX202OGsvTWFrZWZpbGUsIGxpYl9tNjhrL2JvYXJkLmMsCiAgICBsaWJfbTY4ay90aW1lLmMsIG5ldC9ldGguYyBhbmQgcnRjL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwOTMxNzJmMDhkNmFmYjNmMzRkOGEyZjI2ZWUwZWU4NzQyNjFjZjI3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gSnVuIDE3IDE5OjA0OjExIDIwMDcgKzAyMDAKCiAgICBbZml4XSBlbWFpbCByZXBhcmF0aW9uCgpjb21taXQgMzY2NmFmZmZlN2JhZjg1OWM2YWUwY2UyYmViYmM4YWI3ZTUxMmRkYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEp1biAxNyAxOTowMzoyMSAyMDA3ICswMjAwCgogICAgW0ZJWF0gZml4IG1pY3JvYmxhemUgZmlsZSBwZXJtaXRpc3Npb24KCmNvbW1pdCBlNzM4NDZiN2NmMWUyOWFlNjM1YmY5YmI1NTcwMjY5NjYzZGYyZWU1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDE1IDExOjMzOjQxIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBDaGFuZ2UgbHdtb241IHBvcnQgdG8gd29yayB3aXRoIHJlY2VudCA0NDAgZXhjZXB0aW9uIHJld29yawoKICAgIE5vdyBDT05GSUdfNDQwIGhhcyB0byBiZSBkZWZpbmVkIGluIGFsbCBQUEM0NDAgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlZmEzNWNmMTJkOTE0ZDRjYWJhOTQyYWNkNWE2YzQ1ZjIxN2RlMzAyCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdW4gMTUgMTE6MTk6MjggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW4gdXAgNDQwIGV4Y2VwdGlvbnMgaGFuZGxpbmcKCiAgICAtIEludHJvZHVjZWQgZGVkaWNhdGVkIHN3aXRjaGVzIGZvciBidWlsZGluZyA0NDAgYW5kIDQwNSBpbWFnZXMgcmVxdWlyZWQKICAgICAgZm9yIDQ0MC1zcGVjaWZpYyBtYWNoaW5lIGluc3RydWN0aW9ucyBsaWtlICdyZm1jaScgZXRjLgoKICAgIC0gRXhjZXB0aW9uIHZlY3RvcnMgbW92ZWQgdG8gdGhlIHByb3BlciBsb2NhdGlvbiAoX3N0YXJ0IG1vdmVkIGF3YXkgZnJvbQogICAgICB0aGUgY3JpdGljYWwgZXhjZXB0aW9uIGhhbmRsZXIgc3BhY2UsIHdoaWNoIGl0IG9jY3VwaWVkKQoKICAgIC0gQ3JpdGljYWxJbnB1dCBub3cgc2VydmljZWQgKHdpdGggZGVmYXVsdCBoYW5kbGVyKQoKICAgIC0gTWFjaGluZUNoZWNrIHByb3Blcmx5IHNlcnZpY2VkIChhZGRlZCBhIGRlZGljYXRlZCBoYW5kbGVyIGFuZCByZXR1cm4KICAgICAgc3Vicm91dGluZSkKCiAgICAtIE92ZXJhbGwgY2xlYW51cCBvZiBleGNlcHRpb25zIGRlY2xhcmVkIHdpdGggU1REX0VYQ0VQVElPTiBtYWNybyAodW51c2VkLAogICAgICB1bmhhbmRsZWQgYW5kIHRob3NlIG5vdCByZWxldmFudCBmb3IgNHh4IHdlcmUgZWxpbWluYXRlZCkKCiAgICAtIEVsaW1pbmF0ZWQgTGludXggbGVmdG92ZXJzLCByZW1vdmVkIGRlYWQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNzY1ZmZiNzczZjVhM2NkNWFhOTRlYzc2YjZhMDUyNzZiOGNkNWIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDE1IDA4OjE4OjAxIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBBZGQgaW5pdGlhbCBsd21vbjUgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBpbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBMaWViaGVyciBsd21vbjUgYm9hcmQgZXVxaXBwZWQKICAgIHdpdGggYW4gQU1DQyA0NDBFUHggUG93ZXJQQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODVmNzM3Mzc2ZDVmZjNkNWYwZDQ1YThiNjU3Njg2MzI2ZDE3NTMwNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxNSAwNzozOTo0MyAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gRXh0ZW5kIDQ0eCBHUElPIHNldHVwIHdpdGggZGVmYXVsdCBvdXRwdXQgc3RhdGUKCiAgICBUaGUgYm9hcmQgY29uZmlnIGFycmF5IENGR180NDBfR1BJT19UQUJMRSBmb3IgdGhlIHBwYzQ0MCBHUElPIHNldHVwCiAgICBpcyBleHRlbmRlZCB3aXRoIHRoZSBkZWZhdWx0IEdQSU8gb3V0cHV0IHN0YXRlIChsZXZlbCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRiY2EyMDg1MThlNWU3ZjAxYTY0MjA1ODhkMWNkNmU2MGRiNzRjMmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdW4gMTQgMTE6MTQ6MzIgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEV4dGVuZCBwcm9ncmFtX3RsYigpIHdpdGggdmlydHVhbCAmIHBoeXNpY2FsIGFkZHJlc3NlcwoKICAgIE5vdyBwcm9ncmFtX3RsYigpIGFsbG93cyB0byBwcm9ncmFtIGEgVExCIChvciBtdWx0aXBsZSkgd2l0aAogICAgZGlmZmVyZW50IHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3Nlcy4gV2l0aCB0aGlzIGNoYW5nZSwgbm93IG9uZQogICAgcGh5c2ljYWwgcmVnaW9uIChlLmcuIFNEUkFNKSBjYW4gYmUgbWFwcGVkIDIgdGltZXMsIG9uY2Ugd2l0aCBjYWNoZXMKICAgIGRpYWJsZWQgYW5kIG9uY2Ugd2l0aCBjYWNoZXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTkxMjEyMWY3ZWQ4MDRlYTU4ZmQ2MmYzZjIzMGI1ZGNmYzM1N2Q4OApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDIzIDE5OjAyOjQxIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgJ3JlcGVhdGFibGUnIGF0dHJpYnV0ZSBvZiBzb21lIGNvbW1hbmRzIHRvIHNlbnNpYmxlIHZhbHVlcy4KCiAgICBNb3N0IHByb21pbmVudGx5IHRoaXMgY2hhbmdlcyAnZXJhc2UnIHRvIGJlIG5vbi1yZXBlYXRhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDVhZmIyMDIwOTNmNmEwMDE3OTdkYjkyY2Y2OTViOTNhNzBlYTlhYjQKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAyMyAxODo0Nzo0OCAyMDA3ICswMjAwCgogICAgRml4ICdydW4nIG5vdCB0byBjb250aW51ZSBhZnRlciBpbnRlcnJ1cHRlZCBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgOWI3NDY0YTJjODg2MTRlMTA2MWY1MDljNDg5MzBhM2QyNDBkMWEzNQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTU6MTQ6MjQgMjAwNyArMDIwMAoKICAgIFVTQjogVGhpcyBwYXRjaCBmaXggcmVhZGwgaW4gb2hjaSBzd2FwIHJlZyBhY2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4Zjg0MTZmYWRhOWZhZjk0YjlhOTJmMjFmZTYwMDA2NDNjYjUyMWQ1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biA4IDE0OjUyOjIyIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBBZGQgRmxhdCBEZXZpY2UgVHJlZSBzdXBwb3J0LCB1cGRhdGUgZGVmYXVsdCBlbnYuIGFjY29yZGluZ2x5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5MDQ1ZjMzYzAyM2Y2OTg2NjBhMmU0NWQxYjIxOTRjMDcxMWFiZWJjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1biA4IDEwOjI0OjU4IDIwMDcgKzAyMDAKCiAgICBGaXggY29uZmlnIHByb2JsZW1zIG9uIFNDMyBib2FyZDsgbWFrZSBpZGVfcmVzZXRfdGltZW91dCB3b3JrLgoKY29tbWl0IGZiYTNmYjA0NDliOGE1NDU0MmFlZDFlNzI5ZGU3NmU3ZjVhMmZmMWIKQXV0aG9yOiBCZW5vw650IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgpEYXRlOglGcmkgSnVuIDggMDk6NTU6MjQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gZml4IGdwaW8gc2V0dGluZyB3aGVuIHVzaW5nIENGR180NDBfR1BJT19UQUJMRQoKICAgIFNldCB0aGUgY29ycmVjdCB2YWx1ZSBpbiBHUElPeF9UQ1Igd2hlbiBjb25maWd1cmluZyB0aGUgZ3BpbwogICAgd2l0aCBDRkdfNDQwX0dQSU9fVEFCTEUuCgogICAgU2lnbmVkLW9mZi1ieTogQmVub2l0IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY1MzllZGMwNzZjZmU1MmJmZjkxOWRkNTEyYmE4ZDdhZjBlMjIwOTIKQXV0aG9yOiBWYWRpbSBCZW5kZWJ1cnkgPHZiZW5kZWJAZ29vZ2xlLmNvbT4KRGF0ZToJVGh1IE1heSAyNCAxNTo1MjoyNSAyMDA3IC0wNzAwCgogICAgY29zbWV0aWMgY2hhbmdlcyB0byBiY201NzB4IGRyaXZlcgoKICAgIFRoaXMgaXMgYSBjb3NtZXRpYyBvbmx5IGNoYW5nZXMgc3VibWlzc2lvbi4KICAgIEl0IGFmZmVjdHMgZmlsZXMgcmVsZXZhbnQgdG8gYmNtNTcweCBkcml2ZXIuCiAgICB0aGUgY29tbWFuZHMgdXNlZCB0byBnZW5lcmF0ZSB0aGlzIGNoYW5nZSB3YXMKCiAgICBjZCBkcml2ZXJzCiAgICBMaW5kZW50IC1wY3MgLWw4MCAgYmNtNTcweC5jICAgYmNtNTcweF9sbS5oICAgYmNtNTcweF9tbS5oCXRpZ29uMy5jICB0aWdvbjMuaAoKICAgIFRoZSBCTVcgdGFyZ2V0ICh0aGUgb25seSBvbmUgdXNpbmcgdGhpcyBjaGlwIHNvIGZhcikgYnVpbGRzIGNsZWFubHksIHRoZQogICAgYGJlZm9yZSBhbmQgYWZ0ZXInIGdlbmVyYXRlZCBvYmplY3QgZmlsZXMgZm9yIGRyaXZlcnMvYmNtNTcweC5jIGFuZAogICAgZHJpdmVycy90aWdvbjMubyBhcmUgaWRlbnRpY2FsIGFzIHJlcG9ydGVkIGJ5IG9iamR1bXAgLWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBWYWRpbSBCZW5kZWJ1cnkgPHZiZW5kZWJAZ29vZ2xlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDcyNTY3MWNjZDJjZDA0YzllYmM1MGM5ZTVhOTRkZDhjYmFkZTY2YjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTY6MjY6NTYgMjAwNyArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwOyBnZW5lcmF0ZSBuZXcgQ0hBTkdFTE9HIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxOWQ3NjNjMzVlMGI1NTY4ZWFmMGI4YWRiZjdhNjhjY2ZlN2ZhMjQzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjQ0IDIwMDcgKzAyMDAKCiAgICBUUkFCLCBVU0I6IHVwZGF0ZSB0cmFiIGJvYXJkIGNvbmZpZ3VyYXRpb24gZm9yIHVzZSBvZiBnZW5lcmljIG9oY2kgZHJpdmVyCgpjb21taXQgZGFjZTQ1YWNkMWMxMzU3ZGFhOTMyMjA5OWQwN2M5YTllMDhiMDAyNApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTo0MyAyMDA3ICswMjAwCgogICAgVVNCOiBvaGNpIGZpeGVzIGFuZCBjbGVhbnVwIGZvciBwcGM0eHggYW5kIHlvc2VtaXRlIGJvYXJkLgoKY29tbWl0IDcyNjU3NTcwYjYxNjM1Yzc0ZmEwYzNmMGU5ZTdkMDY3MWE5ZDA4ZGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6NDMgMjAwNyArMDIwMAoKICAgIFVTQjogb2hjaSBmaXhlcyBhbmQgY2xlYW51cCBmb3IgbXBjNXh4eCBhbmQgSWNlQ3ViZSBib2FyZCBjb25maWcKCmNvbW1pdCBmYzQzYmU0NzhmMmFhMzdjZTM4YWNkODUzNTUwMzg4NjZlNDE2MmFmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjM1IDIwMDcgKzAyMDAKCiAgICBVU0IvT0hDSTogZW5kaWFubmVzcyBjbGVhbnVwIGluIHRoZSBnZW5lcmljIG9oY2kgZHJpdmVyCgpjb21taXQgYzQ0MGJmZTZkNmQ5MmQ2NjQ3OGE3ZTg0NDAyYjMxZjQ4NDEzNjE3YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQyOjEzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgQU1DQyBBY2FkaWEgKDQwNUVaKSBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciB0aGUgQU1DQyBBY2FkaWEgZXZhbCBib2FyZC4KCiAgICBQbGVhc2UgbWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSBqdW1wZXIgSjcgdG8gcG9zaXRpb24gMi0zIHdoZW4gYm9vdGluZwogICAgZnJvbSBOT1IsIGFuZCB0byBwb3NpdGlvbiAxLTIgd2hlbiBib290aW5nIGZvciBOQU5ELgoKICAgIEkgYWxzbyBhZGRlZCBhIGJvYXJkIGNvbW1hbmQgdG8gY29uZmlndXJlIHRoZSBJMkMgYm9vdHN0cmFwIEVFUFJPTQogICAgdmFsdWVzLiBSaWdodCBub3cgb25seSAyNjdNSHogaXMgc3VwcG9ydCBmb3IgYm9vdGluZyBlaXRoZXIgdmlhIE5PUgogICAgb3IgTkFORCBGTEFTSC4gSGVyZSB0aGUgdXNhZ2U6CgogICAgPT4gYm9vdHN0cmFwIDI2NyBub3IJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDI2N01IeiBOT1IgYm9vdGluZwogICAgPT4gYm9vdHN0cmFwIDI2NyBuYW5kCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciAyNjdNSHogTk5BTkQgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxODEzNTEyNWY5MDk5NDhiODVkMWQ2ODgxYWI0YWMwZWZiNGExYzU4CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxNCAyMDA3ICswMjAwCgogICAgRmlsZXMgaW5jbHVkZS9saW51eC9ieXRlb3JkZXIve2JpZyxsaXR0bGV9X2VuZGlhbi5oIGRlZmluZQogICAgX19CSUdfRU5ESUFOIGFuZCBfX0xJVFRMRV9FTkRJQU4uCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgYTgxZDFjMGI4NWIxM2U5ZDQ1ZjJkODdkZTk2YTUxYTZlMGVmMGY4MgpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxNCAyMDA3ICswMjAwCgogICAgQWRkIFVTQiBQQ0ktT0hDSSwgVVNCIGtleWJvYXJkIGFuZCBldmVudCBwb2xsIHN1cHBvcnQgdG8gdGhlCiAgICBNUEM4NjQxSFBDTiBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkYWUxNGNlOGZiZGYzODAwMTdkYzU0ZjE3MjIxOGU3ZDJhY2M4ODkKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTQgMjAwNyArMDIwMAoKICAgIFVTQiBQQ0ktT0hDSSwgaW50ZXJydXB0IHBpcGUgYW5kIHVzYiBldmVudCBwb2xsIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZGVkIFVTQiBQQ0ktT0hDSSBjaGlwcyBzdXBwb3J0LCBpbnRlcnJ1cHQgcGlwZSBzdXBwb3J0CiAgICBhbmQgdXNiIGV2ZW50IHBvbGwgc3VwcG9ydC4gRm9yIHN1cHBvcnRpbmcgdGhlIFVTQiBpbnRlcnJ1cHQgcGlwZSwgdGhlCiAgICBnbG9iZSB1cmJfcHJpdiBpcyBtb3ZlZCB0byBwdXJiIGluIGVkIHN0cnVjdC4gTm93LCB3ZSBjYW4gcHJvY2VzcwogICAgc2V2ZXJhbCB1cmJzIGF0IG9uZSB0aW1lLiBUaGUgaW50ZXJydXB0IHBpcGUgc3VwcG9ydCBjb2RlcyBhcmUgcG9ydGVkCiAgICBmcm9tIExpbnV4IGtlcm5lbCAyLjQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmZGNmYWExYjAyMjY4YjI4OTllMzc0YjM1YWRmOTM2YzkxMWE0N2ViCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjEzIDIwMDcgKzAyMDAKCiAgICBVU0IgZXZlbnQgcG9sbCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIFVTQiBldmVudCBwb2xsIHN1cHBvcnQsIHdoaWNoIGNvdWxkIGJlIHVzZWQgaW4gdXNia2JkCiAgICBhbmQgb3RoZXIgdXNiIGRldmljZXMgZHJpdmVyIHdoZW4gdGhlIGFzeW5jaHJvbm91cyBpbnRlcnJ1cHQKICAgIHByb2Nlc3NpbmcgaXMgc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20KCmNvbW1pdCA5YTFkMDBmYTQ3YzFlMDVlM2ZkYjYwYjMzMjEzYWY0ZTE4ZDRjMThlCkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxMiAyMDA3ICswMjAwCgogICAgSVNQMTE2eDogZGVsYXkgZm9yIGNyYXBweSBVU0Iga2V5cwoKICAgIFVzaW5nIHNvbWUgKHZlcnkpIHNsb3cgVVNCIGtleXMgY2F1c2UgdGhlIFVTQiBob3N0IGNvbnRyb2xsZXIgYnVmZmVycwogICAgYXJlIG5vdCByZWFkeSB0byBiZSByZWFkIGJ5IHRoZSBDUFUgc28gd2UgbmVlZCBhbiBleHRyYSBkZWxheSBiZWZvcmUKICAgIHJlYWRpbmcgdGhlIFVTQiBzdG9yYWdlIGRhdGEuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgMDk0NDQxNDM2NzBjOWMyMjQzY2I3YWJhOWY3MGIzNzEzZDMzYmVkMQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxMiAyMDA3ICswMjAwCgogICAgQ2hhbmdlIGR1cGxpY2F0ZSB1c2JfY3B1X2luaXRfZmFpbCB0byB1c2JfYm9hcmRfaW5pdF9mYWlsCgogICAgVGhhbmtzIHRvIExpZXcgVHNpIENodW5nIDxUc2ktY2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPiBmb3IgcG9pbnRpbmcKICAgIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMzI5MjJjZGM0NzBmZGZkMzliZWEwYzFjNGY1ODJkM2ZiMzQwNDIxZQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNSAxMjozMDo1MiAyMDA3IC0wNTAwCgogICAgbXBjODY0MSBpbWFnZSBzaXplIGNsZWFudXAKCiAgICBlNjAwIGRvZXMgbm90IGhhdmUgYSBib290cGcgcmVzdHJpY3Rpb24uCiAgICBNb3ZlIHRoZSB2ZXJzaW9uIHN0cmluZyB0byBiZWdpbm5pbmcgb2YgaW1hZ2UgYXQgZmZmMDAwMDAuCiAgICBSZXNldHZlYy5TIGlzIG5vdCBuZWVkZWQuCiAgICBVcGRhdGUgZmxhc2ggY29weSBpbnN0cnVjdGlvbnMuCiAgICBBZGQgdGZ0cGZsYXNoIGVudiB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUzY2JlMWY5M2M1NzIyZjhlYmJhZDQ2OGUzMGMwNjlhMmI1MTEwOTcKQXV0aG9yOiBCZW5vw650IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgpEYXRlOglNb24gSnVuIDQgMDg6MzY6MDUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gRml4IHBwYzR4eCBib290c3RyYXAgbGV0dGVyIGRpc3BsYXllZCBvbiBzdGFydHVwCgogICAgVGhlIGF0dGFjaGVkIHBhdGNoIGlzIG1haW5seSBjb3NtZXRpYywgYWxsb3dpbmcgdS1ib290IHRvCiAgICBkaXNwbGF5IHRoZSBjb3JyZWN0IGJvb3RzdHJhcCBvcHRpb24gbGV0dGVyIGFjY29yZGluZyB0byB0aGUKICAgIGRhdGFzaGVldHMuCgogICAgVGhlIG9yaWdpbmFsIHBhdGNoIHdhcyBleHRlbmRlZCB3aXRoIDQwNUVaIHN1cHBvcnQgYnkgU3RlZmFuCiAgICBSb2VzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW5vaXQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWIxMzEzZmIyNzU4ZmZjZThiNjI0NDU3Zjc3N2Q4Y2M2NzA5NjA4ZApBdXRob3I6IE5pa2l0YSBWLiBZb3VzaGNoZW5rbyA8eW91c2hAZGViaWFuLm9yZz4KRGF0ZToJV2VkIE1heSAyMyAxMjo0NToxOSAyMDA3ICswNDAwCgogICAgZml4IGNvbXBpbGF0aW9uIHByb2JsZW0gZm9yIG1wYzgzNDlpdHggQ0ZHX1JBTUJPT1QKCiAgICBDdXJyZW50IGluY2x1ZGUvY29uZmlncy9NUEM4MzQ5SVRYLmggZG9lcyBjb250YWluIHNvbWUgc3VwcG9ydCBmb3IgYnVpbGRpbmcKICAgIGltYWdlIHRoYXQgd2lsbCBiZSBzdGFydGVkIGZyb20gbWVtb3J5ICh3aXRob3V0IHB1dHRpbmcgaW4gaW50byBmbGFzaCkuCiAgICBJdCBjb3VsZCBiZSB0cmlnZ2VyZWQgYnkgYnVpbGRpbmcgd2l0aCBURVhUX0JBU0Ugc2V0IHRvIGEgbG93IHZhbHVlLgoKICAgIEhvd2V2ZXIsIHRoaXMgc3VwcG9ydCBpcyBpbmNvbXBsZXRlOiB1c2luZyBvZiBsb3cgVEVYVF9CQVNFIGNhdXNlcwogICAgZGVmaW5pbmcgY29uZmlndXJhdGlvbiBtYWNyb3MgaW4gaW5jb25zaXN0ZW50IHdheSwgd2hpY2ggbGF0ZXIgbGVhZHMKICAgIHRvIGNvbXBpbGF0aW9uIGVycm9ycy4gSW4gcGFydGljdWxhci4gZmxhc2ggc3VwcG9ydCBpcyBiZWluZyBkaXNhYmxlZCwKICAgIGJ1dCB0aGVuIGZsYXNoIHN0cnVjdHVyZXMgZ2V0IHJlZmVyZW5jZWQuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBsb3cgVEVYVF9CQVNFLgoKICAgIFNpZ25lZC1PZmYtQnk6IE5pa2l0YSBZb3VzaGNoZW5rbyA8eW91c2hAZGViaWFuLm9yZz4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhMzY0ZjA5NzBkZTQ5OTQ5ZDYzNWU2MGFjY2Y0NjNjNjQ0M2VmOGMKQXV0aG9yOiBOaWtpdGEgVi4gWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+CkRhdGU6CVdlZCBNYXkgMjMgMTI6NDU6MjUgMjAwNyArMDQwMAoKICAgIGFkZCBtaXNzaW5nICdjb25zb2xlJyB2YXIgdG8gZGVmYXVsdCBtcGM4MzQ5aXR4IGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMThkMTU2ZWIzN2M5MGZhZGM4ZWM3YTgxYTNiODkxNzYxNjFmODViNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE2OjE4OjE3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtaXNzaW5nIGZpbGUgZm9yIEJhbWJvbyBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNTVhOTY0NzhhMDg4MWU2ZGE5NmNiYmJjZjM0OTUyZDZhM2IxYjRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6NTg6MTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVW5kbyBTZXF1b2lhIHBhdGNoIGZvciBkeW5hbWljIEVCQyBzcGVlZCBzdXBwb3J0IG9mIDgzTUh6CgogICAgVGhpcyBwYXRjaCB1bmRvZXMgdGhlIHBhdGNoIGJ5IEplZmYgTWFubiB3aXRoIGNvbW1pdC1pZCBhZGE0Njk3ZC4gQXMKICAgIHN1Z2dlc3RlZCBieSBBTUNDIGl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBkeW5hbWljYWxseSBjaGFuZ2UgdGhlIEVCQwogICAgc3BlZWQgYWZ0ZXIgYm9vdHVwLiBTbyB3ZSB1bmRvIHRoaXMgY2hhbmdlIHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlkOTA5NjA0M2U4ZjcxM2Q0YmYxNzQzZDMyZTE0NTllNmExMTY0NGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToyOTowNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgU2VxdW9pYSBOQU5EIGJvb3Rpbmcgc3VwcG9ydCB3aXRoIEVDQwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZjk1OWM3ZDY2ODc1NjdjMzA4ZTM2NmU5NTgxZTFhNWFmZjVjYzViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6Mjc6MTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciBBTUNDIEJhbWJvbyAoNDQwRVApIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEJhbWJvbyBldmFsIGJvYXJkLgogICAgU2luY2UgdGhlIE5BTkQtU1BMIGJvb3QgaW1hZ2UgaXMgbGltaXRlZCB0byA0a2J5dGVzLCB0aGlzIHZlcnNpb24KICAgIG9ubHkgc3VwcG9ydHMgdGhlIG9uYm9hcmQgNjRNQnl0ZXMgb2YgRERSLiBUaGUgRElNTSBtb2R1bGVzIGNhbid0IGJlCiAgICBzdXBwb3J0ZWQsIHNpbmNlIHRoZSBzZXR1cCBjb2RlIGZvciBJMkMgRElNTSBhdXRvZGV0ZWN0aW9uIGFuZAogICAgY29uZmlndXJhdGlvbiBpcyB0b28gYmlnIGZvciB0aGlzIE5BTkQgYm9vdGxvYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDJiZTU2ZjUzYzhiMTA3ODY4ZTYxMjVjODUyNGFlODQyOTNlOTVhNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjIzOjA0IDIwMDcgKzAyMDAKCiAgICBOQU5EOiBBZGQgRUNDIHN1cHBvcnQgdG8gTkFORCBib290aW5nIHN1cHBvcnQgaW4gbmFuZF9zcGwvbmFuZF9ib290LmMKCiAgICBUaGUgVS1Cb290IE5BTkQgYm9vdGluZyBzdXBwb3J0IGlzIG5vdyBleHRlbmRlZCB0byBzdXBwb3J0IEVDQwogICAgdXBvbiBsb2FkaW5nIG9mIHRoZSBOQU5EIFUtQm9vdCBpbWFnZS4KCiAgICBUZXN0ZWQgb24gQU1DQyBTZXF1b2lhICg0NDBFUHgpIGFuZCBCYW1ib28gKDQ0MEVQKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQ3MWRiMDdmYmI2NWE4NDFmZmM5ZjRmMTEyNTYyYjk0NTIzMGY5OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjE5OjI5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFByZXBhcmUgQmFtYm9vIHBvcnQgZm9yIE5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSAibm9ybWFsIiBCYW1ib28gTk9SIGJvb3RpbmcgcG9ydCwgc28KICAgIHRoYXQgaXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBjb21pbmcgc29vbiBOQU5EIGJvb3RpbmcKICAgIEJhbWJvbyBwb3J0LgoKICAgIEl0IGFsc28gZW5hYmxlcyB0aGUgMm5kIE5BTkQgZmxhc2ggb24gdGhlIEJhbWJvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTNhZDAyMTAzZmI4YmU0MTM4YTk5MzdhOGFiOTFmY2RmZjdiNDk4NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjE2OjU4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBpbl9iZTMyKCkgZnVuY3Rpb25zIGFuZCBmcmllbmRzIHRvIGxhdGVzdCBMaW51eCB2ZXJzaW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkxZGEwOWNmYmNlMGMxZGUwNWQ2ZDg0YWE4MzYzZDY2NmZhN2VhM2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxNToxMiAyMDA3ICswMjAwCgogICAgTkFORDogQWRkIGhhcmR3YXJlIEVDQyBzdXBwb3J0IHRvIHRoZSBQUEM0eHggTkFORCBkcml2ZXIgbmRmYy5jCgogICAgVGhpcyBwYXRjaCBhZGRzIGhhcmR3YXJlIEVDQyBzdXBwb3J0IHRvIHRoZSBOREZDIGRyaXZlci4gSXQgYWxzbwogICAgY2hhbmdlcyB0aGUgcmVnaXN0ZXIgYWNjZXNzIGZyb20gdXNpbmcgdGhlICJzaW1wbGUiIGluMzIvb3V0MzIKICAgIGZ1bmN0aW9ucyB0byB0aGUgaW5fYmUzMi9vdXRfYmUzMiBmdW5jdGlvbnMsIHdoaWNoIG1ha2Ugc3VyZQogICAgdGhhdCB0aGUgYWNjZXNzIGlzIGNvcnJlY3RseSBzeW5jZWQuIFRoaXMgaXMgdGhlIG9ubHkgcmVjb21tZW5kZWQKICAgIGFjY2VzcyB0byBTb0MgcmVnaXN0ZXJzIGluIHRoZSBjdXJyZW50IExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTdiNWU4NjIyODdjY2E3NmYxOWRjZjhiNzQxZTYxYTdkMDY2MTdmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjEyOjE1IDIwMDcgKzAyMDAKCiAgICBOQU5EOiBVcGRhdGUgbmFuZF9lY2MuYyB0byBsYXRlc3QgTGludXggdmVyc2lvbgoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgbmFuZF9lY2MgY29kZSB0byB0aGUgbGF0ZXN0IExpbnV4IHZlcnNpb24uCiAgICBUaGUgbWFpbiByZWFzb24gZm9yIHRoaXMgaXMgdGhlIG1vcmUgY29tcGFjdCBjb2RlLiBUaGlzIG1ha2VzCiAgICBpdCBwb3NzaWJsZSB0byBpbmNsdWRlIHRoZSBFQ0MgY29kZSBpbnRvIHRoZSBOQU5EIGJvb3Rsb2FkZXIKICAgIGltYWdlIChOQU5EX1NQTCkgZm9yIFBQQzR4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDJkNDMyNzYwZDIxOTlkMGU4NTU4ZmRkOWQxNzg5YjgxMzFhYmNmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjA5OjUwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDQ0eCBERFIgZHJpdmVyIGNvZGUgY2xlYW51cCBhbmQgc21hbGwgZml4IGZvciBCYW1ib28KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTRiYmVkMjgwM2EyYWQwNTIxYzczNjJmNWQzZTA2NWY5OWFiYWVkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDEzOjQ1OjI0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBMdWFuIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgRUNDCgogICAgV2l0aCB0aGUgdXBkYXRlZCA0NHggRERSMiBkcml2ZXIgdGhlIEx1YW4gYm9hcmQgbm93IHN1cHBvcnRzCiAgICBFQ0MgZ2VuZXJhdGlvbiBhbmQgY2hlY2tpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcxODdkYjczNDkxYzhkZTBmYjU2ZWZiNWU1MTM0YmE1ZWM0NDMwODkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxMzo0NTowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDR4X3NwZF9kZHIyIGNvZGUgKDQ0MFNQLzQ0MFNQZSkKCiAgICBBZGQgY29uZmlnIG9wdGlvbiBmb3IgMTgwIGRlZ3JlZSBhZHZhbmNlIGNsb2NrIGNvbnRyb2wgYXMgbmVlZGVkCiAgICBmb3IgdGhlIEFNQ0MgTHVhbiBldmFsIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlZTE1Mjk4MzhhYmJmYWEzNWYxNGUzZmZiZWFhYmE2OTMxNTk0NzVmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAzMSAxNzoyMDowOSAyMDA3ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNUWCBHUDNTU0EgKHN0eHNzYSkgQm9hcmQgd2l0aCA0IE1pQiBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDcwNDkyODhmYjFmMTZmMWIzMTcxNDAyMjZjZGViZDA3YmQ0MTYzOTUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjI2OjQ2IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBDb2RlIGNsZWFudXAsIGZpeCBvZiBhIHR5cG8gaW4gT0ZfU1RET1VUX1BBVEguCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0NTIwZmQ0ZDJjNDUwZGE0OTYzNzIxNmFhMGU1MzczOWI2MWM2MGFjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowNjozNiAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIHN1cHBvcnQgZm9yIHJlZHVuZGFudCBlbnZpcm9ubWVudC4KCiAgICBFbmFibGUgcmVkdW5kYW50IGVudmlyb25tZW50LCBhZGQgYSBNVEQgcGFydGl0aW9uIGZvciBpdDsgYWxzbyBhZGQgZW52LgogICAgdmFyaWFibGUgY29tbWFuZCBmb3IgcGFzc2luZyBNVEQgcGFydGl0aW9ucyB0byB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTI2ZWFiZWVjMzE3NDZmMDZkMzA5MTAzNjkwODkyODA1Njk2ZTM0NApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDU6MTEgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IENoYW5nZSBtYXhpbXVtIGNvbnNvbGUgYnVmZmVyIHNpemUgZnJvbSAyNTYgdG8gMTAyNCBieXRlcy4KCiAgICBBbGxvdyBwYXNzaW5nIGxvbmdlciBjb21tYW5kIGxpbmUgdG8gdGhlIGtlcm5lbCAtIHVzZWZ1bCBlc3BlY2lhbGx5CiAgICBmb3IgcGFzc2luZyBNVEQgcGFydGl0aW9uIGxheW91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTE2MGI5NmY3MTQ4M2ExMTZkZTgxYzY4OTg1ZThlZTMwNmQzNjc2NApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDQ6MTggMjAwNyArMDIwMAoKICAgIEZpeDogQWRkIG1pc3NpbmcgTlVMTCB0ZXJtaW5hdGlvbiBpbiBzdHJpbmdzIGV4cGFuZGVkIGJ5IG1hY3JvcyBwYXJzZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDYzMGVjODRhZWY3MjI4ZmMxZGJmYjM4ZGVjNzg1NDE0MDNhNzg2Y2QKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjAzOjM3IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBVcGRhdGUgRUVQUk9NJ3MgcGFnZSB3cml0ZSBiaXRzIGFuZCB3cml0ZSBkZWxheS4KCiAgICBDaGFuZ2UgRUVQUk9NIGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBkYXRhc2hlZXQ6ICJUaGUgMjRDMDFBIGFuZCAyNEMwMkEKICAgIGhhdmUgYSBwYWdlIHdyaXRlIGNhcGFiaWxpdHkgb2YgdHdvIGJ5dGVzIiwgYW5kICJUaGlzIGRldmljZSBvZmZlcnMgZmFzdCAoMW1zKQogICAgYnl0ZSB3cml0ZSIuIEFkZCAzbXMgb2YgZXh0cmEgZGVsYXkuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGMwMDEyNWUwN2MxZWJjMTI1YmFiNDBlMWUxOGJjZWVkOGJlMGMxNjIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjU4OjQ1IDIwMDcgKzAyMDAKCiAgICBNUEM1WFhYLCBNb3Rpb24tUFJPOiBGaXggUEhZIGluaXRpYWxpemF0aW9uIHByb2JsZW0uCgogICAgQWZ0ZXIgYmVpbmcgcmVzZXQgaW4gbXBjNXh4eF9mZWNfaW5pdF9waHkoKSwgUEhZIGdvZXMgaW50byBGWCBtb2RlLCBpbiB3aGljaAogICAgbmV0d29ya2luZyBkb2VzIG5vdCBmdW5jdGlvbi4gVGhpcyBjb21taXQgc3dpdGNoZXMgUEhZIHRvIFRYIG1vZGUgYnkgY2xlYXJpbmcKICAgIHRoZSBGWF9TRUwgYml0IG9mIE1vZGUgQ29udHJvbCBSZWdpc3Rlci4gSXQgYWxzbyByZXZlcnNlcyBjb21taXQKICAgIDAwODg2MWEyZjNlZjJjMDYyNzQ0ZDczMzc4N2M3ZTUzMGExYjg3NjEsIGkuZS4sIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5M2I3OGY1MzRhNmU3MDhiNGNmMWE0ZmZiNGQ4NDM4YzY3YTAwN2RiCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1NzoxNSAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIHN1cHBvcnQgZm9yIHRoZSB0ZW1wZXJhdHVyZSBzZW5zb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM3NWU2Mzk2MzBjYzEzMmRjMTljZDFlY2RhNTkyMmMwZGIwYmZiYmEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjU1OjIzIDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgZGlzcGxheWluZyBvZiBDUExEIHJldmlzaW9uIGluZm9ybWF0aW9uIGR1cmluZyBib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjOTk1MTJkNmJkMzk3M2YwMWNhMmZjNDg5NmQ4MjliNDZlNjhmMTUwCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1Mzo0MyAyMDA3ICswMjAwCgogICAgTVBDNXh4eDogQ2hhbmdlIG5hbWVzIG9mIGRlZmluZXMgcmVsYXRlZCB0byBJUEIgYW5kIFBDSSBjbG9ja3MuCgogICAgQm90aCBDRkdfUENJU1BFRURfNjYgYW5kIENGR19JUEJTUEVFRF8xMzMgYXJlIG1pc25hbWVkLCBhcyBkZWZpbmluZwogICAgdGhlbSBkb2VzIG5vdCBjYXVzZSBQQ0kgb3IgSVBCIGNsb2NrcyB0byBydW4gYXQgdGhlIHNwZWNpZmllZCBzcGVlZC4KICAgIEluc3RlYWQsIHRoZXkgY29uZmlndXJlIGRpdmlzb3JzIHVzZWQgdG8gY2FsY3VsYXRlIHNhaWQgY2xvY2tzLiBUaGlzCiAgICBwYXRjaCByZW5hbWVzIHRoZSBkZWZpbmVzIGFjY29yZGluZyB0byB0aGVpciByZWFsIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTExYzBiODVkYzM2NjRiYjNjMWU3ODExMzcxMTg3MzBjOGY2MTlhYgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTE6NDggMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBMRUQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdlYmI0NDc5YjA3ZmYyOTRlYjRkNzZlNDIwNzUzYTAzNDlmN2M5M2IKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE1heSAyNCAxMjoxMjo0NyAyMDA3ICswMjAwCgogICAgW1BBVENIXVtOQU5EXSBEZWZpbmUgdGhlIFZlbmRvciBJZCBmb3IgTWljcm9uIE5BTkQgRmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNzU2ODk0NzIyYzg4OGQwOWE5ZmExZGY4MzIzNzUzNzcyZDNkY2NlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDI0IDA5OjQ5OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzbWFsbCA0MDVFWiBPQ00gaW5pdGlsaXphdGlvbiBidWcgaW4gc3RhcnQuUwoKICAgIEFzIHBvaW50ZWQgb3V0IGJ5IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBhY20ub3JnPiB0aGlzIHBhdGNoCiAgICBmaXhlcyBhIHNtYWxsIGJ1ZyBpbiB0aGUgNDA1RVogT0NNIGluaXRpYWxpemF0aW9uLiBUaGFua3MgZm9yCiAgICBzcG90dGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWQ0YTE3OTAxM2Q1OWE3NjQ0NjQ2MmUxZWIwYTk2OWZiYTYzZWI4MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAyNCAwODoyMjowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBBY2FkaWEgc3VwcG9ydCBmb3IgYm9hcmQgcmV2aXNpb24gMS4xCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBBY2FkaWEgKDQwNUVaKSBzdXBwb3J0IGZvciB0aGUgbmV3IDEuMSBib2FyZAogICAgcmV2aXNpb24uIEl0IGFsc28gYWRkcyBzdXBwb3J0IGZvciBOQU5EIEZMQVNIIHZpYSB0aGUgNHh4IE5ERkMuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGUganVtcGVyIEo3IG11c3QgYmUgaW4gcG9zaXRpb24gMi0zIGZvciB0aGlzCiAgICBOQU5EIHN1cHBvcnQuIFBvc2l0aW9uIDEtMiBpcyBmb3IgTkFORCBib290aW5nIG9ubHkuIE5BTkQgYm9vdGluZwogICAgc3VwcG9ydCB3aWxsIGZvbGxvdyBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODIyZDU1MzY1YmI1NTdlMDg0ZDBlMzM2MjVhNmRlZGNjODY2MTEwYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMjMgMTQ6MDk6NDYgMjAwNyAtMDUwMAoKICAgIEFkZCBMSVNUXzg2eHggTUFLRUFMTCB0YXJnZXQgZm9yIFBvd2VyUEMgYnVpbGRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWYwMDc3YWJkNjlmN2E3Yzc1NmE5MTViOTYxMDM3MzAyYmUzZTZmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMiAxMjo0ODowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVc2UgZG8geyAuLi4gfSB3aGlsZSAoMCkgZm9yIENQUiAmIFNEUiBhY2Nlc3MgbWFjcm9zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmM2RmYzEzOWE4MzhiMDg0MWMxNTFlZmUwMGFkNDdkYjIzNjZlNzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjIgMTI6NDY6MTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIDQwNSBzdXBwb3J0IHRvIDR4eCBOQU5EIGRyaXZlciBuZGZjLmMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgNDA1IFBQQydzIHRvIHRoZSA0eHggTkFORCBkcml2ZXIKICAgIG5kZmMuYy4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIG5ldyBBTUNDIDQwNUVaLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMDYwM2Q3Njc2NzQyNmJlODAzZGFkZDRmYjY4OGI5N2ViNjk0ODFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWF5IDIxIDA3OjQxOjIyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIDQwNUVaIE9DTSBpbml0aWFsaXphdGlvbgoKICAgIEFzIHNwb3R0ZWQgYnkgQnJ1Y2UgQWRsZXIgdGhpcyBwYXRjaCBmaXhlcyBhbiBpbml0aWFsaXphdGlvbiBwcm9ibGVtCiAgICBmb3IgdGhlIDQwNUVaIE9DTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2UzYjk1NjkwNmViYTllNGFkNzkzMTU4MWVjZWRhYWQxMGVjY2NlOApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBNYXkgMTggMTY6NDc6MDMgMjAwNyArMDEwMAoKICAgIFJlZHVjZSBsaW5lIGxlbmd0aHMgdG8gODAgY2hhcmFjdGVycyBtYXguCgpjb21taXQgOTNlZjQ1YzlkZGZkZDlmYzE3YzRlNzRiZDhlMmYyNDU2NTgwZWI3MgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBNYXkgMTggMTQ6MzQ6MDcgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgMTQ0M2EzMTQ1N2Q2OGY3ZThmMGI5NDAzZTk4MzJlYzFlNzlkYzU5ZApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBNYXkgMTggMTQ6MzM6MTEgMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgMjU1YTM1NzdjODQ4NzA2NDQxZGFlZTAxNzQ1NDNlZmUyMDVhNzdmOApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTYgMTY6NTI6MTkgMjAwNyAtMDUwMAoKICAgIFJlZHVjZSBDT05GSUdfTVBDOFlYWF9UU0VDeCB0byBDT05GSUdfVFNFQ3gKCiAgICBGb3IgYWxsIHByYWN0aWNhbCB1LWJvb3QgcHVycG9zZXMsIFRTRUNzIGRvbid0IGRpZmZlciB0aHJvdWdob3V0IHRoZQogICAgbXBjOFszNTZdeHggZmFtaWxpZXM7IHJlZHVjZSBDT05GSUdfTVBDOFlYWF9UU0VDeCB0byBDT05GSUdfVFNFQ3guCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDEyNGMyNjAyYWUyZDRjNWQzZGJhMDViNDgyZDkxNTQ4MjQyZGU4CkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTYgMTQ6NDk6MTIgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxlIHByb2JsZW0gY2F1c2UgbXkgTWljcm9ibGF6ZSBtZXJnZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IGFkYTQ2OTdkMDIzMGQ2ZGE1NTI4Njc3NzdmOThhNjdlYzNiYTI1NzkKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJV2VkIE1heSAxNiAxMzoyMzoxMCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBSdW4gbmV3IHNlcXVvaWEgYm9hcmRzIHdpdGggYW4gRUJDIHNwZWVkIG9mIDgzTUh6CgogICAgQmVjYXVzZSB0aGUgU2VxdW9pYSBib2FyZCBkb2VzIG5vdCBib290IHdpdGggYW4gRUJDIGZhc3RlciB0aGFuIDY2TUh6LAogICAgdGhlIGNsb2NrIGRpdmlkZXIgYXJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGluaXRpYWwgYm9vdCBwcm9jZXNzLgoKICAgIFRoaXMgYWxsb3dzIGZvciBtYXhpbXVtIGNsb2NraW5nIHNwZWVkcyAgdG8gYmUgYWNoaWV2ZWQgb24gbmV3ZXIgYm9hcmRzLgogICAgU2VxdW9pYSBib2FyZHMgd2l0aCA2NjYuNjYgTUh6IHByb2Nlc3NvcnMgcmVxdWlyZSB0aGF0IHRoZSBFQkMgZGl2aWRlcgogICAgYmUgc2V0IHRvIDMgaW4gb3JkZXIgdG8gc3RhcnQgdGhlIGluaXRpYWwgYm9vdCBwcm9jZXNzIGF0IGEgc2xvd2VyIEVCQwogICAgc3BlZWQuIEFmdGVyIHRoZSBpbml0aWFsIGJvb3QgcHJvY2VzcywgdGhlIGRpdmlkZXIgY2FuIGJlIHNldCBiYWNrIHRvIDIsCiAgICB3aGljaCB3aWxsIGNhdXNlIHRoZSBib2FyZHMgdG8gcnVuIGF0IDgzLjMzM01Iei4gVGhpcyBpcyBiYWNrd2FyZAogICAgY29tcGF0aWJsZSB3aXRoIGJvYXJkcyB3aXRoIDUzMy4zMyBNSHogcHJvY2Vzc29ycywgYXMgdGhlc2UgYm9hcmRzIHdpbGwKICAgIGFscmVhZHkgYmUgc2V0IHdpdGggYW4gRUJDIGRpdmlkZXIgb2YgMi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KCmNvbW1pdCBhNzY3NmVhNzczMmYzYzU5NjgwNTA3OWZlZDdlNWM5ZmFjNjUyY2ZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNiAwMToxNjo1MyAyMDA3ICswMjAwCgogICAgTWlub3IgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkNjJmNjRjYzIzYTk0MGVhZmU3MTJjNzc2YjMyNDllNDE2MDc1M2QxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNiAwMDoxMzozMyAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIENsZWFudXAsIG5ldyBDSEFOR0VMT0cKCmNvbW1pdCAzMTYyZWI4MzY5MDNjOGIyNDdmZGM3NDcwZGQzOWJmYTY5OTZmNDk1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAxNSAyMzozODowNSAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgNjZkOWRiZWMxY2MyN2Q2Mzk4ZWU2Y2Y4NDYzOWRiZTE0OTcxMjUxZQpBdXRob3I6IG11c2h0YXEga2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjIzOjAyIDIwMDcgKzA1MzAKCiAgICBBZGQgZHJpdmVyIGZvciBTLUFUQS1jb250cm9sbGVyIG9uIEludGVsIHByb2Nlc3NvcnMgd2l0aCBTb3V0aAogICAgQnJpZGdlLCBJQ0gtNSwgSUNILTYgYW5kIElDSC03LgoKICAgIEltcGxlbWVudGF0aW9uOgoKICAgIDEuIENvZGUgaXMgZGl2aWRlZCBpbiB0byB0d28gZmlsZXMuIEFsbCBmdW5jdGlvbnMsIHdoaWNoIGFyZQogICAgICAgY29udHJvbGxlciBzcGVjaWZpYyBhcmUga2VwdCBpbiAiZHJpdmVycy9hdGFfcGlpeC5jIiBmaWxlIGFuZAogICAgICAgZnVuY3Rpb25zLCB3aGljaCBhcmUgbm90IGNvbnRyb2xsZXIgc3BlY2lmaWMsIGFyZSBrZXB0IGluCiAgICAgICAiY29tbW9uL2NtZF9zYXRhLmMiIGZpbGUuCgogICAgMi4gUmVhZGluZyBhbmQgV3JpdGluZyBmcm9tIHRoZSBTLUFUQSBkcml2ZSBpcyBkb25lIHVzaW5nIFBJTyBtZXRob2QuCgogICAgMy4gRHJpdmVyIGNhbiBiZSBjb25maWd1cmVkIGZvciA0OC1iaXQgYWRkcmVzc2luZyBieSBkZWZpbmluZyBtYWNybwogICAgICAgQ09ORklHX0xCQTQ4LCBpZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZpbmVkIGRyaXZlciB1c2VzIHRoZSAyOC1iaXQKICAgICAgIGFkZHJlc3NpbmcuCgogICAgNC4gUy1BVEEgcmVhZCBmdW5jdGlvbiBpcyBob29rZWQgdG8gdGhlIEZpbGUgc3lzdGVtLCBjb21tYW5kcyBsaWtlCiAgICAgICBleHQybHMgYW5kIGV4dDJsb2FkIGZpbGUgY2FuIGJlIHVzZWQuIFRoaXMgaGFzIGJlZW4gdGVzdGVkLgoKICAgIDUuIFUtQm9vdCBjb21tYW5kICJTQVRBX2luaXQiIGlzIGFkZGVkLCB3aGljaCBpbml0aWFsaXplcyB0aGUgUy1BVEEKICAgICAgIGNvbnRyb2xsZXIgYW5kIGlkZW50aWZpZXMgdGhlIFMtQVRBIGRyaXZlcyBjb25uZWN0ZWQgdG8gaXQuCgogICAgNi4gVS1Cb290IGNvbW1hbmQgInNhdGEiIGlzIGFkZGVkLCB3aGljaCBpcyB1c2VkIHRvIHJlYWQvd3JpdGUsIHByaW50CiAgICAgICBwYXJ0aXRpb24gdGFibGUgYW5kIGdldCBpbmZvIGFib3V0IHRoZSBkcml2ZXMgcHJlc2VudC4gVGhpcyBJIGhhdmUKICAgICAgIGltcGxlbWVudGVkIGluIHNhbWUgd2F5IGFzICJpZGUiIGNvbW1hbmQgaXMgaW1wbGVtZW50ZWQgaW4gVS1Cb290LgoKICAgIDcuIFRoaXMgZHJpdmVyIGlzIGZvciBTLUFUQSBpbiBuYXRpdmUgbW9kZS4KCiAgICA4LiBUaGlzIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBOYXRpdmUgY29tbWFuZCBxdWV1aW5nIGFuZAogICAgICAgSG90LXBsdWdnaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE11c2h0YXEgS2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgoKY29tbWl0IDY0NGU2ZmI0ZWI4YmU5MGVhMDRiYTM0YjY0M2E4YmYwMTlkNjgwZTAKQXV0aG9yOiBtdXNodGFxIGtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNTo1NzoyMiAyMDA3ICswNTMwCgogICAgRml4ZXMgYnVnIGNsZWFyaW5nIHRoZSBic3Mgc2VjdGlvbiBmb3IgaTM4NgoKICAgIEhpLAogICAgVGhlcmUgaXMgYSBidWcgaW4gdGhlIGNvZGUgb2YgY2xlYXJpbmcgdGhlIGJzcyBzZWN0aW9uIGZvciBwcm9jZXNzb3IKICAgIGkzODYuKEZpbGU6IGNwdS9pMzg2L3N0YXJ0LlMpCiAgICBJbiB0aGUgY29kZSwgYnNzX3N0YXJ0IGFkZHIgKHN0YXJ0aW5nIGFkZHIgb2YgYnNzIHNlY3Rpb24pIGlzIHB1dCBpbnRvCiAgICB0aGUgcmVnaXN0ZXIgJWVheCwgYnV0IHRoZSBjb2RlIHdoaWNoIGNsZWFycyB0aGUgYnNzIHNlY3Rpb24gcmVmZXJzIHRvCiAgICB0aGUgYWRkciBwb2ludGVkIGJ5ICVlZGkuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ1ZyBieSBwdXR0aW5nIGJzc19zdGFydCBpbnRvICVlZGkgcmVnaXN0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTXVzaHRhcSBLaGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+Cgpjb21taXQgYzMyNDNjZjdiNDkwMDU3Mjc3ZDYxYWNmZmU0YWQwOTQ2ZjllYjRhNApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTY6NDc6MjggMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBCQ001NDY0IFF1YWQgUGh5CgogICAgQWRkZWQgc3VwcG9ydCBmb3IgQnJvYWRjb20ncyBCQ001NDY0IFF1YWQgUGh5CgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KCmNvbW1pdCAxYjMwNWJkYzc1NGM4NDY4ZTFkNWQ4NThmNWRjZjhhN2EwYTRiYjdhCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA5IDA4OjEwOjU3IDIwMDcgKzA4MDAKCiAgICBTZWFyY2ggdGhlIGV4Y2VwdGlvbiB0YWJsZSB3aXRoIGxpbmVhciBhbGdvcml0aG0KCiAgICBTZWFyY2ggdGhlIGV4Y2VwdGlvbiB0YWJsZSB3aXRoIGxpbmVhciBhbGdvcml0aG0gaW5zdGVhZCBvZgogICAgYmlzZWN0aW5nIGFsZ29yaXRobS4KICAgIEJlY2F1c2UgdGhlIGV4Y2VwdGlvbiB0YWJsZSBtaWdodCBiZSB1bnNvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWRmYWE1MGViODE5Njg2YmZiYTE5MjdlOGM1YjhhNzBhNGQ2NWZkMwpBdXRob3I6IEF1YnJleS5MaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXkgMTQgMTE6NDc6MzUgMjAwNyArMDgwMAoKICAgIEZpeCBjb21waWxhdGlvbiBpc3N1ZXMgb24gTUFDT1NYCgogICAgU2luZ2VkLW9mZi1ieTogTWFyYyBIb2ZmbWFuIDxNYXJjLkhvZmZtYW5AYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+Cgpjb21taXQgNTZmZDcxNjI5ODVjNDEyMzE3YmJmNzYzYTIyNWZiYTIzYzY0ZmQzMQpBdXRob3I6IFN0ZXBoZW4gV2lsbGlhbXMgPHN0ZXZlQGljYXJ1cy5jb20+CkRhdGU6CVR1ZSBNYXkgMTUgMDc6NTU6NDIgMjAwNyAtMDcwMAoKICAgIEZpeCBmb3IgY29tcGlsZSBvZiBKU0UgdGFyZ2V0CgogICAgVGhlIGF0dGFjaGVkIHBhdGNoIGZpeGVzIHRoZSBjb21waWxlIG9mIHRoZSBKU0UgYm9hcmQgaW4gdGhlCiAgICBkZW54IGdpdCBhcyBvZiAxNCBtYXkgMjAwNy4gSXQgaXMgYW4gZXh0cmVtZWx5IHNpbXBsZSBwYXRjaCwKICAgIGl0IGp1c3QgYWRkcyB0aGUgbWlzc2luZyBkZWZpbmUgb2YgQ0ZHX1NZU1RFTUFDRV9XSURUSC4KCiAgICAgRml4IHRvIGNvbXBpbGUgSlNFIGFnYWluc3QgMjAwNzA1MTQgZ2l0IG9mIHUtYm9vdAoKY29tbWl0IDY5ZGYzYzRkYTBjOTMwMTdjY2ViMjVhMzY2ZTc5NDU3MGJkMGVkOTgKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAcmFodXRlLihub25lKT4KRGF0ZToJU3VuIE1heSAxMyAyMTowMTowMyAyMDA3ICswOTAwCgogICAgc2g6IE1TNzc1MFNFIHN1cHBvcnQuCgogICAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBIaXRhY2hpIE1TNzc1MFNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwYjEzNWNmYzJlNTI0ZGMyNDliNzUwNTdiNTVkZDRjYzA5ODQyZTI3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QHJhaHV0ZS4obm9uZSk+CkRhdGU6CVN1biBNYXkgMTMgMjA6NTg6MDAgMjAwNyArMDkwMAoKICAgIHNoOiBGaXJzdCBzdXBwb3J0IGNvZGUgb2YgU3VwZXJILgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2MTkzNjY2N2U4NmEyNTBhZTEyZmQyZGMxODlkMzU4OGYwYTU5ZTBiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDExIDEyOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtdGNwci9tZmNwciBhY2Nlc3MgbWFjcm9zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0M2M0OGJkODQ2MDZjNDAyNWM4YTdjNzI2M2ZkYTQ2NWQ2ZTI4NGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTEgMTI6MDE6MDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU2V0IGJkLT5iaV9wY2lfYnVzZnJlcSBvbiA0NDBFUHgvR1J4IHRvbwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZDk4YmE3NzBhN2VhZWZhMjljZTkyN2YzMWEwOTU2ZGY4NWJmNjUwCkF1dGhvcjogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1heSAxMCAxNjo1NTo1MiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBNVEQgYW5kIEpGRlMyIHN1cHBvcnQsIGFsc28gYWRkIGRlZmF1bHQgcGFydGl0aW9uCiAgICBkZWZpbml0aW9uLgoKY29tbWl0IDY1ZmI2YTY3NmU4MjFmOTU3MGEyYTM3NmRjMjA0YmY2MTFjZTVmODEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDI6NDQgMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgYm9hcmQgZGlyZWN0b3J5IGZvciBTTU40MgoKY29tbWl0IDE2MDEzMWJmOTY1Nzg1NDE5NjI2ZGY2YzM4ODcyOWZlMGI1OTc5OTIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDE6NTggMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgZmlsZXMgZm9yIHRoZSBTTU40MiBib2FyZAoKY29tbWl0IDVjNmQyYjVhNTAwZjhjNDk2NzBkZTg5MTAxNTBiNzhhNDFmNzgxZmMKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDA6MzQgMjAwNyArMDEwMAoKICAgIFJlbW92ZSB0aGUgZGVsZXRlZCBmaWxlcyBmb3IgdGhlIFNNTjQyIHBhdGNoCgpjb21taXQgYjBkOGY1YmYwZDIxNWFkYzk0MjRjYjIyOGIyNDg0ZGJmMDdmNzc2MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTozNzo1NiAyMDA3ICswMTAwCgogICAgTmV3IGJvYXJkIFNNTjQyIGJyYW5jaAoKY29tbWl0IDI5ZjNiZTBjYWYwNzk5Y2E2Yjg5ZGZkOTgyNGMxNTYxOWE1MDAwMGYKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTA6MjQ6MzggMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgYjg0Mjg5YjU5NTczMWU4ODUxZGY0NmU4OTM4NDVjYzEzMjJjOWI5YgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNDoxNzowNyAyMDA3IC0wNTAwCgogICAgODY0MWhwY246IEZpeCBNYWtlZmlsZSBhZnRlciBtb3ZpbmcgcGl4aXMgdG8gYm9hcmQvZnJlZXNjYWxlLgoKICAgIFRoZSBPQkpUUkVFICE9IFNSQ1RSRUUgYnVpbGQgc2NlbmFyaW8gd2FzIGJyb2tlbi4KICAgIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTY5ZjY2YzZlYmU4MmJiYmQxZGE3NjZiYzRlZGE0MGVjN2VlNWFmMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE1OjU3OjQzIDIwMDcgKzAyMDAKCiAgICBhZGQ6IHJlYWRpbmcgc3BlY2lhbCBwdXJwb3NlIHJlZ2lzdGVycwoKY29tbWl0IDFhNTBmMTY0YmViMDY1ZjM2MGZiZGRiNzYwMjk2MDdkNmIwOTk2OTgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNDo1Mjo1MiAyMDA3ICswMjAwCgogICAgYWRkOiBNaWNyb2JsYXplIFY1IGV4Y2VwdGlvbiBoYW5kbGluZwoKY29tbWl0IGFiODc0ZDUwNDdlNWQzMGRiYzFlNTE3ZmYyNjA4M2VmZmZhOThlY2IKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNDozOToxMSAyMDA3ICswMjAwCgogICAgYWRkOiBGU0wgY29udHJvbCByZWFkIGFuZCB3cml0ZQoKY29tbWl0IGRlMWRlMDJhN2NiZjA1ZTZiNjNlMGQ4ZmZjNjI0ZjEyNDkzZjZiYTMKQXV0aG9yOiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMTM6MDU6NDQgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgc3VwcG9ydCBmb3IgSTJDLCBFRVBST00gYW5kIFJUQy4KCmNvbW1pdCBmYTVjMmJhMTIzYjFiZjg4NDU1YmZjMjFkYjVlNzg2Y2EwNDUwMjlkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDEwOjIzOjU2IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIEFUQSBzdXBwb3J0LiBBZGQgQ0YtYm9vdGluZyBjb21tYW5kcyB0byB0aGUgZGVmYXVsdAogICAgZW52aXJvbm1lbnQuCgpjb21taXQgMDYyNDFkNTBhM2FiMWIyMGEwYjA4YmFlZWFmZmNhYTIzYWU0YjgzOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAwOTozOToxMiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIENoYW5nZSBJUEIgY2xvY2sgZnJlcXVlbmN5IGZyb20gNTBNSHogdG8gMTAwTUh6LiBUaGlzCiAgICBlbGltaW5hdGVzIG5ldHdvcmtpbmcgcHJvYmxlbXMgaW4gTGludXggKHRpbWVvdXRzKS4KCmNvbW1pdCAxZjEzNjljMzRiNjI5YmU5NDcwMjY4NGQ0MWQzZmRkZjBmNjE5M2U3CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDA5OjIxOjU3IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gRW5hYmxlIEZsYXQgRGV2aWNlIFRyZWUgc3VwcG9ydCBhbmQgbW9kaWZ5IGRlZmF1bHQgZW52aXJvbm1lbnQKICAgIHRvIGFsbG93IGJvb3Rpbmcgb2YgRkRULWV4cGVjdGluZyBrZXJuZWxzLgoKY29tbWl0IGZiMDVmNmRhMzVlYTFjMTVjNTUzYWJlNmYyM2Y2NTZiZjE4ZGM1ZGIKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAyMzo1ODozMSAyMDA3ICswMjAwCgogICAgbmV3OiBVU0VfTVNSX0lOVFIgc3VwcG9ydAoKY29tbWl0IDAwODg2MWEyZjNlZjJjMDYyNzQ0ZDczMzc4N2M3ZTUzMGExYjg3NjEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gTWF5IDcgMjI6MzY6MTUgMjAwNyArMDIwMAoKICAgIFtNUEM1eHh4XSBUaGVyZSBhcmUgbmV0d29ya2luZyBwcm9ibGVtcyBvbiB0aGUgTW90aW9uLVBSTyBib2FyZCB3aXRoCiAgICBjdXJyZW50IFBIWSBpbml0YWxpemF0aW9uIGNvZGUgKHRmdHAgdGltZW91dHMgYWxsIHRoZSB0aW1lKS4gVGhpcyBjb21taXQKICAgIHRlbXBvcmFyaWx5IGRpc2FibGVzIFBIWSBpbml0YWxpemF0aW9uIHNlcXVlbmNlIHRvIG1ha2UgdGhlIG5ldHdvcmtpbmcKICAgIG9wZXJhdGlvbmFsLCB1bnRpbCBhIGZpeCBpcyBmb3VuZC4KCmNvbW1pdCBhYmNhOTAxODY5YzM3NjBiNmM1ZmVjYjgyNWRiNmMxZDkxYTc4YTkzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDIyOjEwOjM2IDIwMDcgKzAyMDAKCiAgICBHZXQgcmlkIG9mIGR1cGxpY2F0ZWQgZmlsZSAoc2VlIGluY2x1ZGUvY29uZmlncy9zYmM4NTYwLmggaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIwN2I3YjJjOWQ5NzUyZTBmNjQ3OGMzMGMyOWI3MDg3ZjZlNmNiYjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMjI6MDc6MDggMjAwNyArMDIwMAoKICAgIEdldCByaWQgb2YgZHVwbGljYXRlZCBmaWxlIChzZWUgZG9jL1JFQURNRS5TQkM4NTYwIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhN2JhYzdlOWI1N2JhOTQ4MDUxYmViMTllYzViZTNhNzVjZTc1MzgzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6NDM6MTAgMjAwNyArMDIwMAoKICAgIGZpeDogcmVhZCBhbmQgd3JpdGUgTVNSIC0gcmVwYWlyIG51bWJlciBvZiBwYXJhbWV0ZXJzCgpjb21taXQgMTkzYjRhM2JiM2FjYWRkZjc5OGRhOGRlMGRhMDVkOTRiYTg3NzRlZQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gTWF5IDcgMTk6NDI6NDkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gcHBjNHh4OiBGaXggQ09ORklHX1NZU19DTEtfRlJFUSBkZWZpbml0aW9uIGluIFNlcXVvaWEgY29uZmlnIGZpbGUKCiAgICBBICczJyBnb3QgY3V0IG9mZiBpbiB0aGUgZm9ybWF0dGluZyBvZiB0aGUgbGFzdCBwYXRjaCB0byBhdXRvbWF0aWNhbGx5CiAgICBjaGFuZ2UgdGhlIGNsb2NrIHNwZWVkIG9mIHRoZSBzeXN0ZW0gY2xvY2sgb24gc2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOWJmMWZiYWQ3ZjE5ZDVhMTIwYmU5YjFkYWYxMzZlMDUyZmNhYjM5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MzM6NTEgMjAwNyArMDIwMAoKICAgIG5ldzogZnNsIGludGVycnVwdCBzdXBwb3J0CiAgICBGU0xfSGFzX2RhdGEgaXMgY29ubmVjdGVkIHRvIElOVEMuCgpjb21taXQgNzkyMDMyYmFhN2Q2MjVlMzRjOTgxYWI2ZGY1MjE5MTFiZDhkYzg2MQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjMwOjEyIDIwMDcgKzAyMDAKCiAgICBmaXg6IGludGVycnVwdCBoYW5kbGVyCiAgICByZW1vdmUgYXNtIGNvZGUKCmNvbW1pdCBmM2YwMDFhMzQxZWYxODVkMGYxMzg0MWJlNWI1ZGMzMzk1YWFjYzMxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MjU6MDggMjAwNyArMDIwMAoKICAgIGZpeDogcmVtb3ZlIGFzbSBjb2RlCgpjb21taXQgZmI3YzJkYmVmMDJjOWY2ZjhkN2IwNGVjNGMyYmZiOTE0MThiOWMwMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjEyOjQzIDIwMDcgKzAyMDAKCiAgICBmaXg6IGNsZWFuIGludGVycnVwdAoKY29tbWl0IDQyZWZlZDYxMzBjOGZjZjdkYTg4MTM4NWI1NDI3MDY1ZDI4MDE3NTcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxNzoyMjoyNSAyMDA3ICswMjAwCgogICAgZml4OiBpbnRlcnJ1cHQgaGFuZGxlciBmb3IgbXVsdGlwbGUgc291cmNlcwoKY29tbWl0IDQ4ZmJkM2E0Y2RhYmJlYmMxZGViZDdlZWQ3M2MwMGMyY2FmOTE0ZjYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxNzoxMTowOSAyMDA3ICswMjAwCgogICAgbmV3OiBhZGQgd3JpdGluZyB0byBtc3IgcmVnaXN0ZXIKCmNvbW1pdCAzYTYxOWRkN2JlZDAzZThiNGQyMmEzOTExZjkwZmQxMmFmNTM3NmMyCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDE2OjQzOjU2IDIwMDcgKzAyMDAKCiAgICBGaXggYW4gYW5jaWVudCBDSEFOR0VMT0cgY29uZmxpY3QKCmNvbW1pdCBhYzRjZDU5ZDU5YzliZjNmODljYjdhMzQ0YWJmODE4NGQ2NzhmNTYyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjEyOjMwIDIwMDcgKzAyMDAKCiAgICA1eHh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTlkODdlMjcwN2RjYjI0OWY2YmI3ZjdmZjdlMDBhY2Q4Y2RhOWZkMgpBdXRob3I6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MDE6NTQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBNUEM1MjAwQiBmcm9tIE1QQzUyMDAgaW4gYm9vdCBtZXNzYWdlCgogICAgTVBDNTIwMEIgc3lzdGVtcyBhcmUgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgTVBDNTIwMCBpbiBVLUJvb3Qgc3RhcnQtdXAKICAgIG1lc3NhZ2UuIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdHdvIHZhcmlhbnRzLCBhbmQgcHJpbnQgcHJvcGVyIENQVQogICAgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNGVjNWJkNTVlZDFmZmE5MWE3NzRhZjI5ODc2OTYyMWY0ZmJiMThjMQpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIEFwciAyNSAxNjowMToyNiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBzaW1wbGlmeSBzaWxlbnQgY29uc29sZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjc1OThhNDNmMmI0MjFhNzEzZDgxMzVlOThhNDJjMzdkOWViOWRmMApBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTU6MzA6MzkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQXZvaWQgYXNzaWduaW5nIFBDSSByZXNvdXJjZXMgZnJvbSB6ZXJvIGFkZHJlc3MKCiAgICBJZiBhIFBDSSBJREUgY2FyZCBoYXBwZW5zIHRvIGdldCBhIHplcm8gYWRkcmVzcyBhc3NpZ25lZCB0byBpdCwgdGhlIExpbnV4IElERQogICAgY29yZSBjb21wbGFpbnMgYW5kIElERSBkcml2ZXJzIGZhaWxzIHRvIHdvcmsuICBBbHNvLCBhc3NpZ25pbmcgemVybyB0byBhIEJBUgogICAgd2FzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIFBDSSAyLjEgKHRoZSBsYXRlciByZXZpc2lvbnMgc2VlbSB0byBoYXZlIGV4Y2x1ZGVkIHRoZQogICAgc2VudGVuY2UgYWJvdXQgIjAiIGJlaW5nIGNvbnNpZGVyZWQgYW4gaW52YWxpZCBhZGRyZXNzKSAtLSBzbywgdXNlIGEgcmVhc29uYWJsZQogICAgc3RhcnRpbmcgdmFsdWUgb2YgMHgxMDAwICh0aGF0J3Mgd2hhdCB0aGUgbW9zdCBMaW51eCBhcmNocyBhcmUgdXNpbmcpLgoKICAgIEFsdGVybmF0aXZlbHksIG9uZSBtaWdodCBoYXZlIGZpeGVkIHRoZSBjYWxscyB0byBwY2lfc2V0X3JlZ2lvbigpIGluZGl2aWR1YWxseQogICAgKHNvbWUgY29kZSBldmVuIHNlZW1zIHRvIGhhdmUgdGFrZW4gY2FyZSBvZiB0aGlzIGlzc3VlKSBidXQgdGhhdCB3b3VsZCBoYXZlCiAgICBiZWVuIGEgbG90IG1vcmUgd29yay4gOi0pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWZmZDQ1MWFmZWIwOGU1YmU3ZGRhZTY4MDQ4N2VjOTYyYjJiY2EyNQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gQXByIDIzIDE0OjAwOjExIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHNldGVudiguLi4pIGNhbiBkZWxldGUgZW52aXJvbm1lbnRhbHZhcmlhYmxlcwoKICAgIHVwZGF0ZSBzZXRlbnYoKSBmdW5jdGlvbiBzbyB0aGF0IGVudGVyaW5nIGEgTlVMTCB2YWx1ZSBmb3IgdGhlCiAgICB2YXJpYWJsZSdzIHZhbHVlIHdpbGwgZGVsZXRlIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViZDBhMGFlMDVhNDQ3NjljNGUyNzQ1OGFkNGU5ZjM0MzgyNTA0NDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBBcHIgMjMgMTM6NTQ6MjQgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gdXNlIHVuc2lnbmVkIGNoYXIgaW4gc21jOTExMTEgZHJpdmVyIGZvciBtYWMKCiAgICB0aGUgdl9tYWMgdmFyaWFibGUgaW4gdGhlIHNtYzkxMTExIGRyaXZlciBpcyBkZWNsYXJlZCBhcyBhIHNpZ25lZCBjaGFyIC4uLgogICAgdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGluIHRoZSBNQUMgaXMgInNpZ25lZCIgbGlrZSAweEUwCiAgICBiZWNhdXNlIHdoZW4gaXQgZ2V0cyBwcmludGVkIG91dCwgeW91IGdldCBhIGRpc3BsYXkgbGlrZToKICAgIDB4RkZGRkZGRTAgYW5kIHRoYXQncyBubyBnb29kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZmYzUwZjliYjE5NDM0M2M2MzAzNTE3YTUxNzcwODQ1N2E1ZWI2YjgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBNYXkgNSAxODo1NDo0MiAyMDA3ICswMjAwCgogICAgbmV3OiBGU0wgYW5kIE1TUiBzdXBwb3J0ICMyCgpjb21taXQgZjdlMmUwZWIwNjY4MTM2MzA1Zjc4YmI5YzIxYmU3OWI0OGEzNDI0NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IE1heSA1IDE4OjI3OjE2IDIwMDcgKzAyMDAKCiAgICBuZXc6IEZTTCBhbmQgTVNSIHN1cHBvcnQKCmNvbW1pdCAyZjE1Mjc4YzJlYjkxMWM2NjhiNGZlNTYyMTMwYjc4Y2Y1NTRkMTM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE4OjIzOjExIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGtlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ODVlYzg5YjY0OGE4OTlhMmYzMjM5M2ZkM2ZmZDlmNzIzNGM0NDAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE4OjA1OjAyIDIwMDcgKzAyMDAKCiAgICBBZGQgU1RYIEdQMyBTU0EgYm9hcmQgdG8gTUFLRUFMTCBzY3JpcHQ7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NDk5NjQ1YjNmZTE3YTU0OGFmOWRmYzQ3OWNhNmUyNDU1ZjE3OWEyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE3OjE1OjUwIDIwMDcgKzAyMDAKCiAgICBNYWtlICJmaWxlIiBjb21tYW5kIGhhcHB5IHdpdGggc29tZSBjb25maWcubWsgZmlsZXM7IHVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBlM2I4Yzc4YmMyNDg5YzI3YWUwMjA5ODZlZjBlYWNhNjg0ODY2Y2VmCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CVNhdCBNYXkgNSAwODozMjoxNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBEZXRlY3QgaWYgdGhlIHN5c2NsayBvbiBTZXF1b2lhIGlzIDMzIG9yIDMzLjMzMyBNSHoKCiAgICBUaGUgQU1DQyBTZWNxdW9pYSBib2FyZCBoYXMgYmVlbiBjaGFuZ2VkIGluIGEgbmV3IHJldmlzaW9uIGZyb20gdXNpbmcgYQogICAgMzMuMDAwIE1IeiBjbG9jayB0byBhIDMzLjMzMyBNSHogc3lzdGVtIGNsb2NrLiBBIGJpdCBpbiB0aGUgQ1BMRAogICAgaW5kaWNhdGVzIHRoZSBkaWZmZXJlbmNlLiBUaGlzIHBhdGNoIHJlYWRzIHRoYXQgYml0IGFuZCB1c2VzIHRoZSBjb3JyZWN0CiAgICBjbG9jayBzcGVlZCBmb3IgdGhlIGJvYXJkLiBUaGlzIGNvZGUgaXMgYmFja3dhcmQgY29tcGF0YWJsZSB3aWxsIGFsbAogICAgcHJpb3IgYm9hcmRzLiBBbGwgcHJpb3IgYm9hcmRzIHdpbGwgYmUgcmVhZCBhcyAzMy4wMDAuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjU0NGZmNjY1NmZjYTI2M2VkMWViZTM5ODk5YjZkOTVkYTY3YzhiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDA4OjI5OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFNlcXVvaWE6IFJlbW92ZSBjcHUvcHBjNHh4L3NwZWVkLmMgZnJvbSBOQU5EIGJvb3RpbmcKCiAgICBVc2luZyBjcHUvcHBjNHh4L3NwZWVkLmMgdG8gY2FsY3VsYXRlIHRoZSBidXMgZnJlcXVlbmN5IGlzIHRvbyBiaWcKICAgIGZvciB0aGUgNGsgTkFORCBib290IGltYWdlIHNvIGRlZmluZSBidXNfZnJlcXVlbmN5IHRvIDEzM01IeiBoZXJlCiAgICB3aGljaCBpcyBzYXZlIGZvciB0aGUgcmVmcmVzaCBjb3VudGVyIHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjU1MGFiOTc2NDA1MzAwZjViMDdiZjI4OTA4MDA4NDBkMGFhMDVmCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjEyOjMwIDIwMDcgKzAyMDAKCiAgICA1eHh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTc5ODg2NTkwNTkzYmExZDY2N2M4NDBjYWE0OTQwYzYxNjM5ZjE4ZgpBdXRob3I6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CkRhdGU6CVNhdCBNYXkgNSAwNzowNDo0MiAyMDA3ICswMjAwCgogICAgTkFORDogV3JvbmcgY2FsY3VsYXRpb24gb2YgcGFnZSBudW1iZXIgaW4gbmFuZF9ibG9ja19iYWQoKQoKICAgIEluIGNhc2UgdGhhdCB0aGVyZSBpcyBubyBtZW1vcnkgYmFzZWQgYmFkIGJsb2NrIHRhYmxlIGF2YWlsYWJsZSB0aGUKICAgIGZ1bmN0aW9uIG5hbmRfYmxvY2tfY2hlY2tiYWQoKSBpbiBkcml2ZXJzL210ZC9uYW5kL25hbmRfYmFzZS5jIHdpbGwgY2FsbAogICAgbmFuZF9ibG9ja19iYWQoKSBkaXJlY3RseS4gV2hlbiBwYXJhbWV0ZXIgJ2dldGNoaXAnIGlzIHNldCB0byB6ZXJvLAogICAgbmFuZF9ibG9ja19iYWQoKSB3aWxsIG5vdCByaWdodCBzaGlmdCB0aGUgb2Zmc2V0IHRvIGNhbGN1bGF0ZSB0aGUKICAgIGNvcnJlY3QgcGFnZSBudW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ODc3ZDdkY2QxZWViZTYxYWE1ZDhiOGZmZTljMDQ4ZWE0MjZlNmY2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE1heSA0IDEwOjAyOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggaW5pdHJkIGxlbmd0aCBjb3JydXB0aW9uIGluIGJvb3RtIGNvbW1hbmQuCgogICAgV2hlbiB1c2luZyBGRFQgSW1hZ2VzLCB0aGUgbGVuZ3RoIG9mIGFuIGluaXRhbCByYW1kaXNrIHdhcwogICAgb3ZlcndyaXR0ZW4gKGJ1ZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4N2E0NDljOCwgMjIgQXVnIDIwMDYpLgoKICAgIFBhdGNoZXMgYnkgVGltdXIgVGFiaSAmIEpvaG5zIERhbmllbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA2OGFhYjY2MGJjMzkxMmI5MzBiZTU1NDBlNmIzZjNmZDZhZDNjOTYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDMgMTk6NDM6NTIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCB0cml2aWFsIGVycm9yIGluIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NGE4OWQ2Y2U4NTg0YjlmYzY0ZjRlODVkYTllY2FjM2NmYzJjMmEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDMgMTY6MzQ6NDEgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBib2FyZCBjb25maWd1cmF0aW9uIGZvciBTVFggR1AzU1NBIGJvYXJkOgoKICAgIEVuYWJsZSBodXNoIHNoZWxsLCBlbnZpcm9ubWVudCBpbiBmbGFzaCByYXRoZXIgaW4gRUVQUk9NLAogICAgbW9yZSB1c2VyLWZyaWVuZGx5IGRlZmF1bHQgZW52aXJvbm1lbnQsIGV0Yy4KICAgIFRoZSBzaW1wbGUgRUVQUk9NIGVudmlyb25tZW50IGNhbiBiZSBzZWxlY3RlZCBlYXNpbHkgaW4gdGhlIGJvYXJkCiAgICBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJjNmZiMTk5ZGM1NzU2ZmM3MmY0OWQxZjRkZTEwNWUwODkwNDlkNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI0IDE0OjM3OjQ5IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIFNUWCBHUDNTU0EgY29kZTsgZml4IGJ1aWxkIGFuZCBjb21waWxlIHByb2JsZW1zLgoKY29tbWl0IDM1MTcxZGMwNGUwMjhlY2FjYzIzYWQ5MTZhNjYyOTU0NzI1NTVkYmYKQXV0aG9yOiBEYW4gTWFsZWsgPGRhbkBlbWJlZGRlZGFsbGV5LmNvbT4KRGF0ZToJRnJpIEphbiA1IDA5OjE1OjM0IDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU1RYIEdQM1NTQSAoc3R4c3NhKSBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnkgRGFuIE1hbGVrLCA8ZGFuQGVtYmVkZGVkYWxsZXkuY29tPgoKY29tbWl0IGYyMTM0ZjhlOWViMDA2YmRjZDcyOWU4OWYzMDljMDdiMmZhNDUxODAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyIDEzOjMxOjUzIDIwMDcgKzAyMDAKCiAgICBtYWNiOiBEb24ndCByZXN0YXJ0IGF1dG9uZWdvdGlhdGlvbiBpZiB3ZSBhbHJlYWR5IGhhdmUgbGluawoKICAgIFJld29yayBtYWNiX3BoeV9pbml0IHNvIHRoYXQgaXQgZG9lc24ndCBhdHRlbXB0IHRvIHJlLW5lZ290aWF0ZSBpZiB0aGUKICAgIGxpbmsgaXMgYWxyZWFkeSB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwNGZjYjVkMzhiYzkwNzc5Y2Q5YTcxMGQ2MDcwMjA3NTk4NmYwZTI5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXkgMiAxMzoyMjozOCAyMDA3ICswMjAwCgogICAgbWFjYjogSW50cm9kdWNlIGEgZmV3IGJhcnJpZXJzIHdoZW4gZGVhbGluZyB3aXRoIERNQSBkZXNjcmlwdG9ycwoKICAgIFRoZXJlIHdlcmUgYSBmZXcgdGhlb3JldGljYWwgcG9zc2liaWxpdGllcyB0aGF0IHRoZSBjb21waWxlciBtaWdodAogICAgb3B0aW1pemUgYXdheSBETUEgZGVzY3JpcHRvciByZWFkcyBhbmQvb3Igd3JpdGVzIGFuZCB0aHVzIGNhdXNlCiAgICBzeW5jaHJvbml6YXRpb24gcHJvYmxlbXMgd2l0aCB0aGUgaGFyZHdhcmUuIEluc2VydCBiYXJyaWVycyB3aGVyZQogICAgd2UgZGVwZW5kIG9uIHJlYWRzL3dyaXRlcyBhY3R1YWxseSBoaXR0aW5nIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmZmE2MjFhMGQxMmExY2NkODFjOTM2YzU2N2Y4OTE3YTIxMzc4N2E4CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgRmViIDI0IDAxOjA4OjEzIDIwMDcgLTA2MDAKCiAgICBDbGVhbmVkIHVwIHNvbWUgODV4eCBQQ0kgYnVncwoKICAgICogQ2xlYW5lZCB1cCB0aGUgQ0RTIFBDSSBDb25maWcgVGFibGVzIGFuZCBhZGRlZCBOVUxMIGVudHJpZXMgdG8KICAgICAgdGhlIGVuZAogICAgKiBGaXhlZCBQQ0llIExBV0JBUiBhc3NpZ25lbXQgdG8gdXNlIHRoZSBjcHUtcmVsYXRpdmUgYWRkcmVzcwogICAgKiBGaXhlZCA4NXh4IFBDSSBjb2RlIHRvIGFzc2lnbiBwb3dhciByZWdpb24gc2l6ZXMgYmFzZWQgb24gdGhlCiAgICAgIGNvbmZpZyB2YWx1ZXMgKHJhdGhlciB0aGFuIGhhcmQtY29kaW5nIHRoZW0pCiAgICAqIEZpeGVkIHRoZSA4NTQ4IENEUyBQQ0kyIElPIHRvIG9uY2UgYWdhaW4gaGF2ZSAwIGFzIHRoZSBiYXNlIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjc0MzEwNTk4OGZjNDRkNWIwZDMwMzg4Yzc5MDYwNzgzNWFhZTdhNgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjo1NDoyNSAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSA4NTY4IE1EUyBib2FyZAoKICAgIFRoaXMgaW5jbHVkZWQgc29tZSBjaGFuZ2VzIHRvIGNvbW1vbiBmaWxlczoKICAgICogQWRkIDg1NjggcHJvY2Vzc29yIFNWUiB0byB2YXJpb3VzIHBsYWNlcwogICAgKiBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgcWUgYnVzLWZyZXF1ZW5jeSB2YWx1ZSBpbiB0aGUgZHRzCiAgICAqIEFkZCB0aGUgODU2OE1EUyB0YXJnZXQgdG8gdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmMWMyYjg0YmYyN2M4NTY1YmFkZGM4MmQxYWJiOTM3MDBkMTBlMmUKQXV0aG9yOiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MzQ6NDggMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0cmVhdGluZyB1bmtub3duIFBIWXMgYXMgZ2VuZXJpYyBQSFlzLgoKICAgIFdoZW4gYnJpbmdpbmcgdXAgdS1ib290IG9uIG5ldyBib2FyZHMsIFBIWSBzdXBwb3J0IHNvbWV0aW1lcyBnZXRzCiAgICBuZWdsZWN0ZWQuCU1vc3QgUEhZcyBkb24ndCByZWFsbHkgbmVlZCBhbnkgc3BlY2lhbCBzdXBwb3J0LAogICAgdGhvdWdoLiAgQnkgYWRkaW5nIGEgZ2VuZXJpYyBlbnRyeSB0aGF0IGFsd2F5cyBtYXRjaGVzIGlmIG5vdGhpbmcKICAgIGVsc2UgZG9lcywgd2UgY2FuIHByb3ZpZGUgc3VwcG9ydCBmb3IgInVuc3VwcG9ydGVkIiBQSFlzIGZvciB0aGUKICAgIHRzZWMuCgogICAgVGhlIGdlbmVyaWMgUEhZIGRyaXZlciBzdXBwb3J0cyBtb3N0IFBIWXMsIGluY2x1ZGluZyBnaWdhYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNzVhZjliZmQ4ZmZmMDQ5OWVmZGJiOTA2MDFjZWM1YTJhZmVmMTE3CkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDcgMTU6Mjg6MDQgMjAwNyAtMDYwMAoKICAgIENvbmRpdGlvbmFsaXplIDg2NDEgUmV2MS4wIE1DTSB3b3JrYXJvdW5kcwoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjY0NzAyYjdmYzhmOGRmMzlkMzFhZGQ3NzBkZjZlMzcyZjllOWNlMwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTM6NTk6NTAgMjAwNyAtMDUwMAoKICAgIEZpeCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gb24gTVBDODM0OUUtbUlUWAoKICAgIERlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMIGZvciB0aGUgTVBDODM0OUUtbUlUWCBhbmQgTVBDODM0OUUtbUlUWC1HUC4KICAgIFRoaXMgYWxsb3dzIGRkci0+c2RyYW1fY2xrX2NudGwgdG8gYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuICBUaGlzIGlzIG5lY2Vzc2FyeQogICAgb24gc29tZSBJVFggYm9hcmRzLCBub3RhYmx5IHRob3NlIHdpdGggYSByZXZpc2lvbiAzLjEgQ1BVLgoKICAgIEFsc28gY2hhbmdlIHNwZF9zZHJhbSgpIGluIGNwdS9tcGM4M3h4L3NwZF9zZHJhbS5jIHRvIG5vdCB3cml0ZSBhbnl0aGluZyBpbnRvCiAgICBkZHItPnNkcmFtX2Nsa19jbnRsIGlmIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwgaXMgbm90IGRlZmluZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBNaWNoYWVsIEJlbmVkaWN0IDxNQmVuZWRpY3RAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NGIyZDQzNGFlOWQwMTc4NzkzNmYzNGZlMTc1OWNmM2Q3NjI0YWUzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNToyNjoyMSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogcmVwbGFjZSBlbGFib3JhdGUgYm9vdHRpbWUgdmVyYm9zaXR5IHdpdGggJ2Nsb2NrcycgY29tbWFuZAoKICAgIGFuZCBmaXggQ1BVOiB0byBhbGlnbiB3aXRoIEJvYXJkOiBkaXNwbGF5IHRleHQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMWFiODI2NjlkOTUyNTk5OGMzNGU4MDJhMTJjYWQ2NjI3MjNmMjJhCkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDE2IDEzOjAyOjUzIDIwMDcgLTA1MDAKCiAgICBSZXdyb3RlIHBpY29zX3RvX2NsaygpIHRvIGF2b2lkIHJvdW5kaW5nIGVycm9ycy4KICAgIENsYXJpZmllZCB0aGF0IGNvbnZlcnNpb24gaXMgdG8gRFJBTSBjbG9ja3MgcmF0aGVyIHRoYW4gcGxhdGZvcm0gY2xvY2tzLgogICAgTWFkZSBmdW5jdGlvbiBzdGF0aWMgdG8gc3BkX3NkcmFtLmMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YjM5NTAxZDI4NzU0ZTcyNzI2Y2U3ZmIwMjMxMGU1NmRiZGYxMTZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gQXByIDI5IDE0OjEzOjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEJhbWJvbzogVXNlIGN1cnJlbnQgTkFORCBkcml2ZXIgYW5kICpub3QqIHRoZSBsZWdhY3kgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg2NGFhNmE2YTQ2NmZjYjkyYmYzMmIxZDdkYmE3OWNkNzA5YjUyYzkKQXV0aG9yOiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDI5IDE0OjAxOjU0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggTVBDNTIwMEIgZnJvbSBNUEM1MjAwIGluIGJvb3QgbWVzc2FnZQoKICAgIE1QQzUyMDBCIHN5c3RlbXMgYXJlIGluY29ycmVjdGx5IHJlcG9ydGVkIGFzIE1QQzUyMDAgaW4gVS1Cb290IHN0YXJ0LXVwCiAgICBtZXNzYWdlLiBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3byB2YXJpYW50cywgYW5kIHByaW50IHByb3BlciBDUFUKICAgIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVjNWQzMjQyOTM1Y2YzNTQzYWYwMTE0MjYyNzQ5NDQzNDgzNGNmOTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDI1IDEyOjM0OjM4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtaW5vciBmaXh1cHMgZm9yIDgzMTNyZGIgaW50cm9kdWN0aW9uCgpjb21taXQgYWRhNGQ0MDA5MWY2ZWQ0YTRmMDA0MGUwOGQyMGRiMjE5NjdlNGE2NwpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIEFwciAyNSAxNjowMToyNiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBzaW1wbGlmeSBzaWxlbnQgY29uc29sZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQ0ODc2YTM4MGY1NzU2ZjU3NDEyY2FmNzRjMWQ2ZGMyMDFkZDc5NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIEFwciAyNCAyMzowMTowMiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBNVEQgcGFydGl0aW9uIHN1cHBvcnQsIEpGRlMyIHN1cHBvcnQKCmNvbW1pdCAzN2VkNmNkZDQxNTkxOTViZmFkNjhkOGEyMzdmNmFkZGE4ZjQ4MmNiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBBcHIgMjQgMTQ6MDM6NDUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogc2V0dXAgNDQwRVB4L0dSeCBaTUlJL1JHTUlJIGJyaWRnZSBkZXBlbmRpbmcgb24gUEZDIHJlZ2lzdGVyIGNvbnRlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNjZlZDZjY2EzZjM0MGY3YThhMDZkOTI3MmFlMmVmOGU5NmYwMjczZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjozNzo0NyAyMDA3IC0wNTAwCgogICAgUmV3b3JrZWQgODV4eCBzcGVlZCBkZXRlY3Rpb24gY29kZQoKICAgIENoYW5nZWQgdGhlIGNvZGUgdG8gcmVhZCB0aGUgcmVnaXN0ZXJzIGFuZCBjYWxjdWxhdGUgdGhlIGNsb2NrCiAgICByYXRlcywgcmF0aGVyIHRoYW4gdXNpbmcgYSAic3dpdGNoIiBzdGF0ZW1lbnQuCgogICAgSWRlYSBmcm9tIEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxZjQ4MWNhNzA4ZWQ2YTU2YmY5YzQxMGUzMTkxZGJhZDU4MWM1NjUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDI6MjQ6MjggMjAwNyAtMDUwMAoKICAgIEVuYWJsZSA4NTQ0IHN1cHBvcnQKCiAgICAqIEFkZCBzdXBwb3J0IHRvIHRoZSBNYWtlZmlsZQogICAgKiBBZGQgODU0NCBjb25maWd1cmF0aW9uIHN1cHBvcnQgdG8gdGhlIHRzZWMgZHJpdmVyCiAgICAqIEFkZCA4NTQ0IFNWUiBudW1iZXJzIHRvIHByb2Nlc3Nvci5oCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGQ4YzNhMjA5NmVhZmY4ZDdkZTg5ZDQ1ZTlhZjRkNGIwZDQ4NjhmZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNzoxMjoyNSAyMDA3IC0wNjAwCgogICAgU3VwcG9ydCAxRyBzaXplIG9uIDg1NDgKCiAgICBlNTAwdjIgYW5kIG5ld2VyIGNvcmVzIHN1cHBvcnQgMUcgcGFnZSBzaXplcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1Y2VmNjEyY2M2MDFkMmQxYzg5MGZiYmQ3Y2RjOTYwOWExODlhNDYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTc6MTE6MTYgMjAwNyAtMDYwMAoKICAgIENoYW5nZWQgQk9PS0VfUEFHRVNaX25HQiB0byBCT09LRV9QQUdFU1pfbkcKCiAgICBUaGUgb3RoZXIgcGFnZXN6IGNvbnN0YW50cyB1c2Ugb25lIGxldHRlciB0byBzcGVjaWZ5IG9yZGVyIG9mCiAgICBtYWduaXR1ZGUuCUFsc28gY2hhbmdlIHRoZSBvbmUgcmVmZXJlbmNlIHRvIGl0IGluIG1wYzg1NDhjZHMvaW5pdC5TCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmOWEzMThjZWExNDI3MmVkZDEwZDYzNzM5ZTJkMzI2YzkwZjQzMGUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTY6Mjg6NDYgMjAwNyAtMDYwMAoKICAgIE9ubHkgc2V0IGRkcmlvb3ZjciBmb3IgODU0OCByZXYxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTM0M2RiZjg1YmMwMzAzM2YyMTAyZDhlODU0MzU2N2MyYzFhZDJkMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEZlYiAyNCAwMToxNjo0NSAyMDA3IC0wNjAwCgogICAgVHdlYWsgRERSIEVDQyBlcnJvciBjb3VudGVyCgogICAgRW5hYmxlIHNpbmdsZS1iaXQgZXJyb3IgY291bnRlciB3aGVuIG1lbW9yeSB3YXMgY2xlYXJlZCBieSBkZHIgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1ZTdjN2E0NWUzZGQ5YzdjZTNlNzIyMzUyYmE2MGY4ZGYxYTdhNGIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRmViIDEyIDEzOjM0OjU1IDIwMDcgLTA2MDAKCiAgICA4NXh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwM2I4MWI0OGVlYzBhZDI0OWVjOTdhNGFlMTZjMzZmYTJlMDE0ZmY0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAxOjQ0OjQ0IDIwMDcgLTA1MDAKCiAgICBTb21lIDg1eHggY3B1IGNsZWFudXBzCgogICAgKiBDbGVhbmVkIHVwIHRoZSBUU1JbV0lTXSBjbGVhcmluZwogICAgKiBDbGVhbmVkIHVwIERNQSBpbml0aWFsaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNTFkNWQ5OTJlYWI4YzQ5N2IyNGM4MTZjNzNkYzFhZDhiZmZiNGViCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAxOjMyOjIyIDIwMDcgLTA1MDAKCiAgICBBZGQgY3B1IHN1cHBvcnQgZm9yIHRoZSA4NTQ0CgogICAgUmVjb2duaXplIG5ldyBTVlIgdmFsdWVzLCBhbmQgYWRkIGEgZmV3IHJlZ2lzdGVyIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1ZDgzZDdmNGFjNjU3MjcxODJkOGRkYWY3YmE0MmZhNzRjZjY1YWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDExIDE2OjUxOjAyIDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIGJhc2ljIHBvcnQgYm9hcmQgZmlsZXMuCgogICAgQWRkIGJvYXJkIHBvcnQgdW5kZXIgbmV3IGJvYXJkL2ZyZWVzY2FsZSBkaXJlY3RvcnkKICAgIHN0cnVjdHVyZSBhbmQgcmV1c2UgZXhpc3RpbmcgUElYSVMgRlBHQSBzdXBwb3J0IHRoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjZGU0YjAwZmM3MzkzYjg5ZjM3OWQ4M2E5ZDQzNmRjYjEzMzRiZmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDExIDE2OjUwOjU3IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIG1haW4gY29uZmlndXJhdGlvbiBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM2MmRkODMwNzdhYzA0YzAyOTZiY2EzZTgyNGVjMmZiM2Q0NGQ5ZDYKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgRGVjIDI3IDIyOjA3OjE1IDIwMDYgKzAzMDAKCiAgICBGaXggUENJIEkvTyBzcGFjZSBtYXBwaW5nIG9uIEZyZWVzY2FsZSBNUEM4NXgwQURTCgogICAgVGhlIFBDSSBJL08gc3BhY2UgbWFwcGluZyBmb3IgRnJlZXNjYWxlIE1QQzg1NDBBRFMgYm9hcmQgd2FzIGJyb2tlbiBieSBjb21taXQKICAgIDUyYzdhNjhiOGQ1ODdlYmNmNWE2YjA1MWI1OGIzZDNmZmEzNzdkZGMgd2hpY2ggZmFpbGVkIHRvIHVwZGF0ZSB0aGUgI2RlZmluZSdzCiAgICBkZXNjcmliaW5nIHRoZSBsb2NhbCBhZGRyZXNzIHdpbmRvdyB1c2VkIGZvciB0aGUgUENJIEkvTyBzcGFjZSBhY2Nlc3NlcyAtLSBmaXgKICAgIHRoaXMgYW5kIGNhcnJ5IG92ZXIgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIGludG8gdGhlIE1QQzg1NjBBRFMgY29kZSBzaW5jZSB0aGUKICAgIFBDSSBJL08gc3BhY2UgbWFwcGluZyB3YXMgYWxzbyBicm9rZW4gZm9yIHRoaXMgYm9hcmQgKGJ5IHRoZSBlYXJsaWVyIGNvbW1pdAogICAgMDg3NDU0NjA5ZTQ3Mjk1NDQzYWY3OTNhMjgyY2RkY2Q5MWE1ZjQ5YykuCUFkZCB0aGUgY29tbWVudHMgY2xhcmlmeWluZyBob3cKICAgIHRoZSBQQ0kgSS9PIHNwYWNlIG11c3QgYmUgbWFwcGVkIHRvIGFsbCB0aGUgTVBDODV4eCBib2FyZCBjb25maWcuIGhlYWRlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KCiAgICAgYm9hcmQvbXBjODU0MGFkcy9pbml0LlMJICB8ICAgIDQgKystLQogICAgIGJvYXJkL21wYzg1NjBhZHMvaW5pdC5TCSAgfCAgICA0ICsrLS0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEFEUy5oIHwgICAgNSArKy0tLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQxQ0RTLmggfCAgICAyICstCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaCB8ICAgIDIgKy0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oIHwgICAgOCArKysrLS0tLQogICAgIDYgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpjb21taXQgOTY2MjljYmFiZGI3MjdkNGE1ZTYyNTQyZGVlZmMwMWQ0OThkYjZkYwpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgNSAxNjo0MjozMCAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggZTUwMCB2MiBjb3JlIHJlc2V0IGJ1ZwoKICAgIFRoZSBmb2xsb3dpbmcgcGF0Y2ggZml4ZXMgdGhlIGU1MDAgdjIgY29yZSByZXNldCBidWcuCiAgICBGb3IgZTUwMCB2MiBjb3JlLCBhIG5ldyByZXNldCBjb250cm9sIHJlZ2lzdGVyIGlzIGFkZGVkIHRvIHJlc2V0IHRoZQogICAgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzI0N2E1YWNkNTgwMzJlNmNmMzNmNTI1YmMzOTIzYjQ2N2JhYzg4CkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAxMTowMTowMCAyMDA2ICswODAwCgogICAgdS1ib290OiB2MjogUmVtb3ZlIHRoZSBmaXhlZCBUTEIgYW5kIExBVyBlbnRyeW51Ym1lcgoKICAgIFJlbW92ZSB0aGUgZml4ZWQgVExCIGFuZCBMQVcgZW50cnkgbnVibWVyLiBVc2UgYWN0dWFsbHkgVExCIGFuZCBMQVcKICAgIGVudHJ5IG51bWJlciB0byBjb250cm9sIHRoZSBsb29wLiAgVGhpcyBjYW4gcmVkdWNlIHRoZSBwb3RlbnRpYWwgcmlzawogICAgZm9yIHRoZSA4NXh4IHByb2Nlc3NvciBpbmNyZWFzaW5nIGl0cyBUTEIgYWRuIExBVyBlbnRyeSBudW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3dhcnRob3V0IEVkd2FyZCA8c3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGIxOTM0YmExMmZkNDA4ZmNjM2I4YmQ5ZjRiMDQ4NjRjNDJhNDJiZgpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTggMTc6MDE6MDQgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IHRoZSA4NXh4Y2RzIHRzZWMgYnVnCgogICAgRml4IHRoZSA4NXh4Y2RzIHRzZWMgYnVnLgogICAgV2hlbiBlbmFibGUgUENJLCB0c2VjLm8gc2hvdWxkIGJlIGFkZGVkIHRvIHUtYm9vdC5sZHMgdG8gbWFrZSB0c2VjIHdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczMzdiMjM3ZmZjNGFhZjFiOTQ2NzAyNGZlNDcyYTg4MGQ4NTI1OTgKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDE1IDE0OjQzOjMxIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCBDUFUyIGVycmF0YSBvbiBNUEM4NTQ4Q0RTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhcHBseSB3b3JrYXJvdW5kIG9mIENQVTIgZXJyYXRhIG9uIE1QQzg1NDhDRFMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTpFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM5YjE4YzRmM2UwYjZkMGRjMDBmNGU2OGJhZDJkYTM3NjZjODVmMDkKQXV0aG9yOiBlYm9ueS56aHVAZnJlZXNjYWxlLmNvbSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTggMTY6MjU6MTUgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRGlzYWJsZXMgTVBDODU0OENEUyAyVF9USU1JTkcgZm9yIEREUiBieSBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBNUEM4NTQ4Q0RTIDJUX1RJTUlORyBmb3IgRERSIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTpFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQxZmI3ZTBmMWVjOWI5MWJkYWUyNTY1YmFiNWYyZTNlZTE1MDM5YzcKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDE0IDE0OjE0OjU1IDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEVuYWJsZSBQQ0kgZnVuY3Rpb24gYW5kIGFkZCBQRVggJiByYXBpZGlvIG1lbW9yeSBtYXAgb24gTVBDODU0OENEUyBib2FyZAoKICAgIEVuYWJsZSBQQ0kgZnVuY3Rpb24gYW5kIGFkZCBQRVggJiByYXBpZGlvIG1lbW9yeSBtYXAgb24gTVBDODU0OENEUwogICAgYm9hcmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTZiOGEwNTQzMmYzNDZmMzY0OTM1MzVjODUzMjBiNzBlYzljN2MxYgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjU0OjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgTVBDODMxM0VSREIgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWVhM2I2ZWFmZTYwNjI4NWFlNGQ1YzM3ODAyNjE1M2RkZTUzMjAwCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MjEgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBnZW5lcmljIFBDSSBzZXR1cCBjb2RlLgoKICAgIEJvYXJkIGNvZGUgY2FuIG5vdyByZXF1ZXN0IHRoZSBnZW5lcmljIHNldHVwIGNvZGUgcmF0aGVyIHRoYW4gaGF2aW5nIHRvCiAgICBjb3B5LWFuZC1wYXN0ZSBpdCBmb3IgdGhlbXNlbHZlcy4gIEJvYXJkcyBzaG91bGQgYmUgY29udmVydGVkIHRvIHVzZSB0aGlzCiAgICBvbmNlIHRoZXkncmUgdGVzdGVkIHdpdGggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2M5OGU1MTkzZTkzZGY2YjliNjUxODUxZDU0YjYzOGE2MWViYjBlYQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgODMxeCBzdXBwb3J0IHRvIHNwZWVkLmMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGYyNTMyODNhMzJkOTFlMDY4NDRkN2Y4N2Y5YjMzZjRmNGZiY2U4ZgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgODMxeCBzdXBwb3J0IHRvIGdsb2JhbF9kYXRhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NWU3ZWY4OTdlNTQ1OTFlNjE1ZmMxYjQ1OGI3NGMyODZmZTFmYjA2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTYgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IENoYW5nZSBQVlJfODN4eCB0byBQVlJfRTMwMEMxLTMsIGFuZCB1cGRhdGUgY2hlY2tjcHUoKS4KCiAgICBSYXRoZXIgdGhhbiBtaXNsZWFkaW5nbHkgZGVmaW5lIFBWUl84M3h4IGFzIHRoZSBzcGVjaWZpYyB0eXBlIG9mIDgzeHgKICAgIGJlaW5nIGJ1aWx0IGZvciwgdGhlIFBWUiBvZiBlYWNoIGNvcmUgcmV2aXNpb24gaXMgZGVmaW5lZC4gY2hlY2tjcHUoKSBub3cKICAgIHByaW50cyB0aGUgY29yZSB0aGF0IGl0IGRldGVjdHMsIHJhdGhlciB0aGFuIGFib3J0aW5nIGlmIGl0IGRvZXNuJ3QgZmluZAogICAgd2hhdCBpdCB0aGlua3MgaXQgd2FudHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTM1YjBjNDk1MGQ4NGNmOWUzYTllMzJiOTE2MTM1OTU2ZDFhYzYzNgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBSZWNvZ25pemUgU1BSIHZhbHVlcyBmb3IgTVBDODMxMSBhbmQgTVBDODMxMy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkODdjNTdiMjAxYjQ1NzJkMTZmMWI2NDI5OThmYWEwMGM5OTEyYjE2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzE6NTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCByZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgTVBDODMxeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZmM0YzcxYTE0M2JlODY2NmQ3MDgwM2ZiMjVhZTYwMzc5Yzk1NjIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIzIDE1OjM5OjU5IDIwMDcgKzAyMDAKCiAgICBGaXggZmlsZSBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM4MjU3OTg4YWJmZTc0ZDQ1OWNhMmFkNzQ4YjEwOWNhMDRlNGVmZTEKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gQXByIDIzIDE1OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEF2b2lkIGFzc2lnbmluZyBQQ0kgcmVzb3VyY2VzIGZyb20gemVybyBhZGRyZXNzCgogICAgSWYgYSBQQ0kgSURFIGNhcmQgaGFwcGVucyB0byBnZXQgYSB6ZXJvIGFkZHJlc3MgYXNzaWduZWQgdG8gaXQsIHRoZSBMaW51eCBJREUKICAgIGNvcmUgY29tcGxhaW5zIGFuZCBJREUgZHJpdmVycyBmYWlscyB0byB3b3JrLiAgQWxzbywgYXNzaWduaW5nIHplcm8gdG8gYSBCQVIKICAgIHdhcyBpbGxlZ2FsIGFjY29yZGluZyB0byBQQ0kgMi4xICh0aGUgbGF0ZXIgcmV2aXNpb25zIHNlZW0gdG8gaGF2ZSBleGNsdWRlZCB0aGUKICAgIHNlbnRlbmNlIGFib3V0ICIwIiBiZWluZyBjb25zaWRlcmVkIGFuIGludmFsaWQgYWRkcmVzcykgLS0gc28sIHVzZSBhIHJlYXNvbmFibGUKICAgIHN0YXJ0aW5nIHZhbHVlIG9mIDB4MTAwMCAodGhhdCdzIHdoYXQgdGhlIG1vc3QgTGludXggYXJjaHMgYXJlIHVzaW5nKS4KCiAgICBBbHRlcm5hdGl2ZWx5LCBvbmUgbWlnaHQgaGF2ZSBmaXhlZCB0aGUgY2FsbHMgdG8gcGNpX3NldF9yZWdpb24oKSBpbmRpdmlkdWFsbHkKICAgIChzb21lIGNvZGUgZXZlbiBzZWVtcyB0byBoYXZlIHRha2VuIGNhcmUgb2YgdGhpcyBpc3N1ZSkgYnV0IHRoYXQgd291bGQgaGF2ZQogICAgYmVlbiBhIGxvdCBtb3JlIHdvcmsuIDotKQoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFmYjkwM2EyZWI5NDM2YmFhOTI3MGNjYzBjMjcwODJkODY0OTdkODkKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNDowMDoxMSAyMDA3ICswMjAwCgogICAgW3BhdGNoXSBzZXRlbnYoLi4uKSBjYW4gZGVsZXRlIGVudmlyb25tZW50YWx2YXJpYWJsZXMKCiAgICB1cGRhdGUgc2V0ZW52KCkgZnVuY3Rpb24gc28gdGhhdCBlbnRlcmluZyBhIE5VTEwgdmFsdWUgZm9yIHRoZQogICAgdmFyaWFibGUncyB2YWx1ZSB3aWxsIGRlbGV0ZSB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmYxMDRlNWNhYTc0N2Q1NjhlZmYyNmIzNjk1NjVhZjU3YzJmZmE2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gQXByIDIzIDEzOjU0OjI0IDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHVzZSB1bnNpZ25lZCBjaGFyIGluIHNtYzkxMTExIGRyaXZlciBmb3IgbWFjCgogICAgdGhlIHZfbWFjIHZhcmlhYmxlIGluIHRoZSBzbWM5MTExMSBkcml2ZXIgaXMgZGVjbGFyZWQgYXMgYSBzaWduZWQgY2hhciAuLi4KICAgIHRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4gb25lIG9mIHRoZSBieXRlcyBpbiB0aGUgTUFDIGlzICJzaWduZWQiIGxpa2UgMHhFMAogICAgYmVjYXVzZSB3aGVuIGl0IGdldHMgcHJpbnRlZCBvdXQsIHlvdSBnZXQgYSBkaXNwbGF5IGxpa2U6CiAgICAweEZGRkZGRkUwIGFuZCB0aGF0J3Mgbm8gZ29vZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkOThjMDg4NWFkNjE3ZmNjZjIxZTdjMjZlZjhjYjcyOGZiZmIyNDU5CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gQXByIDIzIDEzOjEwOjUyIDIwMDcgKzAyMDAKCiAgICBVU0I6IChBbm90aGVyKSBkZWxheSBmb3IgY3JhcHB5IFVTQiBrZXlzLgoKICAgIFNvbWUgVVNCIGtleXMgYXJlIHNsb3cgaW4gZ2l2aW5nIGJhY2sgYW4gYW5zd2VyIHdoZW4gdGhlIFJvb3QgSFVCCiAgICBlbmFibGVzIHBvd2VyIGxpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDMyM2JmYThmNDM2ZGMzYmM1NzE4N2M5YjE0ODhiYzMxNDZmZjE1MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjMgMTI6MDA6MjIgMjAwNyArMDIwMAoKICAgIFJlbW92ZSBCT0FSRExJQlMgdXNhZ2UgY29tcGxldGVseQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMjU1NjQ0Mzg0MGYxMjcxNzBlNGJhYThiZGQ1YjU2NzAzOWY2YzM2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIxOjA3OjIyIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN5c3RlbUFDRSBzdXBwb3J0IGZvciBNaWNyb2JsYXplCgpjb21taXQgMDY0MzYzMWFhMTAzNmNkNzQ2YmY1ZDE1ZjVhMzRiYzdiYzAxZWE0ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMTowMjo0MCAyMDA3ICswMjAwCgogICAgMTZiaXQgcmVhZC93cml0ZSBsaXR0bGUgZW5kaWFuCgpjb21taXQgOWQxZDZhMzRkMjZjNTkzM2JjMDk3Y2U3M2M5MzQ4Zjk1NTczY2RkNApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMDo1MzozMSAyMDA3ICswMjAwCgogICAgQ2hhbmdlIE1MNDAxIHBhcmFtZXRlcnMgLSBYaWxpbnggQlNQCgpjb21taXQgMmUzNDNiOWE1N2YzMmUxYmQwOGMzNWM5OTc2OTEwMzMzZmI0ZTEzZApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjggMDU6Mzc6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzg2NDFocGNuOiBGaXggTEFXIGFuZCBUTEIgc2V0dXAgdG8gdXNlIHRoZSBJT19QSFlTICNkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzljYjQ3MzkxZWViZWY4NWFjYWRiM2Y2OTYxZWY2YzU1Y2FjZTZhYwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTkgMTA6NDI6MzcgMjAwNyArMDgwMAoKICAgIEVuYWJsZSBMQVdzIGZvciBNUEM4NjQxIFBDSS1FeDIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmQ3ODUxY2UxZTFmMTQwNjY1YjUyMDAyNmFiZjEwNDI5NjhiMTEwMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MTI6MjYgMjAwNyAtMDUwMAoKICAgIG1wYzg2eHg7IFdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZGJkZjI4YjhiZDg1NWE4NTMwZGMzMjkyZTQ5ODI1NzVhMTk3MDYwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoxMTozOCAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDogcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBtYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNGRhNWY3Njc1YmJiNDI3YzQ2OWUzZjQ1MDA2ZTAyN2I2ZTIxZGI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyMCAxNzo0MzoyOCAyMDA3ICswMjAwCgogICAgQ2xlYW51cCBjb21waWxlciB3YXJuaW5ncywgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjkyMzU2NWRiMTJhZjM0ZmQ1ZTAyZDM1NGVlNjVhOGM3OGFjNDYwZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXByIDIwIDEyOjAxOjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggYnJlYWthZ2Ugb2YgTkM2NTAgYm9hcmQgd2l0aCByZXNwZWN0IHRvIG5hbmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAzOWYyM2NkOTA5NDc2MzlhYzI3OGExOGZmMjc3ZWM3ODZiNWFjMTY3CkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTE6MTM6MTYgMjAwNyArMDIwMAoKICAgIFtSRkMgUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiBmaXggT0ZfVEJDTEsgKHRpbWViYXNlLWZyZXF1ZW5jeSkgY2FsY3VsYXRpb24KCiAgICBHMiBjb3JlIHJlZmVyZW5jZSBtYW51YWwgc2F5cyBkZWNyZW1lbnRlciBhbmQgdGltZSBiYXNlCiAgICBhcmUgZGVjcmVhc2luZy9pbmNyZWFzaW5nIG9uY2UgZXZlcnkgNCBidXMgY2xvY2sgY3ljbGVzLgogICAgTGV0cyBmaXggaXQsIHNvIHRpbWUgaW4gTGludXggd29uJ3QgcnVuIHR3aWNlIGFzIGZhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzY1MWY4YmRiYmEwM2JiMGI0ZjI0MWUyZDJjNGNiNjViMjMwYmQ1NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVRodSBBcHIgMTkgMjM6MTQ6MzkgMjAwNyAtMDQwMAoKICAgIEZpeCBzZXJpb3VzIHBvaW50ZXIgYnVnIHdpdGggYm9vdG0gYW5kIHJlc2VydmUgbWFwLgoKICAgIFdoYXQgd2FzIHN1cHBvc2UgdG8gYmUgYSBzdGFjayB2YXJpYWJsZSB3YXMgZGVjbGFyZWQgYXMgYSBwb2ludGVyLAogICAgICBvdmVyd3JpdGluZyByYW5kb20gbWVtb3J5LgogICAgQWxzbyBtb3ZlZCB0aGUgbGliZmR0LmEgcmVxdWlyZW1lbnQgaW50byB0aGUgbWFpbiBNYWtlZmlsZS4gIFRoYXQgaXMKICAgICAgVGhlIFUtQm9vdCBXYXkuCgpjb21taXQgZDIxNjg2MjYzNTc0ZTk1Y2IzZTllOWIwNDk2Zjk2OGIxYjg5N2ZkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAxOSAwOTo1Mzo1MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggY2hpcCBzZWxlY3QgdGltaW5nIGZvciBTeXNBQ0UgYWNjZXNzIG9uIEFNQ0MgS2F0bWFpCgogICAgUHJldmlvdXMgdmVyc2lvbnMgdXNlZCBmdWxsIHdhaXQgc3RhdGVzIGZvciB0aGUgY2hpcCBzZWxlY3QgIzEgd2hpY2gKICAgIGlzIGNvbm5lY3RlZCB0byB0aGUgWGlsaW5peCBTeXN0ZW1BQ0UgY29udHJvbGxlciBvbiB0aGUgQU1DQyBLYXRtYWkKICAgIGV2YWx1YXRpb24gYm9hcmQuIFRoaXMgbGVhZHMgdG8gcmVhbGx5IHNsb3cgYWNjZXNzIGFuZCB0aGVyZWZvcmUgbG93CiAgICBwZXJmb3JtYW5jZS4gVGhpcyBwYXRjaCBub3cgc2V0cyB1cCB0aGUgY2hpcCBzZWxlY3QgYSBsb3QgZmFzdGVyCiAgICByZXN1bHRpbmcgaW4gbXVjaCBiZXR0ZXIgcmVhZC93cml0ZSBwZXJmb3JtYW5jZSBvZiB0aGUgTGludXggZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNzgzNzgyOGQ4OTA4NDg3OWJlZTJmMmI4YzdjNjhkNDY5NTk0MGRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzo0OToyOSAyMDA3ICswMjAwCgogICAgQ2xlbmF1cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQwOTRjNjM3OWUyZWY4YTRkMGNlYjU2NDBiMjRjYjBjOGQwNDQ0OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6MjA6NTggMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhMjZlYzQ3MzJlZmQ3YTMwOGQwYmJjOTc3MTRjMWQ3NWVmMTE3M2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjA3OjI2IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnZW5kLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZjZjNzMyYWZmZWE5NjQ3NzYyZDI3YTQ2MTdhMmFlNjRjNTJkY2ViCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNjoxNzo0NiAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGFkNGViNTU1NjcxZDk3Zjk2ZGM1NmVhYjU1MTAzYjFmODY4NzRiMDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE0OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBNQ0MyMDAgYm9hcmQ6IHJlbW92ZSB3YXJuaW5nIHdoaWNoIGlzIG9ic29sZXRlIGFmdGVyIFBTb0MgZmlybXdhcmUgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzc0N2EzZjAxMGIyYjE0NDJkZWMzZTg3MWM2OTc4OGI2MDE3YWFhZQpBdXRob3I6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgpEYXRlOglXZWQgQXByIDE4IDEyOjExOjA1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiBkb2N1bWVudCB3YWtldXAgZnJvbSBsb3ctcG93ZXIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgoKY29tbWl0IGU2NzMyMjZmZjlkNmFhOTFiNDdjZWFjNzRiOGMxMzc3MGIwNmJiMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTI6MDc6NDcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFjYWRpYSB0byBub3Qgc2V0dXAgUExMIHdoZW4gYm9vdGluZyB2aWEgYm9vdHN0cmFwIEVFUFJPTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MGU2ZjQxY2YwOWZjOThmNmNjYjUxMGUxODNkNTNhYjg1NDZjZjJmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDEyOjA1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBvdXRwdXQgZm9yIGJvb3Ryb20gbG9jYXRpb24gdG8gNDA1RVogcG9ydHMKCiAgICBOb3cgNDA1RVogcG9ydHMgYWxzbyBzaG93IHVwb24gYm9vdHVwIGZyb20gd2hpY2ggYm9vdCBkZXZpY2UKICAgIHRoZXkgYXJlIGNvbmZpZ3VyZWQgdG8gYm9vdDoKCiAgICBVLUJvb3QgMS4yLjAtZ2QzODMyZThmLWRpcnR5IChBcHIgMTggMjAwNyAtIDA3OjQ3OjA1KQoKICAgIENQVTogICBBTUNDIFBvd2VyUEMgNDA1RVogUmV2LiBBIGF0IDE5OS45OTkgTUh6IChQTEI9MTMzLCBPUEI9NjYsIEVCQz02NiBNSHopCgkgICBCb290c3RyYXAgT3B0aW9uIEUgLSBCb290IFJPTSBMb2NhdGlvbiBFQkMgKDMyIGJpdHMpCgkgICAxNiBrQiBJLUNhY2hlIDE2IGtCIEQtQ2FjaGUKICAgIEJvYXJkOiBBY2FkaWEgLSBBTUNDIFBQQzQwNUVaIEV2YWx1YXRpb24gQm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWMwMGRmYjBiZjg5YzhjMjNlOGFmNWI1YmRmNDljZjY2ZDc2OWY4NQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBcHIgMTcgMTM6MzA6MzMgMjAwNyArMDEwMAoKICAgIE1vdmUgcHBlYXJzZSB0byBBUk0gYm9hcmQgbGlzdAogICAgQWRkIEtvbnN0YW50aW4gS2xldHNjaGtlIGZvciBzY2I5MzI4LgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCBkMzgzMmU4ZmUxYjIxNGVjNjI0MjRlYWMzNmNmZGE5ZmM1NmQyMWIzCkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MDA6MTMgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IHdha2V1cCBmcm9tIGxvdy1wb3dlciBzdXBwb3J0CgogICAgVS1Cb290IHBhcnQgb2YgTGl0ZTUyMDBiIGxvdyBwb3dlciBtb2RlIHN1cHBvcnQuCiAgICBQdXRzIFNEUkFNIG91dCBvZiBzZWxmLXJlZnJlc2ggYW5kIHRyYW5zZmVycyBjb250cm9sIHRvCiAgICBhZGRyZXNzIHNhdmVkIGF0IHBoeXNpY2FsIDB4MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjM1YTUzZmM3YjBjNzlmY2ZlN2JkYzAxMTYzYzRiMzRhYWJhMTQ2MApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVN1biBBcHIgMTUgMTM6NTQ6MjYgMjAwNyAtMDQwMAoKICAgIEZpeCB0aGUgZnRfY3B1X3NldHVwKCkgcHJvcGVydHkgc2V0dGluZ3MuCgogICAgVXNlICJzZXR0ZXIiIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIGZsYWdzLCBjbGVhbmVyIGFuZCBtb3JlIGZsZXhpYmxlLgogICAgSXQgYWxzbyBmaXhlcyB0aGUgcHJvYmxlbSBub3RlZCBieSBUaW11ciBUYWJpIHRoYXQgdGhlIGV0aGVybmV0IE1BQwogICAgYWRkcmVzc2VzIHdlcmUgYWxsIGJlaW5nIHNldCBpbmNvcnJlY3RseSB0byB0aGUgc2FtZSBNQUMgYWRkcmVzcy4KCmNvbW1pdCBjMjhhYmI5YzYxNGY2NWNlMjA5NmNjNGE2NmZjODg2Yzc3ZDBlNWE0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEFwciAxNCAyMjo1MToyNCAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSB0aGUgYm9vdG0gY29tbWFuZCBmb3IgQ09ORklHX09GX0xJQkZEVAoKICAgIEluIGJvb3RtLCBjcmVhdGUgdGhlICIvY2hvc2VuIiBub2RlIG9ubHkgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgICAgIChiZXR0ZXIgbWF0Y2hlcyB0aGUgcHJldmlvdXMgYmVoYXZpb3IpLgogICAgVXBkYXRlIGZvciBwcm9wZXIgcmVzZXJ2ZWQgbWVtb3J5IG1hcCBoYW5kbGluZyBmb3IgaW5pdHJkLgoKY29tbWl0IDNmOWYwOGNmOTFjOGE2OTQ5YTVkNzhhMThiZDNkOGRmN2I4NmQ4ODgKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgQXByIDE0IDIyOjQ2OjQxIDIwMDcgLTA0MDAKCiAgICBBZGQgc29tZSB1dGlsaXRpZXMgdG8gbWFuaXB1bGF0ZSB0aGUgcmVzZXJ2ZWQgbWVtb3J5IG1hcC4KCmNvbW1pdCA4MDQ4Y2RkNTZmMDRhNzU2ZWVlYTQ5NTFmNDAyYmY1Y2MzMzc4NWRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciAxNCAyMToxNjo1NCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDhlNjg3NTE4M2NkY2E5MWMxMzQ0MDhkMTE5ZDRhYmNkNDhlZjY4NTYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1Njo0NiAyMDA2ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBNTUMgc3VwcG9ydAoKICAgIFNldCB1cCB0aGUgcG9ydG11eCBmb3IgdGhlIE1NQyBpbnRlcmZhY2UgYW5kIGVuYWJsZSB0aGUgTU1DIGRyaXZlcgogICAgYWxvbmcgd2l0aCBzdXBwb3J0IGZvciBET1MgcGFydGl0aW9ucywgZXh0MiBhbmQgRkFUIGZpbGVzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZjMjZjOTdiYjZkZjQxYjRhOTU2NjJjMzQwNTRmZTkxMjM4N2JmMzgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEphbiAyMCAxMDowMzo1MyAyMDA2ICswMTAwCgogICAgQXRtZWwgTUNJIGRyaXZlcgoKICAgIERyaXZlciBmb3IgdGhlIEF0bWVsIE1DSSBjb250cm9sbGVyIChNTUMgaW50ZXJmYWNlKSBmb3IgQVQzMkFQIENQVXMuCgogICAgVGhlIEFUOTEgQVJNLWJhc2VkIENQVXMgdXNlIGJhc2ljYWxseSB0aGUgc2FtZSBoYXJkd2FyZSwgc28gaXQgc2hvdWxkCiAgICBiZSBwb3NzaWJsZSB0byBzaGFyZSB0aGlzIGRyaXZlciwgYnV0IG5vIGVmZm9ydCBoYXMgYmVlbiBtYWRlIHNvIGZhci4KCiAgICBIYXJkd2FyZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQVQzMkFQNzAwMCBkYXRhIHNoZWV0LAogICAgd2hpY2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9kYXRhc2hlZXRzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDVmZGFiMWVmNmExMGQwNDlhNTAwMjFhODZmMTIyNmY0NDRkOWI5ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjU1OjM3IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQWRkIGNsayBhbmQgZ3BpbyBpbmZyYXN0cnVjdHVyZSBmb3IgbW1jaQoKICAgIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBtbWNpIHBpbnMsIGFzIHdlbGwgYXMKICAgIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgY2xvY2sgcmF0ZSBvZiB0aGUgbW1jaSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDdmYWMzZjY5ZTlmMDVjNWU1MzI2NjgxOTc2YzM1ZDEyOTMyNGM0ZGUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1Mzo1NiAyMDA2ICswMTAwCgogICAgRW5hYmxlIHBhcnRpdGlvbiBzdXBwb3J0IHdpdGggTU1DCgogICAgSW5jbHVkZSBpbXBsZW1lbnRhdGlvbnMgb2YgaW5pdF9wYXJ0KCkgYW5kIGdldF9wYXJ0aXRpb25faW5mbygpIHdoZW4KICAgIENPTkZJR19NTUMgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDlhMjRmNDc3YTFlZDViYjBmNzQzNzdjOTg1ZDc1NGViYmZhNDQ4NzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNzoxNDozMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBuZXR3b3JraW5nCgogICAgSW1wbGVtZW50IE1BQ0IgaW5pdGlhbGl6YXRpb24gZm9yIEFWUjMyIGFuZCBBVFNUSzEwMDAsIGFuZCB0dXJuCiAgICBldmVyeXRoaW5nIG9uLCBpbmNsdWRpbmcgdGhlIE1BQ0IgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDVjMWZlMWZmZmZkMTc1MGE3ZTQ3ZTVhMmUyY2Q2MDBjMDBlNGYwMDkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEphbiAyMCAxMDowMzozNCAyMDA2ICswMTAwCgogICAgQXRtZWwgTUFDQiBldGhlcm5ldCBkcml2ZXIKCiAgICBEcml2ZXIgZm9yIHRoZSBBdG1lbCBNQUNCIG9uLWNoaXAgZXRoZXJuZXQgY29udHJvbGxlci4KCiAgICBUaGlzIGRyaXZlciBoYXMgYmVlbiB0ZXN0ZWQgb24gdGhlIEFUU1RLMTAwMCBib2FyZCB3aXRoIGEgQVQzMkFQNzAwMAogICAgQ1BVLiBJdCBzaG91bGQgcHJvYmFibHkgd29yayBvbiBBVDkxU0FNOTI2eCBhcyB3ZWxsIHdpdGggc29tZSBtaW5vcgogICAgbW9kaWZpY2F0aW9ucy4KCiAgICBIYXJkd2FyZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQVQzMkFQNzAwMCBkYXRhIHNoZWV0LAogICAgd2hpY2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9kYXRhc2hlZXRzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjRlYzljMmQ0M2Q4OTQ3MjliYjYzM2JmZGJkZmE5NWE5NjJjMTU1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE2OjU2OjE0IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQWRkIGNsayBhbmQgZ3BpbyBpbmZyYXN0cnVjdHVyZSBmb3IgbWFjYjAgYW5kIG1hY2IxCgogICAgSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIG1hY2IwIGFuZCBtYWNiMSBwaW5zLCBhcwogICAgd2VsbCBhcyBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIGNsb2NrIHJhdGUgb2YgdGhlIHZhcmlvdXMKICAgIGJ1c3NlcyB0aGUgbWFjYiBldGhlcm5ldCBjb250cm9sbGVycyBhcmUgY29ubmVjdGVkIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGQ1YWNiOTViMTZhMGE3NGM2NDM1MjQzNDJjMzQzN2U3NjU0MjZkMDUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNTozOToxNSAyMDA2ICswMTAwCgogICAgQVZSMzI6IEltcGxlbWVudCBzaW1wbGUgRE1BIG1lbW9yeSBhbGxvY2F0b3IKCiAgICBJbXBsZW1lbnQgZG1hX2FsbG9jX2NvaGVyZW50KCkgd2hpY2ggcmV0dXJucyBjYWNoZS1hbGlnbmVkCiAgICB1bmNhY2hlYWJsZSBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTE5NzViMGZlYTc3M2M5ZTY4MWZlYThjZjMzNDk2NjlmMjc2ODVlZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE1OjQ2OjAyIDIwMDYgKzAxMDAKCiAgICBJbXBvcnQgPGxpbnV4L21paS5oPiBmcm9tIHRoZSBMaW51eCBrZXJuZWwKCiAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIHlldCBhbm90aGVyIHNldCBvZiBNSUkgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKICAgIGluIHRoZSBtYWNiIGRyaXZlciwgaGVyZSdzIGEgY29tcGxldGUgc2V0IG9mIGRlZmluaXRpb25zIGZvciBldmVyeW9uZQogICAgdG8gdXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDFiODA0YjIyOTU1NmE0ZDg2MmRhOTNjMGVjOTRlNzk0MTkzNjRiMmMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1hciAyMSAxOTo0NzozNiAyMDA3ICswMTAwCgogICAgQVZSMzI6IEluY2x1ZGUgbW9yZSBjb21tYW5kcyBmb3IgQVRTVEsxMDAwCgogICAgSW5jbHVkZSB0aGUgaW1pLCBpbWxzIGFuZCBqZmZzIGNvbW1hbmRzIHNldHMgYnkgZGVmYXVsdCBvbiBBVFNUSzEwMDAuCiAgICBBbHNvIGRlZmluZSBDT05GSUdfQk9PVEFSR1MgdG8gc29tZXRoaW5nIG1vcmUgdXNlZnVsLCBkZWZpbmUKICAgIENPTkZJR19CT09UQ09NTUFORCBhbmQgZW5hYmxlIGF1dG9ib290IGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWMwZGViNWFlM2VhMDE4OWYyZTA4YWMyOWVmMTMxNmYxZmI4NTQ4ZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWFyIDIxIDE5OjQ0OjQ4IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogUHJvdmlkZSBhIGRlZmluaXRpb24gb2Ygc3RydWN0IHN0YXQKCiAgICBDb3B5IHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBzdGF0IGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxMmYwOTljMDgxNjdhN2E1MWFlZWU2MjNiYzE2ZGFmZDA4NDEyNzFjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTQ6NDY6MDYgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBVc2UgaW5pdGRyYW0oKSBpbnN0ZWFkIG9mIGJvYXJkX2luaXRfbWVtb3JpZXMoKQoKICAgIENvbmZvcm0gdG8gdGhlICJzdGFuZGFyZCIgaW50ZXJmYWNlIGFuZCB1c2UgaW5pdGRyYW0oKSBpbnN0ZWFkIG9mCiAgICBib2FyZF9pbml0X21lbW9yaWVzKCkgb24gQVZSMzIuIFRoaXMgZW5hYmxlcyB1cyB0byBnZXQgcmlkIG9mIHRoZQogICAgc2RyYW1fc2l6ZSBtZW1iZXIgb2YgdGhlIGdsb2JhbF9kYXRhIHN0cnVjdCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDFmNGYyMTIxYzI2ODUxODJlYjg3ZmE5YTliNzk5ZDE5MTczODdhMWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE5vdiAyMCAxNTo1MzoxMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IFJlbG9jYXRlIHUtYm9vdCB0byBTRFJBTQoKICAgIFJlbG9jYXRlIHRoZSB1LWJvb3QgaW1hZ2UgaW50byBTRFJBTSBsaWtlIGV2ZXJ5b25lIGVsc2UgZG9lcy4gVGhpcwogICAgbWVhbnMgdGhhdCB3ZSBjYW4gaGFuZGxlIG11Y2ggbGFyZ2VyIC5kYXRhIGFuZCAuYnNzIHRoYW4gd2UgdXNlZCB0by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkZjU0OGQzYzNlMmJiYzQwMjU4NzEzMTY3ODU5ZmZjMmNlOTlhOTAwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBOb3YgMTkgMTg6MDY6NTMgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBSZXNvdXJjZSBtYW5hZ2VtZW50IHJld3JpdGUKCiAgICBSZXdyaXRlIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IGNvZGUgKGkuZS4gSS9PIG1lbW9yeSwgY2xvY2sgZ2F0aW5nLAogICAgZ3Bpbykgc28gaXQgZG9lc24ndCBkZXBlbmQgb24gYW55IGdsb2JhbCBzdGF0ZS4gVGhpcyBpcyBuZWNlc3NhcnkKICAgIGJlY2F1c2UgdGhpcyBjb2RlIGlzIGhlYXZpbHkgdXNlZCBiZWZvcmUgcmVsb2NhdGlvbiB0byBSQU0sIHNvIHdlCiAgICBjYW4ndCB3cml0ZSB0byBhbnkgZ2xvYmFsIHZhcmlhYmxlcy4KCiAgICBBcyBhbiBhZGRlZCBib251cywgdGhpcyBtYWtlcyB1LWJvb3QncyBtZW1vcnkgZm9vdHByaW50IGEgYml0IHNtYWxsZXIsCiAgICBhbHRob3VnaCBzb21lIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbGVmdCBvdXQ7IGFsbCBjbG9ja3MgYXJlIGVuYWJsZWQKICAgIGFsbCB0aGUgdGltZSwgYW5kIHRoZXJlJ3Mgbm8gY2hlY2tpbmcgZm9yIGdwaW8gbGluZSBjb25mbGljdHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDNkMWUxMzY1Nzk2Y2QxNWQxNzI2ZThhNTFmZDhiNWJlNTBiMmZlOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE4OjAxOjEzIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQ2xlYW4gdXAgbWVtb3J5LW1hcC5oIGZvciBhdDMyYXA3MDAwCgogICAgQ29udmVydCBzcGFjZXMgdG8gdGFicyAobXVzdCBoYXZlIG1pc3NlZCB0aGlzIG9uZSBsYXN0IHRpbWUgYXJvdW5kKSwKICAgIHNvcnQgdGhlIGVudHJpZXMgYnkgYWRkcmVzcyBhbmQgZ3JvdXAgdGhlbSB0b2dldGhlciBieSBidXMKICAgIGNvbm5lY3Rpdml0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyOGM2OTllZjY5ZjRiNmNkZjI1MmU0NzQ3YjdiNTkwMDI4YTg4OTgxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTc6MzI6MzEgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBCdWlsZCBwb3NpdGlvbi1pbmRlcGVuZGVudCB1LWJvb3QKCiAgICBBZGQgLWZQSUMgLW1uby1pbml0LWdvdCB0byB0aGUgYXZyMzItc3BlY2lmaWMgQ0ZMQUdTIHRvIG1ha2UgdS1ib290CiAgICBwb3NpdGlvbiBpbmRlcGVuZGVudC4gVGhpcyB3aWxsIG1ha2UgcmVsb2NhdGlvbiBhIGxvdCBlYXNpZXIuCgogICAgLW1uby1pbml0LWdvdCBtZWFucyB0aGF0IGdjYyBzaG91bGRuJ3QgZW1pdCBjb2RlIHRvIGxvYWQgdGhlIEdPVAogICAgYWRkcmVzcyBpbnRvIHI2IGluIGV2ZXJ5IGZ1bmN0aW9uIHByb2xvZ3VlLiBXZSBkbyBpdCBvbmNlIGFuZCBmb3IKICAgIGFsbCBpbiB0aGUgZWFybHkgc3RhcnR1cCBhc3NlbWJseSBjb2RlLCBzbyBlbmFibGluZyB0aGlzIG9wdGlvbgogICAgbWFrZXMgdS1ib290IGEgYml0IGZhc3RlciBhbmQgc21hbGxlci4KCiAgICBUaGUgYXNzZW1ibHkgcGFydHMgaGF2ZSBhbHdheXMgYmVlbiBwb3NpdGlvbi1pbmRlcGVuZGVudCwgc28gbm8gY29kZQogICAgY2hhbmdlcyBzaG91bGQgYmUgbmVjZXNzYXJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDUzNzRiMzZkZTkxZDAwNmQxZGY5NTM2MjU5ZmE5ZjY2YjAxYWEzYWEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzoyNDozMSAyMDA2ICswMTAwCgogICAgQVZSMzI6IFVzZSBhdnIzMi1saW51eC0gY3Jvc3MtY29tcGlsYXRpb24gcHJlZml4IGJ5IGRlZmF1bHQKCiAgICBJdCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgd2hpY2ggdG9vbGNoYWluIHlvdSB1c2UgdG8gY29tcGlsZSB1LWJvb3QsCiAgICBidXQgdGhlIGF2cjMyLWxpbnV4IG9uZSBpcyBwcm9iYWJseSB3aGF0IG1vc3QgcGVvcGxlIGhhdmUgaW5zdGFsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4NDFiZWVkZGViZWNlMDAzOWU3MjRmYjI3ZjRkMWEzOWVlMWM2YjYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzoxNTozMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IFNwbGl0IHN0YXJ0X3VfYm9vdCBpbnRvIGJvYXJkX2luaXRfZiBhbmQgYm9hcmRfaW5pdF9yCgogICAgU3BsaXQgdGhlIGF2cjMyIGluaXRpYWxpemF0aW9uIGNvZGUgaW50byBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUKICAgIHJlbG9jYXRpb24sIGJvYXJkX2luaXRfZiBhbmQgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgcmVsb2NhdGlvbiwKICAgIGJvYXJkX2luaXRfci4gRm9yIG5vdywgYm9hcmRfaW5pdF9mIHNpbXBseSBjYWxscyBib2FyZF9pbml0X3IKICAgIGF0IHRoZSBlbmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzc0MDMwMDVjZmU2YmIxMzk2NGQ0NTBmNmE0OGEwYjBmMmY3MDE3ZQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IEFwciAxNCAwNToyNjo0OCAyMDA3ICswMjAwCgogICAgW0ZpeF0JU2V0IHRoZSBMRUQgc3RhdHVzIHJlZ2lzdGVyIG9uIHRoZSBVQzEwMSBmb3IgdGhlIExYVDk3MSBQSFkuCgkgICAgY2xlYXIgdGhlIERpc3BsYXkgYWZ0ZXIgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzg4Mjc1MWM3OGI3ZWNhYmZkNDliMGVmZjhkZTI3NjYxYzcxZjE2YwpBdXRob3I6IERlbmlzIFBldGVyIDxkLnBldGVyQG1wbC5jaD4KRGF0ZToJRnJpIEFwciAxMyAwOToxMzozMyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBGaXggYnVncyBpbiBjbWRfaWRlLmMgYW5kIGNtZF9zY3NpLmMKCiAgICBGaXggYnVnIGludHJvZHVjZWQgYnkgIkZpeCBnZXRfcGFydGl0aW9uX2luZm8oKSBwYXJhbWV0ZXIgZXJyb3IgaW4gYWxsCiAgICBvdGhlciBjYWxscyIgZnJvbSAyMDA1LTAzLTA0IGluIGNtZF9pZGUuYyBhbmQgY21kX3Njc2kuYywgd2hpY2ggcHJldmVudGVkCiAgICB0byB1c2UgZGlza2Jvb3Qgb3Igc2NzaWJvb3QgZm9ybSBhbm90aGVyIGRldmljZSB0aGFuIDAuCgogICAgU2lnbmVkLW9mZi1ieTogRGVuaXMgUGV0ZXIgPGQucGV0ZXJAbXBsLmNoPgoKY29tbWl0IDBiOTQ1MDRkMjJlNzBmNTM3YzE3YTBkMzhjODdlZGI2ZTM3MDk3N2QKQXV0aG9yOiBHcmVnIExvcHAgPGxvcHBAcG9ib3guY29tPgpEYXRlOglGcmkgQXByIDEzIDA4OjAyOjI0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCB1c2Ugb2YgInZvaWQgKiIgZm9yIGJsb2NrIGRldiByZWFkL3dyaXRlIGJ1ZmZlciBwb2ludGVycwoKICAgIFNpZ25lZC1vZi1ieTogR3JlZyBMb3BwIDxsb3BwQHBvYm94LmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmZiZjI2MWY4ZGYyOTRlNTg5Y2ZhZGViZWJlNTQ2OGUzYzBmMjllOQpBdXRob3I6IFhpZSBYaWFvYm8gPHI2MzA2MUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDkgMTk6MDg6MjUgMjAwNyArMDgwMAoKICAgIEZpeCB0d28gYnVncyBmb3IgTVBDODN4eCBERFIyIGNvbnRyb2xsZXIgU1BEIEluaXQKCiAgICBUaGVyZSBhcmUgYSBmZXcgYnVncyBpbiB0aGUgY3B1L21wYzgzeHgvc3BkX3NkcmFtLmMKICAgIHRoZSBmaXJzdCBidWcgaXMgdGhhdCB0aGUgcGljb3NfdG9fY2xrIHJvdXRpbmUgaW50cm9kdWNlcyBhIGh1Z2UKICAgIHJvdW5kaW5nIGVycm9yIGluIDgzeHguCiAgICB0aGUgc2Vjb25kIGJ1ZyBpcyB0aGF0IHRoZSBtb2RlIHJlZ2lzdGVyIHdyaXRlIHJlY292ZXJ5IGZpZWxkIGlzCiAgICB0V1ItMSwgbm90IHRXUiA+PiAxLgoKY29tbWl0IDJhZDNhYmEwMWQzN2I3MmU3Yzk1N2IwN2UxMDJmY2NkNjRmZTZkMTMKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJVGh1IEFwciAxMiAxNDoxNTo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggaTJjIGRpdmlzb3IgY2FsY3VsYXJpb24gZm9yIFBQQzR4eAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgY2hhbmdlcyB0aGUgaTJjX2luaXQoLi4uKSBmdW5jdGlvbiB0byB1c2UgdGhlIGZ1bmN0aW9uCiAgICBnZXRfT1BCX2ZyZXEoKSByYXRoZXIgdGhhbiBjYWxjdWxhdGluZyB0aGUgT1BCIHNwZWVkIGJ5CiAgICBzeXNJbmZvLmZyZXFQTEIvc3lzSW5mby5wbGxPcGJEaXYuIFRoZSBnZXRfT1BCX2ZyZXEoKSBmdW5jdGlvbiBpcwogICAgc3BlY2lmaWMgcGVyIHByb2Nlc3Nvci4gVGhlIHByaW9yIG1ldGhvZCB3YXMgbm90IGFuZCBzbyB3YXMgY2FsY3VsYXRpbmcKICAgIHRoZSB3cm9uZyBzcGVlZCBmb3Igc29tZSBQUEM0eHggcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2YzliYTkxOTM3NWRiOTc3YWFhZDkxNDZiZjMyMGM3YWZkMDdhZTdhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxMSAxNzoyNTowMSAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTEwNTZkZDk4NjNlNmExYmMzNjNhZmJiZTE3NzVjNThjZDk2NzQxOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTEgMTc6MjI6NTUgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBmb3IgU0MzIGJvYXJkCgogICAgKiBNYWtlIElERSB0aW1lb3V0IGNvbmZpZ3VyYWJsZSB0aHJvdWdoIGlkZV9yZXNldF90aW1lb3V0IHZhcmlhYmxlLgogICAgKiBVc2UgTmV3bGluZSBhcyAicGFzc3dvcmQiIHN0cmluZwogICAgKiBVc2UganVzdCBhIHNpbmdsZSBwYXJ0aXRpb24gaW4gTkFORCBmbGFzaAoKY29tbWl0IDNkOThiODU4MDBjODBkYzY4MjI3YzhmMTBiZjVjOTM0NTZkNmQwNTQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDIyIDEyOjM3OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgUElYSVMgRlBHQSBzdXBwb3J0IGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBNb3ZlIHRoZSA4NjQxSFBDTidzIFBJWElTIGNvZGUgdG8gdGhlIG5ldyBkaXJlY3RvcnkKICAgIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vIGFzIGl0IHdpbGwgYmUgc2hhcmVkIGJ5CiAgICBmdXR1cmUgYm9hcmRzIG5vdCBpbiB0aGUgc2FtZSBwcm9jZXNzb3IgZmFtaWx5LgoKICAgIFdyaXRlIGEgInBpeGlzX3Jlc2V0IiBjb21tYW5kIHRoYXQgdXRpbGl6ZXMgdGhlIEZQR0EKICAgIHJlc2V0IHNlcXVlbmNlciB0byBzdXBwb3J0IGFsdGVybmF0ZSBzb2Z0LXJlc2V0IG9wdGlvbnMKICAgIHN1Y2ggYXMgdXNpbmcgdGhlICJhbHRlcm5hdGUiIGZsYXNoIGJhbmssIGVuYWJsaW5nCiAgICB0aGUgd2F0Y2ggZG9nLCBvciBjaG9vc2luZyBkaWZmZXJlbnQgQ1BVIGZyZXF1ZW5jaWVzLgoKICAgIEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgcGl4aXNfcmVzZXQgdG8gUkVBRE1FLm1wYzg2NDFocGNuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0ZGJiZDQwYzU4MzQ5YjY0ZjQzZmQzM2RiYjVjYTBhZGI2N2Q2NDIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDYgMTQ6MTk6NDMgMjAwNyAtMDQwMAoKICAgIE1vdmVkIGZkdCBjb21tYW5kIHN1cHBvcnQgY29kZSB0byBmZHRfc3VwcG9ydC5jCgogICAgLi4uaW4gcHJlcGFyYXRpb24gZm9yIGltcHJvdmluZyB0aGUgYm9vdG0gY29tbWFuZCdzIGhhbmRsaW5nIG9mIGZkdCBibG9icy4KICAgIEFsc28gY2xlYW5lZCB1cCBzb21lIGNvZGluZyBzbG9wcGluZXNzLgoKY29tbWl0IDY2NzlmOTI5OTUzNGU0ODhhMTcxYTliYjhmOWJiODkxZGUyNDdhYWIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDYgMTQ6MTc6MTQgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogTWFrZSBmZHRfY2hlY2tfaGVhZGVyKCkgcHVibGljCgogICAgQ2hhbmdlZCBfZmR0X2NoZWNrX2hlYWRlcigpIHRvIGZkdF9jaGVja19oZWFkZXIoKSBhbmQgbWFkZSBpdCBwYXJ0IG9mCiAgICB0aGUgaW50ZXJmYWNlIC0gaXQgaXMgYSB1c2VmdWwgcm91dGluZS4KCiAgICBBbHNvIGRpZCBzb21lIGFzdGhldGljcyBjbGVhbnVwIHRvIHRoZSBpbmNsdWRlIGZpbGVzIChoZWFkZXJzKS4KCmNvbW1pdCBjMDcwN2NlNjU2Nzc2NTBiNWNlYWIwNTAwZWU1MGFlNTE2OGFmZWYyCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjM0OjA2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBLaWxsIG9mZiBhIGJ1bmNoIG9mIGNvbW1vbiBsb2NhbCBwcm90b3R5cGVzCgpjb21taXQgN2I3ZTMwYWE2NGJiNjY1N2ExYmZkMzJmZGJkYmZlYjU2MWU2YTQ4ZApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMzowNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IGR5bmFtaWMgQ1BMQiBnZW5lcmF0aW9uIGlzc3VlCgpjb21taXQgMDQ0NWUzYTI2NDI1MWQ3NWIxYmU0NWVmNzEzYzcwNzI2YTI5NTJmMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMTo0NyAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWluaW9yIGNsZWFudXAKCmNvbW1pdCAxNTVmZDc2NjU3Mzk4MTA5MGU2MzhiNDkzZDU4NTc1NjIxNTE4NjJlCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMxOjE4IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggY29weXJpZ2h0IGFuZCB1cGRhdGUgbGljZW5zZQoKY29tbWl0IDlmZDQzN2JiZDc1ZDI4MmY4OTllMWRhNTBiZTIwYTJiZjM4NDUwYmMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzA6MjUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjUzNyBFTUFDIGRyaXZlciBpbml0aWFsaXphdGlvbgoKY29tbWl0IDg4OTI1NmU4NjA0ZTBjNjhkYjFkODY2ZDcyMDg5NGRmZmVkZTlkZjYKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6Mjk6NTUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIGNhbGwgcmVhbCB0aGUgc3lzdGVtIHN5bmNocm9uaXplIGluc3RydWN0aW9uCgpjb21taXQgZTBkZjFjOTIxYjc4ODI4OTU2NGU0YzFlZTcxMjBhNmE5Y2QzYWIwNQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyOToxNyAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gcmVtb3ZlIGFzbS9wYWdlLmggYXMgd2UgZG8gbm90IGFjdHVhbGx5IHVzZS93YW50IGFueSBvZiB0aGVzZSBkZWZpbml0aW9ucyBub3IgZG9lcyBhbnkgb3RoZXIgYXJjaCBpbmNsdWRlIGl0Cgpjb21taXQgZGZlZWFiMmNkNjgwZGYwNDdlNjhlNzIzYjI0NmFkZjZmMzNiYjU1NgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyODozNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF06IGZpeCBmbGFzaCB1bmFsaWduZWQgY29weSBpc3N1ZQoKY29tbWl0IDQ0M2ZlYjc0MDU4NGU0MDZlZmEyMDNhZjkwOWZlMjkyNjYwOGU4ZDUKQXV0aG9yOiBJZ29yIE1hcm5hdCA8bWFybnlAcmFtYmxlci5ydT4KRGF0ZToJV2VkIE1hciAyMSAwOTo1NTowMSAyMDA3ICswMzAwCgogICAgVXBkYXRlIHVzYWdlIG9mICduYycgaW4gUkVBRE1FLk5ldENvbnNvbGUKCiAgICBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCB1c2FnZSBvZiBOZXRDb25zb2xlIG9uIHN5c3RlbXMgd2hlcmUgdGhlIC1sIGFuZCAtcAogICAgc3dpdGNoZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIE1hcm5hdCA8bWFybnlAcmFtYmxlci5ydT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDMxYzk4YTg4MjI4MDIxYjMxNGM4OWViYjgxMDRmYjY0NzNkYTQ0NzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDQgMDI6MDk6MzAgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDk0YWJkN2MwNTgzZWJlMDFlNzk5YjI1ZjQ1MTIwMWRlZWFhYjU1MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDQgMDE6NDk6MTUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNsZWFudXAuCgpjb21taXQgODIyYWYzNTFhZDJiYWJjN2Q5OTAzMzM2MWE1ZmNhY2QzMGY2YmM3OApBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJVHVlIEFwciAzIDE0OjI3OjE4IDIwMDcgKzAyMDAKCiAgICBTdXBwb3J0IGZvciB0aGUgUGhpbGlwcyBJU1AxMTZ4IEhDRCAoSG9zdCBDb250cm9sbGVyIERyaXZlcikKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+Cgpjb21taXQgZWRmNTg1MWJlNmMxN2MwMzFkNGY3MWRkNWIwYTEyMDQwYjdjNTBjOApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMyAxNDoyNzowOCAyMDA3ICswMjAwCgogICAgVVNCOiBjbGVhbnVwIG1vbmFoYW5zIHVzYiBzdXBwb3J0LiBSZW1vdmUgZGVhZCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYTY1YzU3NjhlNTUzNzUzMGJkMTc4MGFmM2QzZmRkYzMxMTNhMTYzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyIDEwOjA5OjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBTeXNBQ0UgYWRkcmVzcyBvbiBLYXRtYWkKCiAgICBXaXRoIHRoaXMgbmV3IGJhc2UgYWRkcmVzcyBvZiB0aGUgWGlsaW54IFN5c3RlbUFDRSBjb250cm9sbGVyCiAgICB0aGUgTGludXggZHJpdmVyIHdpbGwgYmUgZWFzaWVyIHRvIGFkYXB0LCBzaW5jZSBpdCBjYW4gbm93IGJlCiAgICBtYXBwZWQgdmlhIHRoZSAibm9ybWFsIiBpb3JlbWFwKCkgY2FsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWVhMDNjNGU4YzNhMjFjZTQzZDNmYWY0OGE2ZTZkNDc0YzhiZGY3MwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTQ6MzA6NTMgMjAwNyAtMDQwMAoKICAgIEZpeCBzb21lIG1pbm9yIHdoaXRlc3BhY2UgdmlvbGF0aW9ucy4KCmNvbW1pdCAyMTNiZjhjODIyZGU4ZWVjYWY2OTg2MDY4NDQ2OWNkYWJhMmU5ZTZhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoyMzo1MSAyMDA3IC0wNDAwCgogICAgQWRkIGEgZmxhdHRlbmVkIGRldmljZSB0cmVlIChmZHQpIGNvbW1hbmQgKDIgb2YgMikKCiAgICBNb2RpZmljYXRpb25zIHRvIHRoZSBleGlzdGluZyBjb2RlIHRvIHN1cHBvcnQgdGhlIG5ldyBmZHQgY29tbWFuZC4KCmNvbW1pdCA3ODFlMDllZTZlM2UzZTM5MmFiMzYyYzFmMGVmMTA2OGFkYzc2ZTNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoyMjoxMCAyMDA3IC0wNDAwCgogICAgQWRkIGEgZmxhdHRlbmVkIGRldmljZSB0cmVlIChmZHQpIGNvbW1hbmQgKDEgb2YgMikKCiAgICBUaGUgZmR0IGNvbW1hbmQgdXNlcyBEYXZpZCBHaWJzb24ncyBsaWJmZHQgbGlicmFyeSB0byBtYW5pcHVsYXRlIGFzIHdlbGwKICAgIGFzIHByaW50IHRoZSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUuICBUaGlzIHBhdGNoIGlzIHRoZSBuZXcgY29tbWFuZCwKICAgIHRoZSBzZWNvbmQgcGFydCBpcyB0aGUgbW9kaWZpY2F0aW9ucyB0byB0aGUgZXhpc3RpbmcgY29kZS4KCmNvbW1pdCAzYWYwZDU4N2Q5M2UwYmU1Zjk2ZTFiMzBmYTQxZTY2MmY4YjA4MDNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoxMzo0MyAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBFbmhhbmNlZCBhbmQgcHVibGlzaGVkIGZkdF9uZXh0X3RhZygpCgogICAgRW5oYW5jZWQgdGhlIGZvcm1lcmx5IHByaXZhdGUgZnVuY3Rpb24gX2ZkdF9uZXh0X3RhZygpIHRvIGFsbG93IHN0ZXBwaW5nCiAgICAgIHRocm91Z2ggdGhlIHRyZWUsIHVzZWQgdG8gcHJvZHVjZSBhIGh1bWFuLXJlYWRhYmxlIGR1bXAsIGFuZCBtYWRlCiAgICAgIGl0IHBhcnQgb2YgdGhlIHB1Ymxpc2hlZCBpbnRlcmZhY2UuCiAgICBBbHNvIGFkZGVkIHNvbWUgY29tbWVudHMuCgpjb21taXQgZmEzYTc0Y2VjNzNkZmQwNmE1YWUzNWE5YTMzNjgyMDAyNzNhYWE3MQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MDU6MzkgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogQ3VzdG9taXphdGlvbnMgZm9yIHVzZSBieSB1LWJvb3QuCgogICAgQ2hhbmdlcyB0byBEYXZpZCBHaWJzb24ncyBvcmlnaW5hbCBzb3VyY2UgdG8gZml0IGludG8gdS1ib290J3MKICAgIGVudmlyb25tZW50LiAgTm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VzLgoKY29tbWl0IDM1NzQ4MTc3YzY0YTRhODNhMDAwNTdlOTNiYjMzZTQwMjc4YTJhOTYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjAwOjU2IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEltcG9ydCBsaWJmZHQgc291cmNlICgyIG9mIDIpCgogICAgVGhpcyBhZGRzIHRoZSBhcHBsaWNhYmxlIGxpYmZkdCBzb3VyY2UgZmlsZXMgKHVubW9kaWZpZWQpIGFuZCBhIFJFQURNRQogICAgdG8gZXhwbGFpbiB3aGVyZSB0aGUgc291cmNlIGNhbWUgZnJvbS4KCmNvbW1pdCA3Y2Q1ZGEwZmU4NzdlNzE3MWE0Y2RkNDQ4ODBiY2U3ODMxMzI4NzFhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMTo1OTo1OSAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBJbXBvcnQgbGliZmR0IHNvdXJjZSAoMSBvZiAyKQoKICAgIFRoaXMgYWRkcyB0aGUgYXBwbGljYWJsZSBsaWJmZHQgc291cmNlIGZpbGVzICh1bm1vZGlmaWVkKSBhbmQgYSBSRUFETUUKICAgIHRvIGV4cGxhaW4gd2hlcmUgdGhlIHNvdXJjZSBjYW1lIGZyb20uCgpjb21taXQgZGE2ZWJjMWJjMDgyY2JlM2I2YmJkZTA3OWNhZmUwOWY3ZWJiYWQ0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAxMzoxNjoyMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2F0bWFpIGJvb3RzdHJhcCBjb21tYW5kCgogICAgTm93IHRoZSBERFIyIGZyZXF1ZW5jeSBpcyBhbHNvIDIqUExCIGZyZXF1ZW5jeSB3aGVuIDE2Nk1IeiBQTEIKICAgIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYWJlZTc1NmE2NTMyOTg2NzI5NDc3YzNjYzFlYTE2ZWY4NTE3YWQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDEzOjE1OjA2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEFkZGl0aW9uYWwgUkFNIGluZm9ybWF0aW9uIGlzIG5vdyBwcmludGVkIHVwb24gcG93ZXJ1cCwgbGlrZQogICAgRERSMiBmcmVxdWVuY3kgYW5kIENBUyBsYXRlbmN5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MDcyMzgwMzQzMWFjNzVjYWQwODU2OTA3ODllNDMzZDVhYjkxNzRlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ4OjM2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBZdWNjYSBjb25maWcgZmlsZSB0byBzdXBwb3J0IEVDQwoKICAgIFdpdGggdGhlIHVwZGF0ZWQgNDR4IEREUjIgZHJpdmVyIHRoZSBZdWNjYSBib2FyZCBub3cgc3VwcG9ydHMKICAgIEVDQyBnZW5lcmF0aW9uIGFuZCBjaGVja2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDkwZTU3MzBjNjc0YjIwZDcwOGI3ODNhMmM1ZmZkNzIwOGY4Mzg3MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0NzozNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggImJvb3RzdHJhcCIgY29tbWFuZCBmb3IgS2F0bWFpIGJvYXJkCgogICAgVGhlIGJvYXJkIHNwZWNpZmljICJib290c3RyYXAiIGNvbW1hbmQgaXMgbm93IGZpeGVkIGFuZCBjYW4KICAgIGJlIHVzZWQgZm9yIHRoZSBBTUNDIEthdG1haSBib2FyZCB0byBjb25maWd1cmUgZGlmZmVyZW50CiAgICBDUFUvUExCL09QQiBmcmVxdWVuY2llcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTRmNTQ3MDNjM2E3NzZlYzIzZTQyN2NhMmExNmUwYTc5YTVkNTBjMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0NjowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDR4X3NwZF9kZHIyIGNvZGUgKDQ0MFNQLzQ0MFNQZSkKCiAgICBGaXggYSBidWcgaW4gdGhlIGF1dG8gY2FsaWJyYXRpb24gcm91dGluZS4gVGhpcyBkcml2ZXIgbm93IHJ1bnMKICAgIG1vcmUgcmVsaWFibGUgd2l0aCB0aGUgdGVzdGVkIG1vZHVsZXMuIEl0J3MgYWxzbyB0ZXN0ZWQgd2l0aAogICAgMTY3TUh6IFBMQiBmcmVxdWVuY3kgKDY2N01IeiBERFIyIGZyZXF1ZW5jeSkgb24gdGhlIEthdG1haS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQyY2QwOTdiZTFlN2FmZmU4MmY0MmFiM2RhMjIwOTU5YTY5OWU2NApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAzMCAyMjo1MjowOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBDbGVhbiBpbmNsdWRlIGRlcGVuZGVuY2UKCmNvbW1pdCA2ZjkzNDIxMGZiMjkzZmRlMmNmYjQyNTFjNmQ5NmZkYzU4YjZhOTA2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDMwIDIyOjQyOjQ1IDIwMDcgKzAyMDAKCiAgICBbQ0xFQU5dIFJlbW92ZSBpbmVmZmljaWVudCBTdXpha3UgY29kZQoKY29tbWl0IDQzMGYxYjBmOWE2NzBjMmYxM2VhYTUyZTY2YTEwZGI5NmRkMzY0N2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjggMTU6MDM6MTYgMjAwNyArMDIwMAoKICAgIE1lcmdlIHNvbWUgQU1DQyBtYWtlIHRhcmdldHMgdG8ga2VlcCB0aGUgdG9wLWxldmVsIE1ha2VmaWxlIHNtYWxsZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGM3NWM5ZDg0MzA3YTlmMWNiZTFmZjBjNGQ4OTM3ZWUzYTk2NDc1ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyOCAxNDo1MjoxMiAyMDA3ICswMjAwCgogICAgaTJjOiBFbmFibGUgIm9sZCIgaTJjIGNvbW1hbmRzIGV2ZW4gd2hlbiBDT05GSUdfSTJDX0NNRF9UUkVFIGlzIGRlZmluZWQKCiAgICBUaGUgIm9sZCIgaTJjIGNvbW1hbmRzIChpcHJvYmUsIGltZC4uLikgYXJlIG5vdyBjb21waWxlZCBpbiBhZ2FpbiwKICAgIGV2ZW4gd2hlbiB0aGUgaTJjIGNvbW1hbmQgdHJlZSBpcyBlbmFibGVkIHZpYSB0aGUgQ09ORklHX0kyQ19DTURfVFJFRQogICAgY29uZmlnIG9wdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWRhMDQ4YWRmNDRiZWE1ZTNiOTQwODBkMDI5MDNjMmUzZmU3YWE0YQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1hciAyNyAwMDozMjoxNiAyMDA3ICswMjAwCgogICAgUEFUQ0g6IFJlc29sdmUgR1BMIGxpY2Vuc2UgcHJvYmxlbQoKY29tbWl0IGFlMDBiYjRiMjk0NGRjNjRhNDg1ZWQ3MmExOTc1NGIxMWFmN2MyMjMKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBNYXIgMjYgMTI6MDM6MzYgMjAwNyArMDIwMAoKICAgIFBYQTogcHhhMjd4IFVTQiBPSENJIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBhZTc5ZjYwNjc3YzIwODMyNjUzNTY0N2RjYmQ1YzNlYzQwZGJjYjBiCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAyNiAxMToyMTowNSAyMDA3ICswMjAwCgogICAgVVNCOiByZW1vdmUgdGhlIFMzQzI0WDBfbWVyZ2UgI2RlZmluZSwgd2hpY2ggd2FzIGludHJvZHVjZWQgd2hpbGUKICAgIG1lcmdpbmcgT0hDSSBkcml2ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMTc5ODA0OTUyMmY1OTQwMTNhZWEyOTQ1N2Q0Njc5NDI5OGM2YWUxNQpBdXRob3I6IE1pY2hhbCBTaW1layA8cm9vdEBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXIgMjYgMDE6Mzk6MDcgMjAwNyArMDIwMAoKICAgIFN1cHBvcnQgZm9yIFhVUFYyUCBib2FyZAogICAgUmVzZXQgc3VwcG9ydAogICAgQlNQIGF1dG9jb25maWcgc3VwcG9ydAoKY29tbWl0IDBkOTc0ZDUyOTczNDk1MDRhMmRkZmEwOTMxNGJlNTczYjVkZjMyMGEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMjQgMTU6NTc6MDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIDR4eCBHUElPIGZ1bmN0aW9ucwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzb21lIDR4eCBHUElPIGZ1bmN0aW9ucy4gSXQgYWxzbyBtb3ZlcyBzb21lIG9mIHRoZQogICAgY29tbW9uIGNvZGUgYW5kIGRlZmluZXMgaW50byBhIGNvbW1vbiA0eHggR1BJTyBoZWFkZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmRiNjMzNjU4YmJmMzY2YWIwYzhkYWQ3YTA3MjdlMWZiMmFlNmIxMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo1NTo1OCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTbWFsbCBTZXF1b2lhIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2NiODZmM2U0MGQyYTgwMzU2MTc3NDM0YTk5Zjc1YmM4YmFhOWNhZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo0NTozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhbiB1cCA0MEVaL0FjYWRpYSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgYWxsIHRoZSBvcGVuIGlzc3VlIG9mIHRoZSBwcmVsaW1pbmFyeQogICAgQWNhZGlhIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlYjFkZjgzNTE5MWQ4Y2U0YjgxZDVhZjQwZmE4ZTBmYmU3OGU5OTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDEyIDExOjAyOjIwIDIwMDYgLTA2MDAKCiAgICBGaXggODY0MUhQQ04gcHJvYmxlbSB3aXRoIGxkIHZlcnNpb24gMi4xNgoKICAgIChEb3Qgb3V0c2lkZSBzZWN0aW9ucyBwcm9ibGVtKS4KCiAgICBUaGlzIGZpeCBpcyBpbiB0aGUgc3Bpcml0IG9mIDgwN2Q1ZDczMTkzMzBlMzM2YWIzNGE1NjIzYzVlMGQ3M2I4N2Q1NDAuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OTY0YTRkZDBkNGVmNWEwMzdmZWJhZWJmMWFhNDk0YjFhNzI5OTFjCkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjM1OjU1IDIwMDYgLTA2MDAKCiAgICBTZXQgUmV2IDIueCA4Nnh4IFBJQyBpbiBtaXhlZCBtb2RlLgoKICAgIFByZXZlbnQgZmFsc2UgaW50ZXJydXB0IGZyb20gaGFuZ2luZyBMaW51eCBhcyBNU1JbRUVdIGlzIHNldAogICAgdG8gZW5hYmxlIGludGVycnVwdHMgYnkgY2hhbmdpbmcgdGhlIFBJQyBvdXQgb2YgdGhlIGRlZmF1bHQKICAgIHBhc3MgdGhyb3VnaCBtb2RlIGludG8gbWl4ZWQgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YTU4YTczY2ViMGE0MDU5YzQyZWY2NGNlZGJjMWE0NWUwYWFhMDBlCkF1dGhvcjogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjMyOjM1IDIwMDYgLTA2MDAKCiAgICBBZGQgZmxhc2ggY21kIGZ1bmN0aW9uIHRvIDg2NDFIUENOIHJhbWJvb3QKCiAgICBBbHNvIGZpeGVzIHNvbWUgY29tbW1hbmQgZm9yIDg2NDEgSFBDTiByYW1ib290IGNhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmNjY2VhY2MwNGIwMDlkOTIzYWZiN2MyNjE4OWJhMmY4YTJhNWQ0NgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAxMDozNDoxNCAyMDA2IC0wNjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIDg2NDEgUmV2IDIgc2lsaWNvbi4KCiAgICBXaXRob3V0IHRoaXMgcGF0Y2gsIEkgYW0gdW5hYmxlIHRvIGdldCB0byB0aGUgcHJvbXB0IG9uIHJldiAyIHNpbGljb24uCiAgICBPbmx5IHNldCBkZHJpb292Y3IgZm9yIHJldjEuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0PGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NGJhNDY0Yjk5MDAxZjhiZDFjNDU2YTFlOWQ1OTcyNjI1MmY3MDdhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyMiAwMDoxMzoxMiAyMDA3ICswMTAwCgogICAgQ29kZSBjbGVhbnVwIC8gcmUtaW5zZXJ0IHByZXZpb3VzIENvcHlyaWdodCBlbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmE4ZGZlMDgzNTlhMWI2NjM0MThiMmZhYTFkYTFkN2JjZTM0ZDMwMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMjM6MjY6MTUgMjAwNyArMDEwMAoKICAgIENvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGU2NjE1ZWNmNGVhZjRkZDUyNjk2OTM0YWVkOGY1YzY0NzRjZmQyODYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTQ6NTQ6MjkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGZpbGUgbW9kZSBvZiBpbmNsdWRlL2NvbmZpZ3MvYWNhZGlhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDVmNDYxNGM5MzUwZDkzMzNlNTc1MTAwZmIyNTBhYWI3NzRkMDI1OApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTQ6NDE6NDYgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGZpeCBzbWFsbCBjbG9jayByb3V0aW5nIGJ1ZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMTZjMGNjMWM4MjA4MWE0OTNhYjg3YzUxOTgwYjI4MzM2Y2UxYmNlOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxMzozOTo1NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgQU1DQyBBY2FkaWEgKDQwNUVaKSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG5ldyBBTUNDIEFjYWRpYSBldmFsIGJvYXJkLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBBY2FkaWEvNDA1RVogc3VwcG9ydCBpcyBzdGlsbCBpbiBhIGJldGEgc3RhZ2UuCiAgICBTdGlsbCBsb3QncyBvZiBjbGVhbnVwIG5lZWRlZCBidXQgd2UgbmVlZCBhIHByZWxpbWluYXJ5IHJlbGVhc2Ugbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMDFiZDIxOGIwMGFmNzM0OTkzMzFhMWE3MDE2MjVhODUyY2QyODZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDEzOjM4OjU5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBBTUNDIFBQQzQwNUVaIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG5ldyBBTUNDIDQwNUVaIFBQQy4gSXQgaXMgaW4KICAgIHByZXBhcmF0aW9uIGZvciB0aGUgQU1DQyBBY2FkaWEgYm9hcmQgc3VwcG9ydC4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgQWNhZGlhLzQwNUVaIHN1cHBvcnQgaXMgc3RpbGwgaW4gYSBiZXRhIHN0YWdlLgogICAgU3RpbGwgbG90J3Mgb2YgY2xlYW51cCBuZWVkZWQgYnV0IHdlIG5lZWQgYSBwcmVsaW1pbmFyeSByZWxlYXNlIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDdlODJjYjJlMjg0YTg5M2RmNjY5M2YyYTEzMzdhYjJjNDdiZjZhMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAwODo0NToxNyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBUUU04MjcyOiBkb250IGNoYW5nZSB0aGUgYml0cyBnaXZlbiBmcm9tIHRoZSBIUkNXCgkJICAgICBmb3IgdGhlIFNJVU1DUiBhbmQgQkNSIFJlZ2lzdGVyLgoJCSAgICAgRml4IHRoZSBjYWxjdWxhdGlvbiBmb3IgdGhlIEVFcHJvbSBTaXplCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNjU0NTg5ODczZGJhZmNmMTA0ZGZmMTMzY2UwZDAzYTQ1MDZlOWNjMwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVR1ZSBNYXIgMjAgMTg6MTY6MjQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjU2MSBFWktJVCBib2FyZCBzdXBwb3J0Cgpjb21taXQgYTYxNTRmZDFjZmQwMjBmNmRhODUyN2UwMzY1YjEwMjBhMTFhNzFkMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMjI6NTU6NTggMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbm9yIGNsZWFudXAKCmNvbW1pdCAzODliNmJiNTBmNzQ1YmY1MDM4Y2UwMzAzMDBkOGE4NTEyZTk2Zjc5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAxOSAxMzoxMDowOCAyMDA3ICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlZCBQT1NUIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGU3MDliYmIyNjM2YjU2NzBhOGYyYjU3NWUxMzhlYjFmNTU3NzNmNgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMDE6MjY6MTEgMjAwNyArMDgwMAoKICAgIFtQQVRDSF0gQWRkIGZsYXNoIGNoaXAgTTI5VzMyMEVUL0Igc3VwcG9ydAoKY29tbWl0IDI2YmY3ZGVjYTM2NGE1YjMzZjM5ZThmMTRkZGQzZjQwODEzNDUwMTUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDE5IDAxOjI0OjUyIDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBBZGQgQkY1Mzcgc3RhbXAgYm9hcmQgc3VwcG9ydAoKY29tbWl0IDg0MjNlNWUzMWE3MjM1ZDA1YTQ4MjYyNzMxNWZiMTFkNDljMTdiZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMTYgMjE6MTE6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXNlIGR5bmFtaWMgU0RSQU0gVExCIHNldHVwIG9uIEFNQ0MgRWJvbnkgZXZhbCBib2FyZAoKICAgIERlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgc28gdGhhdCB0aGUgVExCIGVudHJpZXMgZm9yIHRoZQogICAgRERSIG1lbW9yeSBhcmUgZHluYW1pY2FsbHkgcHJvZ3JhbW1lZCBtYXRjaGluZyB0aGUgdG90YWwgc2l6ZQogICAgb2YgdGhlIGVxdWlwcGVkIG1lbW9yeSAoRElNTSBtb2R1bGVzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzZkMTQ2NmY5MThiODgxY2RhMmQyNTkyNTQ3NjFlNzM4ODUwOTNjMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgTWFyIDEzIDEzOjM4OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIHJlbmFtZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgJ2FkZGNvbicgdG8gJ2FkZGNvbnMnIGZvciBQQ0k0MDUKCSAgICBib2FyZHMgaW4gdGVybXMgb2YgdW5pZmljYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYTcwOTBiOTkzZDNkNGQyMjIxYWMzZjMzZTZjYjFkMWIyY2NjNmJmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTMgMTY6MDU6NTUgMjAwNyArMDEwMAoKICAgIE1ha2UgU0MzIGJvYXJkIGJ1aWxkIHdpdGggJ21ha2UgTz0nOyB1c2UgJ2FkZGNvbnMnIGNvbnNpc3RlbnRseQogICAgKFNDMyBhbmQgSnVwaXRlciB1c2VkIHRvIHVzZSAnYWRkY29uJyBpbnN0ZWFkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIHdkQGRlbnguZGUKCmNvbW1pdCA4NTAyZTMwYTI4ZTQ5MmM3NTZlYTJkN2RmMGFjZTAyNjM4OGZjZTRiCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDEzIDA5OjQwOjU5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIHVwZGF0ZSBib2FyZCBjb25maWcgZm9yIGp1cGl0ZXIgQm9hcmQ6CgkgICAgYWRkZWQgSHVzaCBTaGVsbCwKCQkgIENPTkZJR19DTURMSU5FX0VESVRJTkcsCgkJICBDRkdfRU5WX0FERFJfUkVEVU5EIGFjdGl2YXRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDBkOTNkZTExNDQ5MzkwYTU5ODRiMDIzNmMzNjEyZTUwZjZkYmI3ZTgKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDEyOjExOjU1IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5vciBjbGVhbnVwCgpjb21taXQgYmZhNTc1NGE1ODQ3N2FjOTE3ZDIxNTI3Y2QwZjA3OWQ4N2NmMTg4ZQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMDE6NDI6MDYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBCVUlMRF9ESVIgb3B0aW9uIG9mIE1BS0VBTEwgYnVpbGRpbmcgaXNzdWUKCmNvbW1pdCA4NDQwYmIxNDU4MWEyOTQzNzVjMzRiOTFiNDI1MTJmOTc1M2QxMTMwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAwMDoyNToxNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY29kZSBjbGVhbnVwCgpjb21taXQgY2ZjNjcxMTZhNzA2ZmQxOGI4ZjZhOWMxMWExNjc1M2M1NjI2ZDY4OQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1hciAxMSAxMzo0ODoyNCAyMDA3ICswMTAwCgogICAgW01pY3JvYmxhemVdW1BBVENIXSBwYXJ0IDIKICAgIHRpbWVyIHN1cHBvcnQKICAgIGludGVycnVwdCBjb250cm9sbGVyIHN1cHBvcnQKICAgIGZsYXNoIHN1cHBvcnQKICAgIGV0aGVybmV0IHN1cHBvcnQKICAgIGNhY2hlIHN1cHBvcnQKICAgIGJvYXJkIGluZm9ybWF0aW9uIHN1cHBvcnQKICAgIGVudiBzdXBwb3J0CiAgICBib290aW5nIGltYWdlIHN1cHBvcnQKCiAgICBhZGRpbmcgc3VwcG9ydCBmb3IgWGlsaW54IE1MNDAxCgpjb21taXQgNzYzMTZhMzE4ZGU5MWY2MTg0ZTdjMjJhMTBlMDJkMjc1YWRlMjQ0MQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1hciAxMSAxMzo0Mjo1OCAyMDA3ICswMTAwCgogICAgW01pY3JvYmxhemVdW1BBVENIXQogICAgdGltZXIgc3VwcG9ydAogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc3VwcG9ydAogICAgZmxhc2ggc3VwcG9ydAogICAgZXRoZXJuZXQgc3VwcG9ydAogICAgY2FjaGUgc3VwcG9ydAogICAgYm9hcmQgaW5mb3JtYXRpb24gc3VwcG9ydAogICAgZW52IHN1cHBvcnQKICAgIGJvb3RpbmcgaW1hZ2Ugc3VwcG9ydAoKICAgIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggTUw0MDEKCmNvbW1pdCA4ZGIxM2Q2MzE1NzgxMWM4MzlkMTVhMzEzZDlmMmQyZjVmZDEwYWYzCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJU2F0IE1hciAxMCAyMzo0OToyOSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY29kZSBjbGVhbnVwCgpjb21taXQgZWYyNmEwOGZlZjkyOGI3YmMxMWFlMmMxMDllNjM4ZGMzYTAxNmQ5MQpBdXRob3I6IEF1YnJleS5MaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CUZyaSBNYXIgOSAxMzo0MDo1NiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSC0yLzJdIENvbW1vbiBmaWxlcyBjaGFuZ2VkIHRvIHN1cHBvcnQgYmY1MzMgcGxhdGZvcm0KCmNvbW1pdCAzZjA2MDZhZDBiNTYzOWY3ZjIyODQ4ZmU1YjQ1NzRlNzU0ZDA0NzBmCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIE1hciA5IDEzOjM4OjQ0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dUEFUQ0gtMS8yXTogUmVtb3ZlIG9ic29sZXRlIGJsYWNrZmluIHBvcnQgYW5kIGFkZCBiZjUzMyBwbGF0Zm9ybSBzdXBwb3J0Cgpjb21taXQgOTkyNDIzYWI0M2MyYmNmNmI3MDQ4NTNiZDAwYWY3NzQ1MDkxNWUyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIzOjAwOjA4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBmaWxlIG1vZGUgb2Ygc2VxdW9pYS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViOTJmNjEzNTU2ODAwZjc0ODM2NjZkYjA5ZDlhMjM3YWQ5MTFkNGEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIyOjUyOjUxIDIwMDcgKzAxMDAKCiAgICBNaW5vciBjbGVhbnVwLgoKY29tbWl0IDhjZTE2ZjU1YzdiOTc1MmFmM2Q4YmVkODQ1MjFhZWM1MzM3ZTJkZTEKQXV0aG9yOiBKb2huIE90a2VuIGpvaG5Ac29mdGFkdmFuY2VzLmNvbSA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgpEYXRlOglUaHUgTWFyIDggMDk6Mzk6NDggMjAwNyAtMDYwMAoKICAgIHBwYzR4eDogQ2xlYXIgU2VxdW9pYS9SYWluaWVyIHNlY3VyaXR5IGVuZ2luZSByZXNldCBiaXRzCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBPdGtlbiBqb2huQHNvZnRhZHZhbmNlcy5jb20gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KCmNvbW1pdCA2NTBhMzMwZGQyNTM5MTMwYzhjMzI0NzkxZTJmOWY3NWFlZDc5ZDRlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyNjo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IGFkZCBzb21lIG1vcmUgU1BEIGVlcHJvbSBkZWNvZGluZyBmb3IgRERSMiBtb2R1bGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDlmYzcwMzI0Njg0MGM0YjI2OGRlYmY0OGMzMzRiYTU1YzU5N2RjMApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjU6NDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBkaXNhYmxlIGZsYXQgaTJjIGNvbW1hbmRzIHdoZW4gQ09ORklHX0kyQ19DTURfVFJFRSBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgY2VkNWI5MDI5MDQzMzk3MzQ4Y2RjODhlMGNmY2Q2YjFmNjI5MjUwYgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjM6MTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBhbGxvdyBDT05GSUdfSTJDX0NNRF9UUkVFIHdpdGhvdXQgQ09ORklHX0kyQ19NVUxUSV9CVVMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkOGE4ZWE1YzQ3NmQzNzAwNmZjN2Y4NWI3ZjkwMzE0Mjc5NWM4YjE0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyMDozMiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBtaXNzaW5nIGRlZmF1bHQgQ0ZHX1NQRF9CVVNfTlVNCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZjlmYzZhNTg1MmE2MzM1ODQwODgyZmEyMTExOTI1MDEwZWVhMWFiZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgTWFyIDcgMTU6MzI6MDEgMjAwNyArMDEwMAoKICAgIGZpeGVkIGV0aGVybmV0IHBoeSBjb25maWd1cmF0aW9uIGZvciBwbHU0MDUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3NjkxMDRjOTM1NjU5NGRlYjIwOTJlMjA0YTM5YzA1YjMzMjAyZDZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAyMTo0OToyNyAyMDA3ICswMTAwCgogICAgTWlub3IgY2xlYW51cAoKY29tbWl0IDAwY2RiNGNlNWUxYjQyMjQ4ZTdlNjUyMmFkMGRhMzQyMWI5ODhhZmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDoxMzoxNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBMdWFuIDQ0MFNQIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBBTUNDIEx1YW4gbm93IHVzZXMgdGhlIGNvbW1vbiA0NDBTUChlKSBERFIgU1BEIGNvZGUgZm9yIEREUgogICAgaW5pdGl0aWFsaXppdGlvbi4gVGhpcyBpbmNsdWRlcyBERFIgYXV0byBjYWxpYnJhdGlvbiBhbmQgc3VwcG9ydAogICAgZm9yIGRpZmZlcmVudCBESU1NIG1vZHVsZXMsIGluc3RlYWQgb2YgdGhlIGZpeGVkIHNldHVwIHVzZWQgaW4KICAgIHRoZSBlYXJsaWVyIHZlcnNpb24uCgogICAgVGhpcyBwYXRjaCBhbHNvIGVuYWJsZXMgdGhlIGNhY2hlIGluIEZMQVNIIGZvciB0aGUgc3RhcnR1cAogICAgcGhhc2Ugb2YgVS1Cb290ICh3aGlsZSBydW5uaW5nIGZyb20gRkxBU0gpLiBBZnRlciByZWxvY2F0aW5nIHRvCiAgICBTRFJBTSB0aGUgY2FjaGUgaXMgZGlzYWJsZWQgYWdhaW4uIFRoaXMgd2lsbCBzcGVlZCB1cCB0aGUgYm9vdAogICAgcHJvY2VzcywgZXNwZWNpYWxseSB0aGUgU0RSQU0gc2V0dXAsIHNpbmNlIHRoZXJlIGFyZSBzb21lIGxvb3BzCiAgICBmb3IgbWVtb3J5IHRlc3RpbmcgKGF1dG8gY2FsaWJyYXRpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjVkZjQ3MzUxOTEwYTI5MzZjNzc0MWNmMTExODU1ODI5MjAwOTQzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MTA6MTggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgWXVjY2EgNDQwU1BlIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBBTUNDIFl1Y2NhIG5vdyB1c2VzIHRoZSBjb21tb24gNDQwU1AoZSkgRERSIFNQRCBjb2RlIGZvciBERFIKICAgIGluaXRpdGlhbGl6aXRpb24uIFRoaXMgaW5jbHVkZXMgRERSIGF1dG8gY2FsaWJyYXRpb24gYW5kIHN1cHBvcnQKICAgIGZvciBkaWZmZXJlbnQgRElNTSBtb2R1bGVzLCBpbnN0ZWFkIG9mIHRoZSBmaXhlZCBzZXR1cCB1c2VkIGluCiAgICB0aGUgZWFybGllciB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNzIxYTY4YTllYTkxZjFlNDk0NjQ5Y2U2OGIyNTc3MjYxZjU3OGUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MDc6MTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogU21hbGwgQU1DQyBLYXRtYWkgNDQwU1BlIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjI5NDQ5NzQ3OWIxZGNhNmRkODYzMThiMmE5MTJmNzJmZWRlMGRmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MDY6MDkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0MFNQLzQ0MFNQZSBERFIgU1BEIHNldHVwIGNvZGUgdG8gc3VwcG9ydCA0NDBTUAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4Mzg1MzE3OGJkMzZiY2E2ZjBmOGYxMzMxNDc2NjIwYzg0YTU4N2ZjCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA3IDEyOjE0OjUwIDIwMDcgLTA2MDAKCiAgICBuZXQgLSBTdXBwb3J0IHBpbmcgcmVwbHkgd2hlbiBwcm9jZXNzaW5nIG5ldC1sb29wCgogICAgQWRkIElDTVBfRUNIT19SRVFVRVNUIHBhY2tldCBzdXBwb3J0IGJ5IHJlc3BvbmRpbmcgd2l0aCBhIElDTVBfRUNIT19SRVBMWS4KCiAgICBUaGlzIHBlcm1pdHMgdGhlIHBpbmcgY29tbWFuZCB0byB0ZXN0IHRoZSBwaHkgaW50ZXJmYWNlIHdoZW4gdGhlIHBoeQogICAgaXMgcHV0IGluIGxvb3BiYWNrIG1vZGUgKHR5cGljYWxseSBieSBzZXR0aW5nIHJlZ2lzdGVyIDAgYml0IDE0KS4KCiAgICBJdCBhbHNvIGFsbG93cyB0aGUgcG9ydCB0byByZXNwb25kIHRvIGFuIGV4dGVybmFsIHBpbmcgd2hlbiB1LWJvb3QgaXMKICAgIHByb2Nlc3Npbmcgc29tZSBvdGhlciBuZXQgY29tbWFuZCAoc3VjaCBhcyB0ZnRwKS4gIFRoaXMgaXMgdXNlZnVsIHdoZW4KICAgIHRmdHAgYXBwZWFycyB0byBoYW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBmYTFhZWYxNWJjZDQ3NzM2Njg3YmUxYWY1NDQ1MDZlOTBmYmE1NDVkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6NDM6MDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXNlIGR5bmFtaWMgU0RSQU0gVExCIHNldHVwIG9uIEFNQ0MgT2NvdGVhIGV2YWwgYm9hcmQKCiAgICBEZWZpbmUgQ09ORklHX1BST0dfU0RSQU1fVExCIHNvIHRoYXQgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUKICAgIEREUiBtZW1vcnkgYXJlIGR5bmFtaWNhbGx5IHByb2dyYW1tZWQgbWF0Y2hpbmcgdGhlIHRvdGFsIHNpemUKICAgIG9mIHRoZSBlcXVpcHBlZCBtZW1vcnkgKERJTU0gbW9kdWxlcykuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUyZWJlNjk2ODE4OTM5ZTJiOTc0NjI4YmU5YzkyMWVhM2ZlOWRlMTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjozOTozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggQU1DQyA0NHggU1BEIFNEUkFNIGluaXQgY29kZSB0byBzdXBwb3J0IDIgRElNTSdzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gdGhhdCBvY2N1cnMgd2hlbiAyIERJTU0ncyBhcmUKICAgIHVzZWQuIFRoaXMgcHJvYmxlbSB3YXMgZmlyc3Qgc3BvdHRlZCBhbmQgZml4ZWQgYnkgR2VyYWxkIEphY2tzb24KICAgIDxnZXJhbGQuamFja3NvbkByZWFvbml4c2VjdXJpdHkuY29tPiBidXQgdGhpcyBwYXRjaCBmaXhlcyB0aGUKICAgIHByb2JsZW0gaW4gYSBsaXR0bGUgbW9yZSBjbGV2ZXIgd2F5LgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHRoZSBuaWNlIGZ1bmN0aW9uYWxpdHkgdG8gZHluYW1pY2FsbHkKICAgIGNyZWF0ZSB0aGUgVExCIGVudHJpZXMgZm9yIHRoZSBTRFJBTSAodGxiLmMpLiBTbyB3ZSBzaG91bGQKICAgIG5ldmVyIHJ1biBpbnRvIHN1Y2ggcHJvYmxlbXMgd2l0aCB3cm9uZyAodG9vIHNob3J0KSBUTEIKICAgIGluaXRpYWxpemF0aW9uIGFnYWluIG9uIHRoZXNlIHBsYXRmb3Jtcy4KCiAgICBBcyB0aGlzIGZlYXR1cmUgaXMgbmV3IHRvIHRoZSAib2xkIiA0NHggU1BEIEREUiBkcml2ZXIsIGl0CiAgICBoYXMgdG8gYmUgZW5hYmxlZCB2aWEgdGhlIENPTkZJR19QUk9HX1NEUkFNX1RMQiBkZWZpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM5MjE4NDMzOTgzNDE3YjlkZjA4Nzk3NmE3OWUzZjgwZGQ1ZTgzZDYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6MzM6NDQgMjAwNyArMDEwMAoKICAgIFVDMTAxOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA4ZDdlMjczMjIyMWJjMmQ2NGRmMTRmNzAwYzY0YzIzZTBhNGMzZGNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjoxOTo0NiAyMDA3ICswMTAwCgogICAgSE1JMTAwMTogZml4IGJ1aWxkIGVycm9yLCBjbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLgoKY29tbWl0IGFkNWJiNDUxYWRlNTUyYzQ0YmVmOTExOWQ5MDc5MjllYmMyYzEyNmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDE4OjA4OjQzIDIwMDcgKzAxMDAKCiAgICBSZXN0cnVjdHVyZSBQT1NUIGRpcmVjdG9yeSB0byBzdXBwb3J0IG9mIG90aGVyIENQVXMsIGJvYXJkcywgZXRjLgoKY29tbWl0IGE1Mjg0ZWZkMTI1OTY3Njc1YjJlOWM2ZWY3Yjk1ODMyMjY4YWQzNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDE4OjAxOjQ3IDIwMDcgKzAxMDAKCiAgICBGaXggSE9TVEFSQ0ggaGFuZGxpbmcuCiAgICBQYXRjaCBieSBNaWtlIEZyeXNpbmdlciwgTWFyIDA1IDIwMDcKCmNvbW1pdCAwN2I3YjAwMzdhYWM1MTAyOTM5OTE3ZDdjYmU1NjFiNWMwZDVhYTQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMDc6NDc6MDQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU3BlZWQgb3B0aW1pemF0aW9uIG9mIEFNQ0MgU2VxdW9pYS9SYWluaWVyIEREUjIgc2V0dXAKCiAgICBBcyBwcm92aWRlZCBieSB0aGUgQU1DQyBhcHBsaWNhdGlvbnMgdGVhbSwgdGhpcyBwYXRjaCBvcHRpbWl6ZXMgdGhlCiAgICBERFIyIHNldHVwIGZvciAxNjZNSHogYnVzIHNwZWVkLiBUaGUgdmFsdWVzIHByb3ZpZGVkIGFyZSBhbHNvIHNhdmUKICAgIHRvIHVzZSBvbiBhICJub3JtYWwiIDEzM01IeiBQTEIgYnVzIHN5c3RlbS4gT25seSB0aGUgcmVmcmVzaCBjb3VudGVyCiAgICBzZXR1cCBoYXMgdG8gYmUgYWRqdXN0ZWQgYXMgZG9uZSBpbiB0aGlzIHBhdGNoLgoKICAgIEZvciB0aGlzIHRoZSBOQU5EIGJvb3RpbmcgdmVyc2lvbiBoYWQgdG8gaW5jbHVkZSB0aGUgInNwZWVkLmMiIGZpbGUKICAgIGZyb20gdGhlIGNwdS9wcGM0eHggZGlyZWN0b3J5LiBXaXRoIHRoaXMgYWRkaXRpb24gdGhlIE5BTkQgU1BMIGltYWdlCiAgICB3aWxsIGp1c3QgZml0IGludG8gdGhlIDRrYnl0ZXMgb2YgcHJvZ3JhbSBzcGFjZS4gZ2NjIHZlcnNpb24gNC54IGFzCiAgICBwcm92aWRlZCB3aXRoIEVMREsgNC54IGlzIG5lZWRlZCB0byBnZW5lcmF0ZSB0aGlzIG9wdGltaXplZCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2NDdkM2MzZWVkMGRhMWQxNTA1ZWVjYWJlMGIwZmFiOTZmOTU2ZTY4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBNYXIgNCAwMTozNjowNSAyMDA3ICswMTAwCgogICAgU29tZSBjb2RlIGNsZWFudXAuCgpjb21taXQgNzgxZTAyNmM4YWE2ZjdlOWViNWYwZTcyY2M0ZDIwOTcxMjE5YjE0OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjggMDA6MDI6MDQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZnRfZ2V0X3Byb3AnIHdhcm5pbmdzCgogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjNWJmMTNiMDIyODRjMzIwNGE3MjM1NjZhOWJhYjcwMGU1MDU5NjU5IGNvbW1pdCkKCmNvbW1pdCA0ZmVhYjRkZTdiZmMyY2IyZmVkMzZhZDc2ZjkzYzNhNjk2NTliYmFmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAyNyAyMzo1MTo0MiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRml4IGNvbmZpZyBvZiBBcmJpdGVyLCBTeXN0ZW0gUHJpb3JpdHksIGFuZCBDbG9jayBNb2RlCgogICAgVGhlIGNvbmZpZyB2YWx1ZSBmb3I6CiAgICAqIENGR19BQ1JfUElQRV9ERVAKICAgICogQ0ZHX0FDUl9SUFRDTlQKICAgICogQ0ZHX1NQQ1JfVFNFQzFFUAogICAgKiBDRkdfU1BDUl9UU0VDMkVQCiAgICAqIENGR19TQ0NSX1RTRUMxQ00KICAgICogQ0ZHX1NDQ1JfVFNFQzJDTQoKICAgIFdlcmUgbm90IGJlaW5nIHVzZWQgd2hlbiBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSByZWdpc3RlcgoKICAgIEFkZGVkOgogICAgKiBDRkdfU0NDUl9VU0JNUEhDTQogICAgKiBDRkdfU0NDUl9VU0JEUkNNCiAgICAqIENGR19TQ0NSX1BDSUNNCiAgICAqIENGR19TQ0NSX0VOQ0NNCgogICAgVG8gYWxsb3cgZnVsbCBjb25maWcgb2YgdGhlIFNDQ1IuCgogICAgQWxzbyByZW1vdmVkIHJhbmRvbSBDRkdfU0NDUiBzZXR0aW5ncyBpbiBNUEM4MzQ5RU1EUywgVFFNODM0eCwgYW5kIHNiYzgzNDkKICAgIHRoYXQgd2VyZSBqdXN0IGJvZ3VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDUxYjNjZjM3MWNkNDQxMDMwNDYwZWYxOWQzNmIyOTI0YzM2MWIxYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBGZWIgMjIgMjA6MDY6NTcgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHVwZGF0ZSBbbG9jYWwtXW1hYy1hZGRyZXNzIHByb3BlcnRpZXMgb24gVUVDIGJhc2VkIGRldmljZXMKCiAgICA4MzYwIGFuZCA4MzJ4IHdlcmVuJ3QgdXBkYXRpbmcgdGhlaXIgW2xvY2FsLV1tYWMtYWRkcmVzcwogICAgcHJvcGVydGllcy4gVGhpcyBwYXRjaCBmaXhlcyB0aGF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjFmNGY5MTJhY2JlNjA3NzZjNWUwMGRmMWVjOTQwOTRjZTY3Mjk1NwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTMgMTA6NDE6NDIgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCB0aGlzIHBhdGNoCiAgICB1cGRhdGVzIGZ0cF9jcHVfc2V0dXAoKSB0byB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgaWYgaXQgZXhpc3RzLgogICAgVGhpcyBmdW5jdGlvbiBhbHJlYWR5IHVwZGF0ZXMgbG9jYWwtbWFjLWFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmQ3MWE3MWY1N2ZkNWQzOGIyN2FjMzg0OGU1MGQ3OTAzNjBhNTk4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAxODo0MTowOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogYWRkIGNvbW1hbmQgbGluZSBlZGl0aW5nIGJ5IGRlZmF1bHQKCmNvbW1pdCAzZmMwYmQxNTkxMDNiNTM2ZTFjNTRjNmY0NDU3YTA5YjNhYmE2NmNhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxOTo1MDo1MyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRGlzYWJsZSBHMVRYQ0xLLCBHMlRYQ0xLIGgvdyBidWZmZXJzCgogICAgRGlzYWJsZSBHMVRYQ0xLLCBHMlRYQ0xLIGgvdyBidWZmZXJzLiBUaGlzIHBhdGNoCiAgICBmaXhlcyBhIG5ldHdvcmtpbmcgdGltZW91dCBpc3N1ZSB3aXRoIE1QQzgzNjBFQSAoUmV2LjIpIFBCcy4KCiAgICBWZXJpZmllZCBvbiBSZXYuIDEuMSwgUmV2LiAxLjIsIGFuZCBSZXYuIDIuMCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVtaWxpYW4gTWVkdmUgPEVtaWxpYW4uTWVkdmVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNjE4NTNjZjI0NzJlMGI4YmNiZDEzMTQ2MWE5M2QxYzQ5ZmYwYzFmCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6Mjc6MTcgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBERFIyIGNvbnRyb2xsZXIgZml4ZWQvU1BEIEluaXQgZm9yIE1QQzgzeHgKCiAgICBUaGUgY29kZSBzdXBwbHkgZml4ZWQgYW5kIFNQRCBpbml0aWFsaXphdGlvbiBmb3IgTVBDODN4eCBERFIyIENvbnRyb2xsZXIuCiAgICBpdCBwYXNzIEREUi9ERFIyIGNvbXBsaWFuY2UgdGVzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibyA8WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMTEwZjQwYmQxODBjNmI1NjAyNzY1ODliZWVkZjc1M2U5N2M0NmNlCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6Mjc6MDYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgY3B1IHNwZWNpZmljIGNvZGUgZm9yIE1QQzgzNjBFIHJldjIuMCBNRFMKCiAgICBNUEM4MzYwRSByZXYyLjAgaGF2ZSBuZXcgc3ByaWRyLGFuZCBQVlIgdmFsdWUsCiAgICBUaGUgTURTIGJvYXJkIGZvciBNUEM4MzYwRSByZXYyLjAgaGFzIDMyTSBieXRlcyBGbGFzaCBhbmQgMjU2TSBERFIyIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibyA8WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZDE3MmMwZjBkODU5OThhMjU2YTk1Yjc0NTlhNTQwM2EzMDM4MGVkCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6MjY6NDQgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgY3B1IGFuZCBib2FyZCBzcGVjaWZpYyBjb2RlIGZvciBNUEM4MzQ5RSByZXYzLjEgTURTCgogICAgTVBDODM0OUUgcmV2My4xIGhhdmUgbmV3IHNwcmlkcixhbmQgUFZSIHZhbHVlLAogICAgVGhlIE1EUyBib2FyZCBmb3IgTVBDODM0OUUgcmV2My4xIGhhcyAzMk0gYnl0ZXMgRmxhc2ggYW5kIDI1Nk0gRERSMiBESU1NLgoKICAgIFNpZ25lZC1vZmYtYnk6IFhpZSBYaWFvYm88WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNmY1ZjcwOWU1YzhlNDU2NGM0ZGZlZWNmZGYyMjc5MjQ0ZjljODNiCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8am9ha2ltLnRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVdlZCBKYW4gMzEgMTE6MDQ6MTkgMjAwNyArMDEwMAoKICAgIG1wYzgzeHg6IEZpeCBlbXB0eSBpMmMgcmVhZHMvd3JpdGVzIGluIGZzbF9pMmMuYwoKICAgIEZpeCBlbXB0eSBpMmMgcmVhZHMvd3JpdGVzLCBpMmNfd3JpdGUoMHg1MCwgMHgwMCwgMCwgTlVMTCwgMCkKICAgIHdoaWNoIGlzIHVzZWQgdG8gc2UgaWYgYW4gc2xhdmUgd2lsbCBBQ0sgYWZ0ZXIgcmVjZWl2aW5nIGl0cyBhZGRyZXNzLgoKICAgIENvcnJlY3QgaTJjIHByb2JpbmcgdG8gdXNlIHRoaXMgbWV0aG9kIGFzIHRoZSBvbGQgbWV0aG9kIGNvdWxkIHVwc2V0CiAgICBhIHNsYXZlIGFzIGl0IHdyb3RlIGEgZGF0YSBieXRlIHRvIGl0LgoKICAgIEFkZCBhIHNtYWxsIGRlbGF5IGluIGkyY19pbml0KCkgdG8gbGV0IHRoZSBjb250cm9sbGVyCiAgICBzaHV0ZG93biBhbnkgb25nb2luZyBJMkMgYWN0aXZpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+Cgpjb21taXQgN2E3OGYxNDhkNmE3Mjk4ZTRmZmFjZTY4MGRjN2VhY2Q4NzdiMWFiYQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzEgMTU6NTQ6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWC1HUAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWC1HUCwgYSBzdHJpcHBlZC1kb3duIHZlcnNpb24gb2YgdGhlCiAgICBNUEM4MzQ5RS1tSVRYLiAgQm9udXMgZmVhdHVyZXMgaW5jbHVkZSBzdXBwb3J0IGZvciBsb3ctYm9vdCAoQk1TIGJpdCBpbgogICAgSFJDVyBpcyAwKSBmb3IgdGhlIElUWCBhbmQgYSBSRUFETUUgZm9yIHRoZSBJVFggYW5kIHRoZSBJVFgtR1AuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYWIxNjgwN2FkYWQzNTBmNjE4MDI0MzUwYzY5NTAxNjVjMjQ3YzcyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMSAxNTo1NDoyMCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRGVsZXRlIHNkcmFtX2luaXQoKSBmb3IgTVBDODM0OUUtbUlUWAoKICAgIFRoZXJlIGlzIG5vIFNEUkFNIG9uIGFueSBvZiB0aGUgODM0OSBJVFggdmFyaWFudHMsIHNvIGZ1bmN0aW9uIHNkcmFtX2luaXQoKQogICAgbmV2ZXIgZG9lcyBhbnl0aGluZy4gIFRoaXMgcGF0Y2ggZGVsZXRlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4N2M4NTZlYjQxMWI5MzY1OTM3ZDBkNGI5YzIxZTQ2YWRiZTFjMTQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDE5IDEwOjQzOjI2IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIExBVzEvMyBidWcKCiAgICBUaGUgcGF0Y2ggc29sdmVzIHRoZSBhbGlnbm1lbnQgcHJvYmxlbSBvZiB0aGUgbG9jYWwgYnVzIGFjY2VzcyB3aW5kb3dzIHRvCiAgICByZW5kZXIgYWNjZXNzaWJsZSB0aGUgbWVtb3J5IGJhbmsgYW5kIFBIWSByZWdpc3RlcnMgb2YgVVBDIDEgKHN0YXJ0aW5nIGF0CiAgICAweGY4MDEgMDAwMCkuIFdoYXQgd2UgYWN0dWFsbHkgZGlkIHdhcyB0byBhZGp1c3QgdGhlIHNpemVzIG9mIHRoZSBidXMKICAgIGFjY2VzcyB3aW5kb3dzIHNvIHRoYXQgdGhlIGJhc2UgYWRkcmVzcyBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgd291bGQgYmUgbWV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IENoZXJlamkgTWFyaWFuIDxtYXJpYW4uY2hlcmVqaUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JpZGlzaCBTaGxvbWkgPGdyaWRpc2hAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTdjNGIzOTdkY2UyMzZhNzMxOGIzMDQ2NjdiZjg5ZTU5ZDA4YjE3YwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MzEgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGRvbid0IGhhbmcgaWYgd2F0Y2hkb2cgY29uZmlndXJlZCBvbiA4MzYwLCA4MzJ4CgogICAgZG9uJ3QgaGFuZyBpZiB3YXRjaGRvZyBjb25maWd1cmVkIG9uIDgzNjAsIDgzMngKCiAgICBUaGUgd2F0Y2hkb2cgcHJvZ3JhbW1pbmcgbW9kZWwgaXMgdGhlIHNhbWUgYWNyb3NzIGFsbCA4M3h4IGRldmljZXM7CiAgICBtYWtlIHRoZSBjb2RlIHJlZmxlY3QgdGhhdC4KCmNvbW1pdCBiNzAwNDc0Nzg1NzBlMzcxY2U3MjIzYmUzNDJjZTk4YWZlYTBmN2Q2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNToyMSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBsb2NhbC1tYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCiAgICBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIGxvY2FsLW1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKY29tbWl0IDY3NTJlZDA4OGM3NWMyNmE4OWI3MGM0NmI3MzI2YTRjZDYwMTVmMjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjA0IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBtYWtlIDgzNjAgZGVmYXVsdCBlbnZpcm9ubWVudCBmZHQgYmUgODM2MCAobm90IDgzNDkpCgogICAgbWFrZSA4MzYwIGRlZmF1bHQgZW52aXJvbm1lbnQgZmR0IGJlIDgzNjAgKG5vdCA4MzQ5KQoKY29tbWl0IGEyODg5OWM5MTAwMjRhMDIyNjMzMWRmMDcyMDdiMTAzOGMzMDBjOTMKQXV0aG9yOiBFbWlsaWFuIE1lZHZlIDxFbWlsaWFuLk1lZHZlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBhbHRlcm5hdGluZyB0eCBlcnJvciAvIHR4IGJ1ZmZlciBub3QgcmVhZHkgYnVnIGluIFFFIFVFQwoKICAgIFRoZSBwcm9ibGVtIGlzIG5vdCBnY2M0IGJ1dCB0aGUgY29kZSBpdHNlbGYuIFRoZSBCRF9TVEFUVVMoKSBtYWNybyBjYW4ndAogICAgYmUgdXNlZCBmb3IgYnVzeS13YWl0aW5nIHNpbmNlIGl0IHN0cmlwcyB0aGUgJ3ZvbGF0aWxlJyBwcm9wZXJ0eSBmcm9tCiAgICB0aGUgYmQgdmFyaWFibGUuIGdjYzMgd2FzIHdvcmtpbmcgYnkgcHVyZSBsdWNrLgoKICAgIFRoaXMgaXMgYSBmb2xsb3cgb24gcGF0Y2ggdG8gIkZpeCB0aGUgVUVDIGRyaXZlciBidWcgb2YgUUUiCgpjb21taXQgM2U3OGEzMWNmZTNkMzAyMmY0NmY2N2ViODhlMTI4MWQ1Y2MyZWI4OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBKYW4gMzAgMTQ6MDg6MzAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgQ09ORklHX01QQzgzNDkgYW5kIHVzZSBDT05GSUdfTVBDODM0WCBpbnN0ZWFkCgogICAgVGhlIGNvZGUgdGhhdCBpcyBpZmRlZidkIHdpdGggQ09ORklHX01QQzgzNDkgaXMgYWN0dWFsbHkgYXBwbGljYWJsZSB0byBhbGwKICAgIE1QQzgzNFggY2xhc3MgcHJvY2Vzc29ycy4gIENoYW5nZSB0aGUgcHJvdGVjdGlvbnMgZnJvbSBDT05GSUdfTVBDODM0OSB0bwogICAgQ09ORklHX01QQzgzNFggc28gdGhleSBhcmUgbW9yZSBnZW5lcmljLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWUyNDZkYzZjMTkzN2MyOTEwMTRlYWRkOTBiNmQ0OGM0MzhjN2NiMApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMjUgMTM6NDA6NTUgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBNUEM4MzJYRU1EUyBhbmQgc2JjODM0OSB0byBNQUtFQUxMCgpjb21taXQgNGRlY2Q4NGU4ZjA0Mjc5YzVjZmZmN2Y4ZTkwNzQ2NWVmOGQ4YTNmYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjQgMTc6MTg6MzcgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHNvcnQgTWFrZWZpbGUgdGFyZ2V0cwoKICAgIHJlb3JkZXJlZCB0YXJnZXRzIGFscGhhYmV0aWNhbGx5Cgpjb21taXQgOTFlMjU3Njk3NzFjMTE2NGVkNjNmZmNhMGFkZDQ5ZjkzNGFlMzM0MwpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUdWUgSmFuIDE2IDExOjM4OjE0IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBVLUJvb3Qgc3VwcG9ydCBmb3IgV2luZCBSaXZlciBTQkM4MzQ5CgogICAgSSd2ZSByZWRvbmUgdGhlIFNCQzgzNDkgc3VwcG9ydCB0byBtYXRjaCBnaXQtY3VycmVudCwgd2hpY2gKICAgIGluY29ycG9yYXRlcyBhbGwgdGhlIE1QQzgzNHggdXBkYXRlcyBmcm9tIEZyZWVzY2FsZSBzaW5jZSB0aGUgMS4xLjYKICAgIHJlbGVhc2UsICBpbmNsdWRpbmcgdGhlIEREUiBjaGFuZ2VzLgoKICAgIEkndmUga2VwdCBhbGwgdGhlIFNCQzgzNDkgZmlsZXMgYXMgcGFyYWxsZWwgYXMgcG9zc2libGUgdG8gdGhlCiAgICBNUEM4MzQ5RU1EUyBvbmVzIGZvciBlYXNlIG9mIG1haW50ZW5hbmNlIGFuZCB0byBhbGxvdyBmb3IgZWFzeQogICAgaW5zcGVjdGlvbiBvZiB3aGF0IHdhcyBjaGFuZ2VkIHRvIHN1cHBvcnQgdGhpcyBib2FyZC4gIEhlbmNlIHRoZSBTQkM4MzQ5CiAgICBVLUJvb3QgaGFzIEZEVCBzdXBwb3J0IGFuZCBldmVyeXRoaW5nIGVsc2UgdGhhdCB0aGUgTVBDODM0OUVNRFMgaGFzLgoKICAgIEZvcnR1bmF0ZWx5IHRoZSBGcmVlc2NhbGUgdXBkYXRlcyBhZGRlZCBzdXBwb3J0IGZvciBib2FyZHMgdXNpbmcgQ1MwLAogICAgYnV0IEkgaGFkIHRvIGNoYW5nZSBzcGRfc2RyYW0uYyB0byBhbGxvdyBmb3IgYm9hcmQgc3BlY2lmaWMgc2V0dGluZ3MgZm9yCiAgICB0aGUgc2RyYW1fY2xrX2NudGwgKGl0IGlzL3dhcyBoYXJkIGNvZGVkIHRvIHplcm8sIGFuZCB0aGF0IHJlbWFpbnMgdGhlCiAgICBkZWZhdWx0IGlmIHRoZSBib2FyZCBkb2Vzbid0IHNwZWNpZnkgYSB2YWx1ZS4pCgogICAgSG9wZWZ1bGx5IHRoaXMgc2hvdWxkIGJlIG1lcmdlYWJsZSBhcy1pcyBhbmQgcmVxdWlyZSBubyB3aGl0ZXNwYWNlCiAgICBjbGVhbnVwcyBvciBzaW1pbGFyLCBidXQgaWYgc29tZXRoaW5nIGRvZXNuJ3QgbWVhc3VyZSB1cCB0aGVuIGxldCBtZQogICAga25vdyBhbmQgSSdsbCBmaXggaXQuCgogICAgVGhhbmtzLAogICAgUGF1bC4KCmNvbW1pdCAwNTAzMWRiNDU2YWIyMjdmM2UzNzUyZjM3YjliODEyYjY1YmI4M2FkCkF1dGhvcjogU2FtIFNvbmcgPHNhbXNvbmdzaHVAeWFob28uY29tLmNuPgpEYXRlOglUaHUgRGVjIDE0IDE5OjAzOjIxIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgYSByZWR1bmRhbnQgc2VtaWNvbG9uIGluIG1wYzgzNDlpdHguYwoKICAgIEEgcmVkdW5kYW50IHNlbWljb2xvbiBleGlzdGVkIGluIG1wYzgzNDlpdHguYwogICAgc2hvdWxkIGJlIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNvbmcgPHNhbXNvbmdzaHVAeWFob28uY29tLmNuPgoKY29tbWl0IGYzNWYzNTgyNDFjNTQ5YmUzZjc1Y2ZlMmVhYTY0MjkxNDI3NWI3YmEKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGdlcmFsZC52YW5iYXJlbkBjb21jYXN0Lm5ldD4KRGF0ZToJV2VkIERlYyA2IDIxOjIzOjU1IDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBQdXQgdGhlIHZlcnNpb24gKGFuZCBtYWdpYykgYWZ0ZXIgdGhlIEhSQ1cuCgogICAgUHV0IHRoZSB2ZXJzaW9uIChhbmQgbWFnaWMpIGFmdGVyIHRoZSBIUkNXLiAgVGhpcyBwdXRzIGl0IGluIGEgZml4ZWQKICAgIGxvY2F0aW9uIGluIGZsYXNoLCBub3QgYXQgdGhlIHN0YXJ0IG9mIGZsYXNoIGJ1dCBhcyBjbG9zZSBhcyB3ZSBjYW4gZ2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcnJ5IFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA0OGFlY2Q5NjkxNzFhNmU5OWE1NWZhZTA0OTMzODU3Nzg3ZjlhNWJkCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMjE6MTQ6NTEgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgTVBDODMyWEVNRFMgYm9hcmQgcmVhZG1lCgogICAgQWRkIHRoZSBNUEM4MzJYRU1EUyBib2FyZCByZWFkbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI0YzNhY2EzZjEzNThiMTEzZDMyMTVhZGI1NDMzYjE1NmU5OWY3MmIKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxMzoxNSAyMDA2ICswODAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzJYRU1EUyBib2FyZAoKICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgRFVBUlQsIEVUSDMvNCBhbmQgUENJIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUwODAzMTNjMzIzMjJlMTVhYjVhMThlYjg5NmEyNTI4NThjNTcyODQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxMTo1OCAyMDA2ICswODAwCgogICAgbXBjODN4eDogc3RyZWFtbGluZSB0aGUgODN4eCBpbW1yIGhlYWQgZmlsZQoKICAgIEZvciBiZXR0ZXIgZm9ybWF0IGFuZCBzdHlsZSwgSSBzdHJlYW1saW5lZCB0aGUgODN4eCBoZWFkIGZpbGVzLAogICAgaW5jbHVkaW5nIGltbWFwXzgzeHguaCBhbmQgbXBjODN4eC5oLiBJbiB0aGUgb2xkIGhlYWQgZmlsZXMsIDEpCiAgICBkdXBsaWNhdGVkIG1hY3JvIGRlZmluaXRpb24gYXBwZWFyIGluIHRoZSBib3RoIGZpbGVzOyAyKSB0aGUgc3RydWN0dXJlCiAgICBvZiBRRSBpbW1yIGlzIGR1cGxpY2F0ZWQgaW4gdGhlIGltbWFwXzgzeHguaCBhbmQgaW1tYXBfcWUuaDsgMykgVGhlCiAgICBtYWNybyBkZWZpbml0aW9uIHB1dCBpbnNpZGUgdGhlIGVhY2ggc3RydWN0dXJlLiBTbywgSSBjbGVhbmVkIHVwIHRoZQogICAgc3RydWN0dXJlIG9mIFFFIGltbXIgZnJvbSBpbW1hcF84M3h4LmgsIGRlbGV0ZWQgdGhlIGR1cGxpY2F0ZWQgc3R1ZmYgYW5kCiAgICBtb3ZlZCB0aGUgbWFjcm8gZGVmaW5pdGlvbiB0byBtcGM4M3h4LmgsIEp1c3QgbGlrZSBNUEM4MjYwLgoKICAgIENIQU5HRUxPRwoKICAgICpzdHJlYW1saW5lIHRoZSA4M3h4IGltbXIgaGVhZCBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGQwMjQ5MmY0M2RiNTQwOGY1YWI5ZjgyM2IwYmE1Nzk2ZTI4ZWYwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDYgMTE6Mzg6MTcgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgVUVDIGRyaXZlciBidWcgb2YgUUUKCiAgICBUaGUgcGF0Y2ggcHJldmVudHMgdGhlIEdDQyB0b29sIGNoYWluIGZyb20gc3RyaXBpbmcgdXNlZnVsIGNvZGUgZm9yCiAgICBvcHRpbWl6YXRpb24uIEl0IHdpbGwgbWFrZSBVRUMgZXRoZXJuZXQgZHJpdmVyIHdvcmthYmxlLCBPdGhlcndpc2UgdGhlCiAgICBVRUMgd2lsbCBmYWlsIGluIHR4IHdoZW4geW91IGFyZSB1c2luZyBnY2M0LnguIGJ1dCB0aGUgZHJpdmVyIGNhbiB3b3JrCiAgICB3aGVuIHVzaW5nIGdjYzMuNC4zLgoKICAgIENIQU5HRUxPRwoKICAgICpQcmV2ZW50IHRoZSBHQ0MgZnJvbSBzdHJpcGluZyBjb2RlIGZvciBvcHRpbWl6YXRpb24sIE90aGVyd2lzZSB0aGUgVUVDCiAgICB3aWxsIHR4IGZhaWxlZCB3aGVuIHlvdSBhcmUgdXNpbmcgZ2NjNC54LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmE1OGU0YzlhOWE5MTdjZTc5NWRkMTZkNGVjOGQ1MTVmOWY3YWEzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxIDIxOjExOjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIEthdG1haSA0NDBTUGUgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSByZWNlbnRseSBhZGRlZCBLYXRtYWkgYm9hcmQgc3VwcG9ydC4gVGhlIGJpZ2dlc3QKICAgIGNoYW5nZSBpcyB0aGUgc3VwcG9ydCBvZiBFQ0MgRElNTSBtb2R1bGVzIGluIHRoZSA0NDBTUChlKSBTUEQgRERSMgogICAgZHJpdmVyLgoKICAgIFBsZWFzZSBub3RlLCB0aGF0IHN0aWxsIHNvbWUgcHJvYmxlbXMgYXJlIGxlZnQgd2l0aCBzb21lIG1lbW9yeQogICAgY29uZmlndXJhdGlvbnMuIFNlZSB0aGUgZHJpdmVyIGZvciBtb3JlIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhjMTIwNDVhM2IwNmM1YjY2NzVkM2ZlMDJmYmM5ZjU0NTk4ODEyOWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMSAwNzowMzoyNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBtaXNzaW5nIGRlZmF1bHQgQ0ZHX1JUQ19CVVNfTlVNICYgQ0ZHX0RUVF9CVVNfTlVNCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjYmM3MDM2NjQ4ZTQ2NTY5N2NhMjk4YmE1MWUwZTc2ZGRhMzUyYTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAyOCAwMToyODo1MyAyMDA3ICswMTAwCgogICAgU0MzOiBmaXggdHlwbyBpbiBkZWZhdWx0IGVudmlyb25tZW50Cgpjb21taXQgZTM0NDU2OGIxYjQ2YWY4NWVjMzJkODE1NTg2ZjkxYmMxMTVkNjIyMwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBGZWIgMjcgMjA6MTU6MzAgMjAwNyArMDMwMAoKICAgIE1DQzIwMDogRml4ZXMgZm9yIHVwZGF0ZSBwcm9jZWR1cmUKCiAgICAtIGZpeCBsb2dpYyBlcnJvciBpbiBpbWFnZSB0eXBlIGhhbmRsaW5nCiAgICAtIG1ha2Ugc3VyZSBmaWxlIHN5c3RlbSBpbWFnZXMgKGNyYW1mcyBldGMuKSBnZXQgc3RvcmVkIGluIGZsYXNoCiAgICAgIHdpdGggaW1hZ2UgaGVhZGVyIHN0cmlwcGVkIHNvIHRoZXkgY2FuIGJlIG1vdW50ZWQgdGhyb3VnaCBNVEQKCmNvbW1pdCA3NDM1NzExNDViMzcxODI3NTdkNGU2ODhhNzc4NjBiMzZlZTc3NTczCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjcgMTQ6MjY6MDQgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCA2MzhkZDE0NThiYmRjMmE1NWQ0YjllMjVjNWM0ZTFmODM4YTVkYzcyCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAxMjo0MDoxNiAyMDA3ICswMzAwCgogICAgTUNDMjAwIHVwZGF0ZSAtIGFkZCBMQ0QgUHJvZ3Jlc3MgSW5kaWNhdG9yCgpjb21taXQgNmM3Y2FjOGM0ZmNlMGVhMmJmOGUxNWVkODY1OGQ4Nzk3NDE1NWI0NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMiAwNzo0MzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBnZXRfZGV2KCkgbm93IHVuY29uZGl0aW9uYWxseSB1c2VzIG1hbnVhbCByZWxvY2F0aW9uCgogICAgU2luY2UgdGhlIHJlbG9jYXRpb24gZml4IGlzIG5vdCBpbmNsdWRlZCB5ZXQgYW5kIHdlJ3JlIG5vdCBzdXJlIGhvdwogICAgaXQgd2lsbCBiZSBhZGRlZCwgdGhpcyBwYXRjaCByZW1vdmVzIGNvZGUgdGhhdCByZXF1aXJlZCByZWxvY2F0aW9uCiAgICB0byBiZSBmaXhlZCBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4Mjc0ZWMwYmQwMWQyZmViMmM3ZjA5NWViYTc4ZDQyZWEwMDk3OThiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIyIDA3OjQwOjIzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBzeXN0ZW1hY2UgZHJpdmVyIHRvIHNlbGVjdCA4ICYgMTZiaXQgbW9kZQoKICAgIEFzIHN1Z2dlc3RlZCBieSBHcmFudCBMaWtlbHkgdGhpcyBwYXRjaCBlbmFibGVzIHRoZSBYaWxpbnggU3lzdGVtQUNFCiAgICBkcml2ZXIgdG8gc2VsZWN0IDggb3IgMTZiaXQgbW9kZSB1cG9uIHN0YXJ0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhMTk3YjJmZTQ5ZDZmYTAzOTc4ZTYwYWYyMzk0ZWZlOWM3MGI1MjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIxIDE2OjUyOjMxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggdjNdIEFkZCBzeW5jIHRvIGVuc3VyZSBmbGFzaF93cml0ZV9jbWQgaXMgZnVsbHkgZmluaXNoZWQKCiAgICBTb21lIENQVXMgbGlrZSBQUEMsIEJMQUNLRklOIG5lZWQgc3luYygpIHRvIGVuc3VyZSBjZmkgZmxhc2ggd3JpdGUgY29tbWFuZAogICAgaXMgZnVsbHkgZmluaXNoZWQuIFRoZSBzeW5jKCkgaXMgZGVmaW5lZCBpbiBlYWNoIENQVSdzIGlvLmggZmlsZS4gRm9yCiAgICB0aG9zZSBDUFVzIHdoaWNoIGRvIG5vdCBuZWVkIHN5bmMgZm9yIG5vdywgYSBkdW1teSBzeW5jKCkgaXMgZGVmaW5lZCBpbgogICAgdGhlaXIgaW8uaCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGEwNDk5NWM3ZGM2NzcyMDEzYTlhMGRjNWM3NjdmMTkwYzQwMjQ3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAyMSAxMzo0NDozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggcHJvYmxlbSBpbiBzeXN0ZW1hY2UgZHJpdmVyIChhY2Vfd3JpdGV3IGluc3RlYWQgb2YgYWNlX3dyaXRlKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NTFiYjU3MTA3ZDc4OTc4YWUwOGU2OTdjM2RlYmE4MTZmNWJlMDkxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEzOjIxOjU3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCByZWxvY2F0aW9uIHByb2JsZW0gd2l0aCAibmV3IiBnZXRfZGV2KCkgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlICJuZXciIGdldF9kZXYoKSBmdW5jdGlvbiBmb3IgYmxvY2sgZGV2aWNlcwogICAgaW50cm9kdWNlZCBieSBHcmFudCBMaWtlbHkgdG8gYmUgdXNlZCBvbiBzeXN0ZW1zIHRoYXQgc3RpbGwgc3VmZmVyCiAgICBmcm9tIHRoZSByZWxvY2F0aW9uIHByb2JsZW1zIChtYW51YWwgcmVsb2NhdGlvbiBuZWVkZSBiZWNhdXNlIG9mCiAgICBwcm9ibGVtcyB3aXRoIGxpbmtlciBzY3JpcHQpLgoKICAgIEhvcGVmdWxseSB3ZSBjYW4gcmVzb2x2ZSB0aGlzIHJlbG9jYXRpb24gaXNzdWUgc29vbiBmb3IgYWxsIHBsYXRmb3JtCiAgICBzbyB3ZSBkb24ndCBuZWVkIHRoaXMgYWRkaXRpb25hbCBjb2RlIGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ5M2UyMjEyZjk2MjY2OGIzZGNlMDkxZmY1ZWRjMzNmMjM0N2ZlMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MTc6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFN5c3RlbUFDRSBkcml2ZXIgZm9yIDE2Yml0IGFjY2VzcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIHByb2JsZW1zIHdoZW4gdGhlIFhpbGlueCBTeXN0ZW1BQ0UgZHJpdmVyCiAgICBpcyB1c2VkIHdpdGggMTZiaXQgYWNjZXNzIG9uIGFuIGJpZyBlbmRpYW4gcGxhdGZvcm0gKGxpa2UgdGhlCiAgICBBTUNDIEthdG1haSkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3NGJiN2I4OGZlOWI0NjQ4ZTEyODhhMzg3YWYyZTMxMDE0YTcyZjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MTU6NDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2xlYW4gdXAgS2F0bWFpICg0NDBTUGUpIGxpbmtlciBzY3JpcHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDc0NWFjYWExYTYwM2I2N2Y2YjliNzk3MDM2NWViYWRkN2Q2NTg2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo1NzowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgS2F0bWFpICg0NDBTUGUpIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRjMDE4ZWNlMTNlZmZjNjg5ZTQ3NDc5ZWE5ZWJmMWM5OGE1MDdmNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo1MToyNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzIGZvciBSVEMgJiBEVFQKCiAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHRvIHRoZSBkZXNpcmVkIEkyQyBidXMgd2hlbiB0aGUgZGF0ZS9kdHQKICAgIGNvbW1hbmRzIGFyZSBjYWxsZWQuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlCiAgICBDRkdfUlRDX0JVU19OVU0gYW5kL29yIENGR19EVFRfQlVTX05VTSBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MDM3ZWQzYjYzOTIzY2ZjZWMyN2Y3ODRhODkwNTdjM2NiYWJjZWRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjQzOjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogQWRkIDQ0MFNQKGUpIEREUjIgU1BEIERJTU0gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgRERSMiBjb250cm9sbGVyIHVzZWQgb24gdGhlCiAgICA0NDBTUCBhbmQgNDQwU1BlLiBJdCBpcyB0ZXN0ZWQgb24gdGhlIEthdG1haSAoNDQwU1BlKSBldmFsCiAgICBib2FyZCBhbmQgd29ya3MgZmluZSB3aXRoIHRoZSBmb2xsb3dpbmcgRElNTSBtb2R1bGVzOgoKICAgIC0gQ29yc2FpciBDTTJYNTEyLTU0MDBDNCAoNTEyTUJ5dGUgcGVyIERJTU0pCiAgICAtIEtpbmdzdG9uIFZhbHVlUkFNIEtWUjY2N0QyTjUvNTEyICg1MTJNQnl0ZSBwZXIgRElNTSkKICAgIC0gS2luZ3N0b24gVmFsdWVSQU0gS1ZSNjY3RDJONUsyLzJHICgxR0J5dGUgcGVyIERJTU0pCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgdGhlIG5pY2UgZnVuY3Rpb25hbGl0eSB0byBkeW5hbWljYWxseQogICAgY3JlYXRlIHRoZSBUTEIgZW50cmllcyBmb3IgdGhlIFNEUkFNICh0bGIuYykuIFNvIHdlIHNob3VsZAogICAgbmV2ZXIgcnVuIGludG8gc3VjaCBwcm9ibGVtcyB3aXRoIHdyb25nICh0b28gc2hvcnQpIFRMQgogICAgaW5pdGlhbGl6YXRpb24gYWdhaW4gb24gdGhlc2UgcGxhdGZvcm1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmQ4MzBjOTgzMDM3OTA0NWY1ZGFhOWY1NDJhYzFjOTkwYzcwMDY4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjM1OjQyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogU3BsaXQgNHh4IFNQRCBTRFJBTSBpbml0IHJvdXRpbmVzIGludG8gMiBmaWxlcwoKICAgIFNpbmNlIHRoZSBleGlzdGluZyA0eHggU1BEIFNEUkFNIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzIGZvciB0aGUKICAgIDQwNSBTRFJBTSBjb250cm9sbGVyIGFuZCB0aGUgNDQwIEREUiBjb250cm9sbGVyIGRvbid0IGhhdmUgbXVjaCBpbgogICAgY29tbW9uIHRoaXMgcGF0Y2ggc3BsaXRzIGJvdGggZHJpdmVycyBpbnRvIGRpZmZlcmVudCBmaWxlcy4KCiAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgNDQwIEREUjIgY29udHJvbGxlciBzdXBwb3J0ICg0NDBTUC9lKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzliMmQwYmIyZWFlMDk2MDI0NDhmN2E3Y2I1NjUzMGQyZjMxZTZjNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDoyNzowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHg6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMgb24gdGhlIFBQQzR4eAogICAgcGxhdGZvcm1zLiBEZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlCiAgICB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCgogICAgSXQgYWxzbyBtZXJnZXMgdGhlIDQwNSBhbmQgNDQwIGkyYyBoZWFkZXIgZmlsZXMgaW50byBvbmUgY29tbW9uCiAgICBmaWxlIDR4eF9pMmMuaC4KCiAgICBBbHNvIHRoZSA0eHggaTJjIHJlc2V0IHByb2NlZHVyZSBpcyByZXdvcmtlZCBzaW5jZSBJIGV4cGVyaWVuY2VkCiAgICBzb21lIHByb2JsZW1zIHdpdGggdGhlIGZpcnN0IGFjY2VzcyBvbiB0aGUgNDQwU1BlIEthdG1haSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWI4NjdhNzYyMzhmYjM4ZTk1MmMzNzg3MWIxNmQwZDdmZDYxYzk1ZgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTo0NSAyMDA3ICswMTAwCgogICAgW1BBVENIIDlfOV0gVXNlICJ2b2lkICoiIG5vdCAidW5zaWduZWQgbG9uZyAqIiBmb3IgYmxvY2sgZGV2IHJlYWRfd3JpdGUgYnVmZmVyIHBvaW50ZXJzCgogICAgQmxvY2sgZGV2aWNlIHJlYWQvd3JpdGUgaXMgYW5vbnltb3VzIGRhdGE7IHRoZXJlIGlzIG5vIG5lZWQgdG8gdXNlIGEKICAgIHR5cGVkIHBvaW50ZXIuICB2b2lkICogaXMgZmluZS4gIEFsc28gYWRkIGEgaG9vayBmb3IgYmxvY2tfcmVhZCBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTM3NThmYTIwZTkzNWNjODdlZWIwNTE5ZWQzNjVkZjc1M2E2ZjI4OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTozOCAyMDA3ICswMTAwCgogICAgW1BBVENIIDhfOV0gQWRkIGJsb2NrX3dyaXRlIGhvb2sgdG8gYmxvY2tfZGV2X2Rlc2NfdAoKICAgIFByZXBhcmF0aW9uIGZvciBmdXR1cmUgcGF0Y2hlcyB3aGljaCBzdXBwb3J0IGJsb2NrIGRldmljZSB3cml0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY0ODUyZWJlNmNhOTQ2YTUwOTY2N2ViNjhiZTQyMDI2ZjgzN2JlNzYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA3XzldIFJlcGxhY2UgYWNlX3JlYWR3X2FjZV93cml0ZWIgZnVuY3Rpb25zIHdpdGggbWFjcm9zCgogICAgUmVnaXN0ZXIgcmVhZC93cml0ZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHdyYXBwZWQgaW4gYSBmdWxsIGZ1bmN0aW9uLiAgVGhlCiAgICBwYXRjaCByZXBsYWNlcyB0aGVtIHdpdGggbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAzYThjZTlhZjZmY2I1NzQ0YTc4NTFiNDQ0MGMwNzY4OGFjYzQwODQ0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjIzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNl85XSBNb3ZlIGNvbW1vbl9jbWRfYWNlLmMgdG8gZHJpdmVyc19zeXN0ZW1hY2UuYwoKICAgIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBub3QgYSBjb21tYW5kOyBpdCBpcyBhIGRldmljZSBkcml2ZXIuICBQdXQgaXQgaW4KICAgIHRoZSBjb3JyZWN0IHBsYWNlLglUaGVyZSBhcmUgemVybyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhpcyBwYXRjaCwgaXQKICAgIG9ubHkgbW92ZXMgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk4NDYxOGYzZTc3OTRjNzgzZWM4ZDE1MTFlNzRjNmVlMmQ2OWJmZTQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA1XzldIFdoaXRlc3BhY2UgZml4dXAgb24gY29tbW9uX2NtZF9hY2UuYyAodXNpbmcgTGluZGVudCkKCiAgICBUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIG9mIGFkZGl0aW9uYWwgY2hhbmdlcyB0byB0aGUgc3lzYWNlIGRyaXZlci4KICAgIE1heSBhcyB3ZWxsIHRha2UgdGhpcyBvcHBvcnR1bml0eSB0byBmaXh1cCB0aGUgaW5jb25zaXN0ZW50IHdoaXRlc3BhY2Ugc2luY2UKICAgIHRoaXMgZmlsZSBpcyBhYm91dCB0byB1bmRlcmdvIG1ham9yIGNoYW5nZXMgYW55d2F5LgoKICAgIFRoZXJlIGFyZSB6ZXJvIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLiAgSXQgb25seSBjbGVhbnMgdXAgdGhlCiAgICB0aGUgd2hpdGVzcGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODBiYTk4MWQ5NDA0NzFmZTdlNTM5ZTY0ZmEzZDJiZDgwMDAyYmVkYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTowNyAyMDA3ICswMTAwCgogICAgW1BBVENIIDRfNF0gUmVtb3ZlIGxvY2FsIGltcGxlbWVudGF0aW9uIG9mIGlzcHJpbnQoKSBpbiBmdF9idWlsZC5jCgogICAgaXNwcmludCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gY3R5cGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBjOTVjNDI4MGQ3NTFjYTA3OGMyZmY1ODIyOGQyZjJiNDRjY2YwNjAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjAwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggM185XSBNb3ZlIGJ1ZmZlciBwcmludCBjb2RlIGZyb20gbWQgY29tbWFuZCB0byBjb21tb24gZnVuY3Rpb24KCiAgICBQcmludGluZyBhIGJ1ZmZlciBpcyBhIGRhcm4gdXNlZnVsIHRoaW5nLiAgTW92ZSB0aGUgYnVmZmVyIHByaW50IGNvZGUKICAgIGludG8gcHJpbnRfYnVmZmVyKCkgaW4gbGliX2dlbmVyaWMvCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk5YjBmMGZkM2ZiZjI1NzJhZTFhNzcyM2RkOTBjZmZjOGU4NTEzMGEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDQ6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAyXzRdIFVzZSBjb25maWcuaCwgbm90IHhwYXJhbWV0ZXJzLmgsIGZvciB4aWxpbnggdGFyZ2V0cwoKICAgIENoYW5nZSB0aGUgeGlsaW54IGRldmljZSBkcml2ZXJzIGFuZCBib2FyZCBjb2RlIHRvIGluY2x1ZGUgY29uZmlnLmgKICAgIGluc3RlYWQgb2YgeHBhcmFtZXRlcnMuaCBkaXJlY3RseS4JY29uZmlnLmggYWx3YXlzIGluY2x1ZGVzIHRoZQogICAgY29ycmVjdCB4cGFyYW1ldGVycyBmaWxlLiAgVGhpcyBjaGFuZ2UgcmVkdWNlcyB0aGUgcG9zaWJpbGl0eSBvZgogICAgaW5jbHVkaW5nIHRoZSB3cm9uZyBmaWxlIHdoZW4gYWRkaW5nIGEgbmV3IHhpbGlueCBib2FyZCBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczNWRkOTdiMWIyMGU3NzdkMDU5YzdiMzg5ZmU5ZDcwY2QzZjgwYzcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDQ6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAxXzRdIE1lcmdlIGNvbW1vbiBnZXRfZGV2KCkgcm91dGluZXMgZm9yIGJsb2NrIGRldmljZXMKCiAgICBFYWNoIG9mIHRoZSBmaWxlc3lzdGVtIGRyaXZlcnMgZHVwbGljYXRlIHRoZSBnZXRfZGV2IHJvdXRpbmUuICBUaGlzIGNoYW5nZQogICAgbWVyZ2VzIHRoZW0gaW50byBhIHNpbmdsZSBmdW5jdGlvbiBpbiBwYXJ0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjVmY2MzYzIwYjY1NTU0ZTk4YTE2NTU0MmMzNmVlMGM2MTBhMmQ4MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDE5IDIzOjA5OjUxIDIwMDcgKzAxMDAKCiAgICBNQ0MyMDA6IFNvZnR3YXJlIFVwZGF0ZXI6IGFsbG93IGJvdGggInJhbWRpc2siIGFuZCAiZmlsZXN5c3RlbSIgdHlwZXMKICAgIGFzIHJvb3QgZmlsZSBzeXN0ZW0gaW1hZ2VzLgoKY29tbWl0IDQ4OWM2OTZhZTcyMTEyMTg5NjFkMTU5ZTQzZTcyMmQ3NGMzNmZjYmMKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgRmViIDE0IDE0OjMwOjI4IDIwMDcgKzAzMDAKCiAgICBNQ0MyMDA6IEV4dGVuc2lvbnMgdG8gU29mdHdhcmUgVXBkYXRlIE1lY2hhbmlzbQoKICAgIFVwZGF0ZSAvIGV4dGVuZCBTb2Z0d2FyZSBVcGRhdGUgTWVjaGFuaXNtIGZvciBNQ0MyMDAgYm9hcmQ6CgogICAgLSBBZGQgc3VwcG9ydCBmb3Igcm9vdGZzIGltYWdlIGFkZGVkLiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgICAgICJyb290ZnNfc3QiIGFuZCAicm9vdGZzX25kIiBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdAogICAgICB2YWx1ZXMgb2YgdGhlIGltYWdlIHN0YXJ0IGFuZCBlbmQuCiAgICAtIFJlbW92ZSBleGNlc3NpdmUga2V5IGNoZWNrIGNvZGUuCiAgICAtIENvZGUgY2xlYW51cC4KCmNvbW1pdCA0YmUyM2ExMmYyM2YxMzcyNjM0ZWRjMzIxNTEzN2IwOTc2OGI3OTQ5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRmViIDE5IDA4OjIzOjE1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhIEVCQyBjb25maWd1cmF0aW9uIChOT1IgRkxBU0gpCgogICAgQXMgc3BvdHRlZCBieSBNYXR0aGlhcyBGdWNocywgdGhlIFJFQURZIGlucHV0IHNob3VsZCBub3QgYmUKICAgIGVuYWJsZWQgZm9yIHRoZSBOT1IgRkxBU0ggb24gdGhlIFNlcXVvaWEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI2MDVlOTBiZjY3NmQ0ODEyM2FmZTU3MTlhODQ2ZDJiNTJiMjRhYWMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTYgMDc6NTc6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkZWQgc3VwcG9ydCBmb3IgdGhlIGp1cGl0ZXIgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNDk3ZDAxMmU1YmUwMTk0ZTEwODQwNzNkMDA4MWViMWE4NDQ3OTZiMgpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAxMiAxMzoxMTo1MCAyMDA3ICswMTAwCgogICAgTFBDMjI5MjogcGF0Y2ggZnJvbSBTaWVtZW5zLgoKY29tbWl0IGIwYjFhOTIwYWViZWFkMGQ0NDE0NmU3MzY3NmFlOWQ4MGZmZmM4ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBGZWIgMTAgMDg6NDk6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIG1pc3NpbmcgcDNteC5oIGZpbGUgdG8gcmVwb3NpdG9yeSAodXBzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1M2Q0YTQ5ODNmYjliM2FlNWY3YjJmMTBjNTk5YWNhMmIxYjQwMzRhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiA5IDEwOjQ1OjQyIDIwMDcgKzAxMDAKCiAgICBbTW90aW9uLVBST10gUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIE1vdGlvbi1QUk8gYm9hcmQuCgpjb21taXQgNWE3NTNmOThjNmEwMWJkMWM2MWE5YTNmOTVlODMyOWEzNWY2Mjk5NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiA3IDE2OjUxOjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBzb21lIEFNQ0MgNHh4IGJvYXJkIGNvbmZpZyBmaWxlcyAoc2V0IGluaXRyZF9oaWdoKQoKICAgIFNvbWUgYm9hcmRzIHRoYXQgY2FuIGhhdmUgbW9yZSB0aGFuIDc2OE1CeXRlcyBvZiBTRFJBTSBuZWVkIHRvCiAgICBzZXQgImluaXRyZF9oaWdoIiwgc28gdGhhdCB0aGUgaW5pdHJkIGNhbiBiZSBhY2Nlc3NlZCBieSB0aGUKICAgIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzM3MmNhNjgyMjc5MzBkMDNjZmZhNTQ4MzEwNTI0Y2FkNWI5NjczMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyIDEyOjQ0OjIyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENvcnJlY3RseSBkaXNwbGF5IFBDSSBhcmJpdGVyIGVuLS9kaXNhYmxlZCBvbiBzb21lIDR4eCBib2FyZHMKCiAgICBQcmV2aW91c2x5IHRoZSBzdHJhcHBpbmcgRENSL1NEUiB3YXMgcmVhZCB0byBkZXRlcm1pbmUgaWYgdGhlIGludGVybmFsIFBDSQogICAgYXJiaXRlciBpcyBlbmFibGVkIG9yIG5vdC4gVGhpcyBzdHJhcHBpbmcgYml0IGNhbiBiZSBvdmVycmlkZGVuLCBzbyBub3cKICAgIHRoZSBjdXJyZW50IHN0YXR1cyBpcyByZWFkIGZyb20gdGhlIGNvcnJlY3QgRENSL1NEUiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmFhNTRmNjUxYTQyZDE5ODY3MzMxOGYwN2EyMGM4OWE0M2U0ZDE5NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyIDEyOjQyOjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBjb25maWd1cmF0aW9uIG91dHB1dCBvZiBTeWNhbW9yZSwgWWVsbG93c3RvbmUgJiBSYWluaWVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIzNzQ0ZDZiNWJmMTc1OTJlYjZhMGVmNGYzMThmNjA4OWY1NTk5M2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMSAxMzoyMjo0MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBSZW1vdmUgUENJLVBOUCBjb25maWd1cmF0aW9uIGZyb20gU2VxdW9pYS9SYWluaWVyIGNvbmZpZyBmaWxlCgogICAgV2hlbiBQQ0kgUE5QIGlzIGVuYWJsZWQgdGhlIHBjaSBwbnAgY29uZmlndXJhdGlvbiByb3V0aW5lIGlzIGNhbGxlZAogICAgd2hpY2ggc2V0cyB0aGUgUENJX0NBQ0hFX1NJWkVfTElORSB0byA4LiBUaGlzIHNlZW1zIHRvIGdlbmVyYXRlIHNvbWUKICAgIHByb2JsZW1zIHdpdGggc29tZSBQQ0kgY2FyZHMuIEZvciBub3cgZGlzYWJsZSB0aGUgUENJIFBOUCBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOTAyZmFkYWRlM2JlNzY1OTQ2N2U4ZDA3NDA0OGM2YjcwNjhmNWMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjU2OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSA0NDBFUHgvNDQwR1J4IGNwdSBkZXRlY3Rpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDVlYTI4N2IwMmE2OTQ1YzM5Nzc0MTBlMzY0YTg3OWRkMWE1NTVjOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjozODowNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgZXNkIGNwY2k1MjAwIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDhiN2QxZjBhYjdkN2M0ZmUzMTYwYmJmNzRhN2U5NjkwZDlmM2EzYWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6Mzc6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGVzZCBtZWNwNTIwMCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFJlaW5oYXJkIEFybHQgPHJlaW5oYXJkLmFybHRAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MWE0ZTVmZGE4YjYwMDQ0YWI5ZjQ2MDY5ZmExY2ZhMjZiZGQwN2ZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDEyOjM4OjUwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSB1bm5lY2Nlc3NhcnkgeWVsbG93c3RvbmUgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTgwMjU5NGI2ZmExYjE2NjMwODgyMGMyNzZiOTZkYzBkN2NjNzMxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAxNzowNjoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU2VxdW9pYSAoNDQwRVB4KSBjb25maWcgZmlsZQoKICAgIFRoZSBjb25maWcgZmlsZSBub3cgaGFuZGxlcyB0aGUgMm5kIHRhcmdldCwgdGhlIFJhaW5pZXIgKDQ0MEdSeCkKICAgIGV2YWx1YXRpb24gYm9hcmQgYmV0dGVyLiBBZGRpdGlvbmFsbHkgdGhlIFBQQyBpbnB1dCBjbG9jayB3YXMKICAgIGFkanVzdGVkIHRvIG1hdGNoIHRoZSBjb3JyZWN0IHZhbHVlIG9mIDMzLjAgTUh6LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MDAyMDBjNjdlNzNiODM3NTE0MThhYmU3ODE1ODQwZGNhOGZkNmNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE3OjA0OjE5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIE1lcmdlIFlvc2VtaXRlICYgWWVsbG93c3RvbmUgYm9hcmQgcG9ydHMKCiAgICBOb3cgdGhlIEFNQ0MgZXZhbCBib2FyZHMgWW9zZW1pdGUgKDQ0MEVQKSBhbmQgWWVsbG93c3RvbmUgKDQ0MEdSKQogICAgc2hhcmUgb25lIGNvbmZpZyBmaWxlIGFuZCBhbGwgYm9hcmQgc3BlY2lmaWMgZmlsZXMuIFRoaXMgd2F5IHdlCiAgICBkb24ndCBoYXZlIHRvIG1haW50YWluIHR3byBkaWZmZXJlbnQgc2V0cyBvZiBmaWxlcyBmb3IgbmVhcmx5CiAgICBpZGVudGljYWwgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmJmNWVhZTMyMmY1ZjFmNjQyN2VjYzNhYzEzYTBjYjdkYmE4YWQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE1OjAxOjQ5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBTQ1BVIChQRE5CMyB2YXJpYW50KSBib2FyZAoKICAgIFNDUFUgZG9lc24ndCB1c2UgcmVkdW5kYW50IGVudmlyb25tZW50IGluIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MzA0NDMwZWQ2NDJlYThmYTE1YzllNWFmOTY1YWMyZTAzM2VlYzQ1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDEyOjUxOjA3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIGFscHI6IFVwZGF0ZSBhbHByIGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY4ZGI4NGYxMzJiMWUzMzVmMjBmOTYxMzhhMWYwOWVkOTdiMDg2NjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAwMDo1MDo0MCAyMDA3ICswMTAwCgogICAgTFBDMjI5MiBTT0RJTU0gcG9ydCBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA2YmQyNDQ3ZWU0N2VlMjNjMThkMmIzYzdjY2Q1YTIwZjc2MjZmNWIzCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDI0IDEyOjE2OjU2IDIwMDcgKzAxMDAKCiAgICBBZGQgcG9ydCBmb3IgdGhlIGxwYzIyOTJzb2RpbW0gZXZhbHVhdGlvbiBib2FyZCBmcm9tIEVtYmVkZGVkQXJ0aXN0cwoKY29tbWl0IDJkYWYwNDZiYTYyN2Y4NWY0NDE5NTgxNTc3ODE0MDAzOTYzNjI0NGUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE3OjIyOjA2IDIwMDcgKzAxMDAKCiAgICBbaURNUl0gQWRkIE1URCBhbmQgSkZGUzIgc3VwcG9ydCwgYWxzbyBhZGQgZGVmYXVsdCBwYXJ0aXRpb24gZGVmaW5pdGlvbi4KCmNvbW1pdCBmN2RiMzMxMDFmYmM5YzhmMGExMDczOGNlODcwMzQ4NzVhMTdhZWI5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNDoyMToxNCAyMDA3ICswMTAwCgogICAgW2lETVJdIEZsYXNoIGRyaXZlciBvbiBpbml0aWFsaXNhdGlvbiB3cml0ZS1wcm90ZWN0cyBzb21lIHNlY3RvcnMsCiAgICBjdXJyZW50bHkgc2VjdG9ycyAwLTMuIFNlY3RvciAzIGRvZXMgbm90IG5lZWQgdG8gYmUgcHJvdGVjdGVkLCB0aG91Z2gKICAgIChVLWJvb3Qgb2NjdXBpZXMgc2VjdG9ycyAwLTEgYW5kIHRoZSBlbnZpcm9ubWVudCBzZWN0b3IgMikuIFRoaXMgY29tbWl0CiAgICBmaXhlcyB0aGlzLCBpLmUuLCBvbmx5IHNlY3RvcnMgMC0yIGFyZSBwcm90ZWN0ZWQuCgpjb21taXQgMGVkNDdiYjExOWNkMmM0YzE2ZWRiMjU0ODc4OTE0OGY5ZTZkYzlkZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTQ6MTE6MjIgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBVc2luZyBNSUktcmVsYXRlZCBjb21tYW5kcyBvbiBpRFJNIGJvYXJkIGRvZXNuJ3Qgd29yayBub3cgKGUuZy4sCiAgICAibWlpIGRldmljZSIgcmVzdWx0cyBpbiAiVW5leHBlY3RlZCBleGNlcHRpb24iKS4gRml4aW5nIHRoaXMgcHJvcGVybHkKICAgIHJlcXVpcmVzIHNvbWUgY2xlYW4tdXAgaW4gdGhlIEZFQyBkcml2ZXJzIGluZnJhc3RydWN0dXJlIGZvciBDb2xkRmlyZSwgc28KICAgIHRoaXMgY29tbWl0IGRpc2FibGVzIE1JSSBjb21tYWRzIGZvciBub3cuCgpjb21taXQgMzYzZDFkOGY5Yzk5YjYzZGFlZjgxZjU5ODVjYWIzZmMwMGVkZGU1YwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTM6MjU6MjIgMjAwNyArMDEwMAoKICAgIFtDb2xkRmlyZSBNQ0Y1MjcxIGZhbWlseV0gQWRkIENQVSBkZXRlY3Rpb24gYmFzZWQgb24gdGhlIHZhbHVlIG9mIENoaXAKICAgIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyIChDSVIpLgoKY29tbWl0IGZkZWYzODg3NTg1MDY3NjVkNGQ2YTcxNTVjOGYxNTg0YzYzZmY1ODEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMjIgMTM6MTk6MjEgMjAwNyArMDgwMAoKICAgIHVzZSAgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSBkZWZpbmUgaW5zdGVhZCBvZiBkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9TV0FQCiAgICBUaGUgcGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPiBvbiBKYW4sIDE5LCAyMDA3CiAgICBmaXhlcyBjZmlfZHJpdmVyIGJ1ZyBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQuIFRoZSBkZWZhdWx0IGNmaV9kcml2ZXIgY2FuIHN1cHBvcnQKICAgIG1wYzc0NDhocGMyIGJvYXJkLgoKY29tbWl0IGE0MDEyMzk2NjQ1NTMzYWVmMjE4MzU0ZWViYTc1NGRmZjBkZWFjZTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAyMzowODozOSAyMDA3ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGY1MzliN2JhN2Q3ZWY2ZGQxODdjODIwOTYwOTAwMWNiMWNkOTVlMzkKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTkgMTk6NTc6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU0MzIGJvYXJkOiBhZGRlZCBDRkdfQ01EX0FVVE9TQ1JJUFQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZDBiNmUxNDA4N2RkZDg3ODlmMjI0YTQ4ZTFkMzNmMmE1ZGY0ZDE2NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAxODowNToyNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDRkk6IGRlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBIGZvciB0aGUgQ0ZJLUZsYXNoIGRyaXZlcgoJCSBpZiB5b3UgbXVzdCBzd2FwIHRoZSBieXRlcyBiZXR3ZWVuIHJlYWRpbmcvd3JpdGluZy4KCQkgKE5lZWRlZCBmb3IgdGhlIFNDMyBib2FyZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5ZDhkNWE1YmZiNjQ3NjhmMjlhMGNiNDdmYzM3Y2Q2ZjRjNDBlMjc2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDE2OjA1OjQ3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBQcm9kcml2ZSBTQ1BVIChQRE5CMyB2YXJpYW50KSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMDU3ZDc1OGUzZTg3NGNiZTdmMjQ3NDVkMGNjZThjMWNiNmMyMDdlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjU0OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBQM014IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQxNjdhMzZjMjllZTk0NmI3Mjc0NjVkYjVjMDE0NzQ2YTA4ZTk3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMTo0ODoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgbWlzc2luZyBUYWlzaGFuIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNiNDgyMDcyNWU5ZmM0MDljNWNiYzhlODMwNTRhNmVkNTIyZDIxMTEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6Mjg6NTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4OiBDb21waWxlcndhcm5pbmdzIGZvciBTQzMgYm9hcmQuCgkJIFRoZSBFQkMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciBpcyBub3cgYnkgQ0ZHX0VCQ19DRkcgZGVmaW5hYmxlCgkJIEFkZGVkIEpGRlMyIHN1cHBvcnQgZm9yIHRoZSBTQzMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNWZiNjkyY2FlNTdkMTcxMGM4ZjUyYTQyN2NmN2YzOWEzNzM4M2ZjZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMDoyNTozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgQU1DQyBUYWlzaGFuIFBQQzQ0MEdYIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmQzZTAxMDcyMzVhYTBlNmE2ZGNiNzdmOTg4NDQ5NzI4MGJmODVhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDE2IDE4OjMwOjUwIDIwMDcgKzAxMDAKCiAgICBSYW5hbWUgc29saWRjYXJkMyBpbnRvIHNjMzsgYWRkIHJlZHVuZGFudCBlbnYgZm9yIHNjMwoKY29tbWl0IDFiYmJiZGQyMGZjZWM5OTMzNjk3MDAwZGNmNTVmZjc5NzI2MjI1OTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNiAxMjo0NjozNSAyMDA3ICswMTAwCgogICAgVXBkYXRlIGRlZmF1bHQgZW52aXJvbm1lbnQgZm9yIFNvbGlkY2FyZDMKCmNvbW1pdCA1YTVjNTY5ODZhOWNjZjcxNjQyYzhiNjM3NGViMTg0ODdiMTVmZWNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSmFuIDE1IDA5OjQ2OjI5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCA0NDBTUGUgcmV2IEIgZGV0ZWN0aW9uIGZyb20gcHJldmlvdXMgcGF0Y2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQ0M2QzMTQxMGM1NzFlZThmOTcwZGE4MTlhNDRkNjk4ZmRkNmIxZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxNCAxMzozNTozMSAyMDA3ICswMTAwCgoJW0ZJWF0gY29ycmVjdCBJMkMgV3JpdGVzIGZvciB0aGUgTE04MSBTZW5zb3IuCgoJU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMGJiYTU0NTI4MzVmMTlhNjEyMDRlZGNkYTNhNTgxMTJmZDhlMjIwOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDExOjE3OjEwIDIwMDcgKzAxMDAKCiAgICBVbmRvIGNvbW1pdCAzMDMzZWJiMjogcmVzZXQgY29tbWFuZCBkb2VzIG5vdCB0YWtlIGFueSBhcmd1bWVudHMKCiAgICBIYWl5aW5nIFdhbmcncyBtb2RpZmljYXRpb24gdG8gdGhlIHJlc2V0IGNvbW1hbmQgd2FzIGJyb2tlbiwgdW5kbyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk1OTgxNzc4Y2ZmMDAzOGZkOTk0MTA0NGQ2YTNlZGE4MTBlMzMyNTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDg6MDE6MDMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIDQ0MFNQKGUpIGNwdSByZXZpc2lvbnMKCiAgICBBbHNvIGRpc3BsYXkgZW5hYmxlZC9kaXNhYmxlZCBSQUlEIDYgc3VwcG9ydCBmb3IgNDQwU1AvNDQwU1BlIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3N2RkYzViOWFmYjMyNTI2MmZkODg3NTJiYTQzMGExZGRlZDFmMGM3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU5OjU2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBZZWxsb3dzdG9uZSAoNDQwR1IpIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgQWxzbyB0aGUgRUJDIGluaXRpYWxpc2luZyBpcyBub3cgZG9uZSB2aWEgZGVmaW5lcyBpbiB0aGUgYm9hcmQgY29uZmlnCiAgICBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmFkZmYzNjJjMmMwMTQxZmY4YTgxMGQ0MmE3ZTQ3OGY3NzkxMzBmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU5OjE5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBZb3NlbWl0ZSAoNDQwRVApIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgQWxzbyB0aGUgRUJDIGluaXRpYWxpc2luZyBpcyBub3cgZG9uZSB2aWEgZGVmaW5lcyBpbiB0aGUgYm9hcmQgY29uZmlnCiAgICBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMGI5ZWE4YzhhMjk0ZGU2YTUzNTBhZTYzODg3OWQyNGI1YjcwOWQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU3OjUxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhICg0NDBFUHgpIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhNDNiYTE4ZTkxMDIwNmVmODA2M2U0YjIyZDI4MjYzMGJmZjNmZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTEgMTU6NDQ6NDQgMjAwNyArMDEwMAoKCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBTT0xJRENBUkQgSUlJIGJvYXJkIGZyb20gRXVyb2Rlc2lnbgoKCVNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDZhYmFlZTQyNjIxYzA3ZTgxYTJjZDE4OWFkNDM2OGI1ZThjNTAyODAKQXV0aG9yOiBSZWluaGFyZCBUaGllcyA8UmVpbmhhcmQuVGhpZXNAd2ViLmRlPgpEYXRlOglXZWQgSmFuIDEwIDE0OjQxOjE0IDIwMDcgKzAxMDAKCiAgICBBZGp1c3RlZCBkZWZhdWx0IGVudmlyb25tZW50IGZvciBjYW01MjAwIGJvYXJkLgoKY29tbWl0IGJhYjVhOTBkNGNjYzFhNDZhODEyN2I4NjdmYTU5MDI4Y2M2MjNhZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxMCAxNTozNTo1MiAyMDA3ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDc4N2ZhMTU4NjBhNTc4MzNlNTBiZDMwNTU1MDc5YTljZDRlNTE5YjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxMCAwMToyODozOSAyMDA3ICswMTAwCgogICAgRml4IGF1dG9fdXBkYXRlIGZvciBNQ0MyMDAgYm9hcmQuCgogICAgVGhlIGludm9jYXRpb24gb2YgZG9fYXV0b191cGRhdGUoKSBpcyBtb3ZlZCB0byB0aGUgZW5kIG9mIHRoZQogICAgbWlzY19pbml0X3IoKSBmdW5jdGlvbiwgYWZ0ZXIgdGhlIGZsYXNoIG1hcHBpbmdzIGhhdmUgYmVlbgogICAgaW5pdGlhbGl6ZWQuIFBsZWFzZSBmaW5kIGF0dGFjaGVkIGEgcGF0Y2ggdGhhdCBpbXBsZW1lbnRzIHRoYXQKICAgIGNoYW5nZS4KCiAgICBBbHNvIGNvcnJlY3QgdGhlIGRlY29kaW5nIG9mIHRoZSBrZXlwYWQgc3RhdHVzLiBXaXRoIHRoaXMgdXBkYXRlLCB0aGUKICAgIGtleSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgdXBkYXRlIGlzIENvbHVtbiAyLCBSb3cgMi4KCmNvbW1pdCBkOTM4NGRlMmY1NzEwNDZlNzEwODFiYWUyMmI0OWUzZDVjYTJlM2Q1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEphbiAxMCAwMDoyNjoxNSAyMDA3ICswMTAwCgogICAgQ0FNNTIwMCBmbGFzaCBkcml2ZXIgbW9kaWZpY2F0aW9uczoKICAgIC0gdXNlIENGSSBkcml2ZXIgKHJlcGxhY2VzIGN1c3RvbSBmbGFzaCBkcml2ZXIpIGZvciBtYWluICdjYW01MjAwJyB0YXJnZXQKICAgIC0gYWRkIHNlY29uZCBidWlsZCB0YXJnZXQgJ2NhbTUyMDBfbmlvc2ZsYXNoJyB3aGljaCBzdGlsbCB1c2VzIGN1c3RvbSBkcml2ZXIKCmNvbW1pdCA2N2ZlYTAyMmZhOTU3ZjU5NjUzYjUyMzhjNzQ5NmY4MGE2YjcwNDMyCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE2OjAyOjQ4IDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBjbGVhbnVwIG1lbW9yeSBjb250b2xsZXIgc2V0dXAKCmNvbW1pdCA4ZmMyMTAyZmFhMjM1OTNjODAzODE0MzdjMDlmNzc0NWExNGRlYjQwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjE0IDIwMDcgKzAxMDAKCiAgICBGaXggdGhlIGNwdSBzcGVlZCBzZXR1cCB0byB3b3JrIHdpdGggYWxsIGJvYXJkcy4KCmNvbW1pdCA5Mjk1YWNiNzc0ODFjZjA5OWVmOWI0MGUxZmEyZDE0NWIzYzc0OTBjCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBhZGQgc3VwcG9ydCBmb3IgdGhlIEZNMThMMDggUmFtdHJvbiBGUkFNCgpjb21taXQgMzhjY2QyZmRmMzM2NGE1M2ZlODBlOWIzNjUzMDNlY2RhZmM5ZTIyMwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogdXBkYXRlIHRoZSBIUEkgcmVnaXN0ZXIgYWRkcmVzc2VzIHRvIHdvcmsgd2l0aCB0aGUgc2Vjb25kCiAgICBnZW5lcmF0aW9uIG9mIGhhcmR3YXJlCgpjb21taXQgNTkyMWU1MzEzZmMzZWFkZDQyNzcwYzJiOTliYWRkN2ZhZTVlY2YxZQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIE1pc2NlbGxhbmlvdXMgc3BjMTkyMCByZWxhdGVkIGNsZWFudXBzCgpjb21taXQgZTRjMmQzN2FkYzhiYjFiZjY5ZGNmNjAwY2JjNmM3NWY5MTZhNjEyMApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMiAyMDA3ICswMTAwCgogICAgU1BDMTkyMCBHTy9OT0dPIGxlZCBzaG91bGQgYmUgc2V0IHRvIGNvbG9yIHJlZCBpbiBVLUJvb3QKCmNvbW1pdCAwYmU2MjcyOGFhYzQ1OWJhMjY4ZDZkNzUyZWQ0OWVjMGUyYmM3MzQ4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMiAyMDA3ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBEUzMyMzEgUlRDCgpjb21taXQgODEzOTU2N2I2MGQ2Nzg1ODRiMDVmMDcxOGE2ODFmMjA0N2M1ZTE0ZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTEgMjAwNyArMDEwMAoKICAgIFNNQzEgdXNlcyBleHRlcm5hbCBDTEs0IGluc3RlYWQgb2YgQlJHIG9uIHNwYzE5MjAKCmNvbW1pdCBkOGQ5ZGUxYTAyZmJkODgwYjYxM2Q2MDcxNDNkMWY1NzM0MmFmZmM3CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgVXBkYXRlIHRoZSBTUEMxOTIwIENNQiBQTEQgZHJpdmVyCgpjb21taXQgM2YzNGY4NjkxNjI3NTBlNWU5OTlmZDE0MGY4ODRmNWRlOTUyYmNmZQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIEFkZCAvIGVuYWJsZSBJMkMgc3VwcG9ydCBvbiB0aGUgc3BjMTkyMCBib2FyZAoKY29tbWl0IGQyODcwN2RiY2UxZTlhYzIwMTdhZDA1MWRhNDEzM2JmMjJiNDIwNGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHRtczMyMDY3MXggaG9zdCBwb3J0IGludGVyZmFjZSAoSFBJKQoKY29tbWl0IGY0ZWI1NDUyOWJiMzY2NGMzYTU2MmU0ODhiNDYwZmUwNzVmNzlkNjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIEphbiA3IDAwOjEzOjExIDIwMDcgKzAxMDAKCiAgICBQcmVwYXJlIGZvciByZWxlYXNlIDEuMi4wCgpjb21taXQgZjA3YWU3YTlkYWVmMjdhM2QwMjEzYTRmM2ZlMzlkNTM0MjE3M2MwMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA2IDE1OjU4OjA5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIDQ0eDogRml4IHByb2JsZW0gd2l0aCBERFIgY29udHJvbGxlciBzZXR1cCAocmVmcmVzaCByYXRlKQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggYW4gaW5jb3JyZWN0IHNldHVwIGZvciB0aGUgcmVmcmVzaAogICAgdGltZXIgb2YgdGhlIDQ0eCBERFIgY29udHJvbGxlciBpbiB0aGUgZmlsZSBjcHUvcHBjNHh4L3NkcmFtLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjE2YzFkYTk1NzdmMDZjNWZjMDg2NTFhNDA2NTUzNzQwN2RlNDYzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA2IDE1OjU2OjEzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTFBSIGJvYXJkIGZpbGVzCgogICAgVGhpcyB1cGRhdGUgYnJpbmdzIHRoZSBBTFBSIGJvYXJkIHN1cHBvcnQgdG8gdGhlIG5ld2VzdCB2ZXJzaW9uLgogICAgSXQgYWxzbyBmaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgTkFORCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNkMWQ5MzdmOTAyNTBhMzI5ODhjMzdiMmI0YWY4MzY0ZDI1ZGU4ZWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMTo0NjowNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcHJvYmxlbSB3aXRoIG9vYnNpemUgY2FsY3VsYXRpb24KCiAgICBIZXJlIHRoZSBkZXNjcmlwdGlvbiBmcm9tIEJyaWFuIEJyZWxzZm9yZCA8QnJpYW5fQnJlbHNmb3JkQGRlbGwuY29tPjoKCiAgICBUaGUgSHluaXggcGFydCByZXR1cm5zIGEgMHgxZCBpbiB0aGUgNHRoIElEIGJ5dGUuIFRoZSBTYW1zdW5nIHBhcnQKICAgIHJldHVybnMgYSAweDE1LiBJbiB0aGUgY29kZSBmcmFnbWVudCBiZWxvdyBiaXRzIFsxOjBdIGRldGVybWluZSB0aGUKICAgIHBhZ2Ugc2l6ZSwgaXQgaXMgQU5EZWQgdmlhICIoZXh0aWQgJiAweDMpIiB0aGVuIHNoaWZ0ZWQgb3V0LiBUaGUKICAgIG5leHQgZmllbGQgaXMgYWxzbyBBTkRlZCB3aXRoIDB4My4gSG93ZXZlciB0aGlzIGlzIGEgb25lIGJpdCBmaWVsZAogICAgYXMgZGVmaW5lZCBpbiB0aGUgSHluaXggYW5kIFNhbXN1bmcgcGFydHMgaW4gdGhlIDR0aCBJRCBieXRlIHRoYXQKICAgIGRldGVybWlucyB0aGUgb29ic2l6ZSwgbm90IGEgdHdvIGJpdCBmaWVsZC4gSXQgd29ya3Mgb24gU2Ftc3VuZyBhcwogICAgYml0c1szOjJdIGFyZSAwMS4gSG93ZXZlciBmb3IgdGhlIEh5bml4IHRoZXJlIGlzIGEgMTEgaW4gdGhlc2UgdHdvCiAgICBiaXRzLCBzbyB0aGUgb29iIHNpemUgZ2V0cyBtZXNzZWQgdXAuCgogICAgSSBjaGVja2VkIHRoZSBjb3JyZWN0IGxpbnV4IGNvZGUgYW5kIHRoZSBzdWdnZXN0ZWQgZml4IGZyb20gQnJpYW4gaXMKICAgIGFsc28gYXZhaWxhYmxlIGluIHRoZSBsaW51eCBuYW5kIG10ZCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3OGJjNDQzYWU1YTRhOGJhODc1OTA1ODdkNWUzNWJmNWE3ODdiMmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMDo0MDozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhciBQTEI0QTBfQUNSW1dSUF0gb24gU2VxdW9pYSAoNDQwRVB4KQoKICAgIFRoaXMgZml4IHdpbGwgbWFrZSB0aGUgTUFMIGJ1cnN0IGRpc2FibGluZyBwYXRjaCBmb3IgdGhlIExpbnV4CiAgICBFTUFDIGRyaXZlciBvYnNvbGV0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDIzODg5ODM4MjgyYjYyMzdiNDAxNjY0ZjIyZGQyMmRmYmEyYzA2NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDEwOjM4OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBERFIyIG9wdGltaXphdGlvbiBjb2RlIGZvciBTZXF1b2lhICg0NDBFUHgpIGJvYXJkCgogICAgVGhpcyBjb2RlIHdpbGwgb3B0aW1pemUgdGhlIEREUjIgY29udHJvbGxlciBzZXR1cCBvbiBhIGJvYXJkIHNwZWNpZmljCiAgICBiYXNpcy4KCiAgICBOb3RlOiBUaGlzIGNvZGUgZG9lc24ndCB3b3JrIHJpZ2h0IG5vdyBvbiB0aGUgTkFORCBib290aW5nIGltYWdlIGZvciB0aGUKICAgIFNlcXVvaWEgYm9hcmQsIHNpbmNlIGl0IGRvZXNuJ3QgZml0IGludG8gdGhlIDRrQnl0ZXMgZm9yIHRoZSBTUEwgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjZTRhY2JiNjgzOTg2MzRiOGQwMTFlZDdiYjBkMTIyNjljODQyMzAKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRGVjIDI4IDE5OjA4OjIxIDIwMDYgKzAxMDAKCiAgICBGZXcgVjM4QiBjaGFuZ2VzOgogICAgICAtIGZpeCBhIHR5cG8gaW4gVjM4QiBjb25maWcgZmlsZQogICAgICAtIG1vdmUgd2F0Y2hkb2cgaW5pdGlhbGlzYXRpb24gZWFybGllciBpbiB0aGUgYm9vdCBwcm9jZXNzCiAgICAgIC0gYWRkICJ3ZHQ9b2ZmIiB0byBkZWZhdWx0IGtlcm5lbCBjb21tYW5kIGxpbmUgKGRpc2FibGVzIGtlcm5lbCB3YXRjaGRvZykKCmNvbW1pdCA5MmViNzI5YmFkODc2NzI1YWVlYTkwOGQyYWRkYmEwODAwNjIwODQwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBEZWMgMjcgMDE6MjY6MTMgMjAwNiArMDEwMAoKICAgIEZpeCBidWcgaW4gYWRhcHRpb24gb2YgU3RlZmFubyBCYWJpYydzIENGSSBkcml2ZXIgcGF0Y2guCgpjb21taXQgOWMwZjQyZWNmZTI1ZjdmZmNlOGVjN2E4MTVmMDM4NjRkNzIzZmZlMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gRGVjIDI0IDAxOjQyOjU3IDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZDc4NGZkYjA1OTAwYWRhMzY4NmQ1Nzc4NzgzZTFmYjMyOGU5ZmI2NgpBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgRGVjIDEyIDAwOjIyOjQyIDIwMDYgKzAxMDAKCiAgICBGaXggY2ZpIGZhaWx1cmUgd2l0aCBTcGFuc2lvbiBGbGFzaCAoU3BhbnNpb24gRmxhc2ggRGV2aWNlcyBoYXZlIGEgZGlmZmVyZW50IG9mZnNldCB0byBnbyBpbnRvIENGSSBtb2RlKQoKY29tbWl0IDFiM2MzNjBjMjM1ZGM2ODRlYzA2YzJkNWYxODNmMGEyODJjZTQ1ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjIgMTQ6Mjk6NDAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gRml4IHNlcXVvaWEgZmxhc2ggYXV0b2RldGVjdGlvbiAoZmluYWxseSBjb3JyZWN0KQoKICAgIE5vdyAzMk1CeXRlIGFuZCA2NE1CeXRlIEZMQVNIIGlzIGtub3cgdG8gd29yayBhbmQgb3RoZXIKICAgIGNvbmZpZ3VyYXRpb25zIHNob3VsZCB3b3JrIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODJlNTIzNmE4YjcxOTU0MzY0M2ZkMjZkNTgyNzkzOGFiMmI5NDgxOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgRGVjIDIyIDEwOjMwOjI2IDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgZmEyMzA0NDU2NDA5MWYwNWQ5Njk1YmViN2I1YjlhOTMxZTdmNDFhNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyMSAxNzoxNzowMiAyMDA2ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFRRTTgyNzIgYm9hcmQgZnJvbSBUUQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDZkZWRmM2Q0OWRkMTRjM2JmNTQxYzhlY2VlN2ZmYWFjNWYwZTFkNmMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjEgMTY6MTQ6NDggMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIHRoZSBVQzEwMSBib2FyZCBmcm9tIE1BTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjODRiYWQwZWY2MGU3MDU1YWIwYmQ0OWI5MzA2OTUwOWNlY2MzODJhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAwMDoyOTo0MyAyMDA2ICswMTAwCgogICAgRml4IHRvIG1ha2UgdGhlIGJhdWRyYXRlIGNoYW5nZXMgaW1tZWRpYXRlIGZvciB0aGUgTUNGNTJ4MiBmYW1pbHkuCgpjb21taXQgZGFhNmU0MThiY2MwYzcxNzc1MmU4ZGU5MzljMjEzYzc5MDI4NjA5NgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBEZWMgMjAgMDA6Mjc6MzIgMjAwNiArMDEwMAoKICAgIFByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIHRoZSBpRE1SIGJvYXJkIChDb2xkRmlyZSkuCgpjb21taXQgY2RiOTdhNjY3ODgyNmY4NWU3YzY5ZWFlNmExYzExM2QwMzRjOWIxMApBdXRob3I6IEFuZHJlaSBTYWZyb25vdiA8c2Fmcm9ub3ZAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBEZWMgOCAxNjoyMzowOCAyMDA2ICswMTAwCgogICAgYXV0b21hdGljIHVwZGF0ZSBtZWNoYW5pc20KCmNvbW1pdCA5ZDI3YjNhMDY4NWZmOTlmYzQ3Nzk4M2YzMTVjMDRkNDlmNjU3YThhCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTc6NTY6NTkgMjAwNiArMDgwMAoKICAgIFNsaWdodCBjb2RlIGNsZWFuIHVwLgogICAgQWRkIGNvbW1lbnRzLCBkZWxldGUgZHVwbGljYXRlIGRlZmluZSBhbmQgcmVtb3ZlIHNwYWNlcy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZGJjZDY5ZTNlMjc3NmVhMzM0NTkwZDU3NjhlMzY5MmM1ZmFlNWMxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTc6NTQ6MjEgMjAwNiArMDgwMAoKICAgIEludHJvZHVjZSBQTExfQ0ZHWzA6NF0gdGFibGUgZm9yIHByb2Nlc3NvciA3NDQ4Lzc0NDdBLzc0NTUvNzQ1Ny4gVGhlIG9yaWdpbmFsCiAgICBtdWx0aXBsaWVyIHRhYmxlIGNhbiBub3QgcmVmZWN0IHRoZSByZWFsIFBMTCBjbG9jayBiZWhhdmlvciBvZiB0aGVzZQogICAgcHJvY2Vzc29ycy4gUGxlYXNlIHJlZmVyIHRvIHRoZSBoYXJkd2FyZSBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxlZAogICAgaW5mb3JtYXRpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcgcHJvY2Vzc29ycy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZWZlMjBjOTU3OTAxMWQ5OTg3ZjYyZWQ3ZDM1ZWU4Y2RjMWNmMGUwCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTQ6NDY6MjMgMjAwNiArMDgwMAoKICAgIFJlbW92ZSB0aGUgc3RhdGljIE1BQyBhZGRyZXNzLCBpcCBhZGRyZXNzLCBzZXJ2ZXIgaXAsIG5ldG1hc2sgYW5kCiAgICBnYXRld2F5IGlwIGZvciBuZXR3b3JrIHNldHRpbmcuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmYxMmM2MWNmMzFlZDczZDcyZGRmY2ZjNzEyYTg1NGEzYTE3N2FhZgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyA0IDE0OjMzOjA4IDIwMDYgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZSBtZW1vcnkgdGVzdCBjb2RlIGZvciBtcGM3NDRpaHBjMiBib2FyZC4KICAgIElmIGEgbWVtb3J5IHRlc3QgaXMgbmVlZGVkLCBwbGVhc2UgdXNlIHRoZSBmdW5jdGlvbnMgaW4KICAgIHBvc3QvbWVtb3J5LmMgb3IgbWVtdGVzdCBjb21tYW5kLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5YzFlZWVkN2RkMTkzZmE2NWZiMTk0NjU0MTMyMDQwZDQ5ZDRkM2EKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMSAxOTowMToyNSAyMDA2ICswODAwCgogICAgRml4IHRoZSBleGNlcHRpb24gb2NjdXJpbmcgaW4gUkFNIHRhYmxlIHNlYXJjaCBpc3N1ZS4KICAgIFRoZSBvcmlnaW5hbCBzZWFyY2hfb25lX3RhYmxlKCkgZnVuY3Rpb24gY29kZSBjYW4gb25seSBwcm9jZXNzZXMgdGhlIHNlYXJjaAogICAgZm9yIHRoZSBleGNlcHRpb24gb2NjdXJyaW5nIGluIEZMQVNIL1JPTSwgYmVjYXVzZSB0aGUgZXhjZXB0aW9uIGFuZCBmaXh1cAogICAgdGFibGUgdXN1YWxseSBsb2NhdGUgaW4gRkxBU0guIElmIHRoZSBleGNlcHRpb24gYWRkcmVzcyBpcyBhbHNvIGluCiAgICBGTEFTSCwgaXQgd2lsbCBiZSBPSy4KICAgIElmIHRoZSBleGNlcHRpb24gb2NjdXJzIGluIFJBTSwgYWZ0ZXIgdGhlIHUtYm9vdCByZWxvY2F0aW9uLCBhCiAgICByZWxvY2F0aW9uIG9mZnNldCBzaG91bGQgYmUgYWRkZWQuCgogICAgY2xlYW4gdXAgdGhlIGNvZGUgaW4gY3B1Lzc0eHhfN3h4L2NwdS5jCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVlMzExMjE0ZTBkMjE2ZjkwNGZlZWEyNjk1OTlkMDkzNGJmNzFmMjMKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMSAxMTo0NzozNiAyMDA2ICswODAwCgogICAgQ2xlYW4gdXAgdGhlIGNvZGUgYWNjb3JkaW5nIHRvIGNvZGVzdHlsZToKICAgICgxKSByZW1vdmUgc29tZSBDKysgY29tbWVudHMuCiAgICAoMikgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgogICAgKDMpIHJlbW92ZSB0cmFpbGluZyBlbXB0eSBsaW5lLgogICAgKDQpIEluZGVudGF0aW9uIGJ5IHRhYmxlLgogICAgKDUpIHJlbW92ZSB7fSBpbiBvbmUgbGluZSBjb25kaXRpb24uCiAgICAoNikgYWRkIHNwYWNlIGJlZm9yZSAnKCcgaW4gZnVuY3Rpb24gY2FsbC4KICAgIFJlbW92ZSBzb21lIHdlaXJkIHByaW50ZiAoKSBvdXRwdXQuCiAgICBBZGQgbmVjZXNzYXJ5IGNvbW1lbnRzLgogICAgTW9kaWZpZWQgTWFrZWZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeS4KCmNvbW1pdCBkZDUyMGJmMzE0YzdhZGQ0MTgzYzUxOTE2OTIxODBmNTc2Zjk2YjYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMzAgMTg6MDI6MjAgMjAwNiArMDEwMAoKICAgIENvZGUgY2xlYW51cC4KCmNvbW1pdCA4ZDlhODYxMGI4MjU2MzMxMTMyMjI3ZTllNjU4NWM2YmQ1NzQyNzg3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMzAgMDE6NTQ6MDcgMjAwNiArMDEwMAoKICAgIENvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCA3MjZlOTBhYWNmMGIxZWNiMGU3MDU1YmU1NzQ2MjJmYmUzZTQ1MGJhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglXZWQgTm92IDI5IDE2OjIzOjQyIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFtNUEM1Mnh4XSBVc2UgSVBCIGJ1cyBmcmVxdWVuY3kgZm9yIFNPQyBwZXJpcGhlcmFscwoKICAgIFRoZSBzb2Mgbm9kZSBvZiB0aGUgbXBjNTJ4eCBuZWVkcyB0byBiZSBsb2FkZWQgd2l0aCB0aGUgSVBCIGJ1cyBmcmVxdWVuY3ksCiAgICBub3QgdGhlIFhMQiBmcmVxdWVuY3kuCgogICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIHRoZSBwcmV2aW91cyBwYXRjaGVzIGZvciBNUEM1Mnh4IGRldmljZSB0cmVlIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBTaWduZWQtb2ZmLWJ5OiBTeWx2YWluIE11bmF1dCA8dG50QDI0NnROdC5jb20+Cgpjb21taXQgMWVhYzJhNzE0MTdiNjY3NWIxMWFhY2U3MjEwMmEyZTdmZGU4ZjVjNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxNTo0MjozNyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgUHJvZHJpdmUgUDNNNzUwICYgUDNNNzQ0OCAoUDNNeCkgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBQcm9kcml2ZSBQM003NTAgKFBQQzc1MCAmIE1WNjQ0NjApCiAgICBhbmQgdGhlIFAzTTc0NDggKE1QQzc0NDggJiBNVjY0NDYwKSBQTUMgbW9kdWxlcy4gQm90aCBtb2R1bGVzIGFyZQogICAgcXVpdGUgc2ltaWxhciBhbmQgc2hhcmUgdGhlIHNhbWUgYm9hcmQgZGlyZWN0b3J5ICJwcm9kcml2ZS9wM214IgogICAgYW5kIHRoZSBzYW1lIGNvbmZpZyBmaWxlICJwM214LmgiLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmRkNDY4MzJhZWI1NjlmNWUwNGIxZjIwZjY0MzE4NTI1YjY1MjVhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDEyOjUzOjE1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGNvbW1vbi9jbWRfZWxmLmM6IEVuYWJsZSBsb2FkYWRkciBhcyBwYXJhbWV0ZXIgaW4gYm9vdHZ4IGNvbW1hbmQKCiAgICBJbiB0aGUgYm9vdHZ4IGNvbW1hbmQgdGhlIGxvYWQgYWRkcmVzcyB3YXMgb25seSByZWFkIGZyb20gdGhlIGVudgogICAgdmFyaWFibGUgImxvYWRhZGRyIiBhbmQgbm90IG9wdGlvbmFsbHkgcGFzc2VkIGFzIHBhcmFtdGVyIGFzIGRlc2NyaWJlZAogICAgaW4gdGhlIGhlbHAuIFRoaXMgaXMgZml4ZWQgd2l0aCB0aGlzIHBhdGNoLiBUaGUgYmVoYXZpb3VyIGlzIG5vdyB0aGUKICAgIHNhbWUgYXMgaW4gdGhlIGJvb3RlbGYgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGUyNmYxMDc0YzNhYzFiZDhmZDA5NGYwZGM0YTFjNGEwYjE1YTU5MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxMjowMzo1NyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBpbmNsdWRlL3BwYzQ0MC5oIG1pbm9yIGVycm9yIGFmZmVjdGluZyBpbnRlcnJ1cHRzCgogICAgRml4ZWQgaW5jbHVkZS9wcGM0NDAuYyBmb3IgVUlDIGFkZHJlc3MgQnVnCgogICAgQ29ycmVjdHMgYnVnIGFmZmVjdGluZyB0aGUgYWRkcmVzc2VzIGZvciB0aGUgdW5pdmVyc2FsIGludGVycnVwdAogICAgY29udHJvbGxlciBVSUMyIGFuZCBVSUMzIG9uIHRoZSBQUEM0NDAgRXB4LCBHUngsIGFuZCBTUEUgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZiBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTkzOWQ5Njk0NDNjY2YzMTZjYWIyYmYzMmFiMTAyN2Q0ZGI1YmExYQpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUdWUgTm92IDI4IDE2OjE3OjI3IDIwMDYgLTA2MDAKCiAgICBNYWtlIGZzbC1pMmMgbm90IGNvbmZsaWN0IHdpdGggU09GVCBJMkMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0MTk4YmY3NjhmZGM5NThlM2MxYWZkMjQwNGU1MjYyMjA4ZTk4ZDcKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJVHVlIE5vdiAyOCAxNjoxNzoxOCAyMDA2IC0wNjAwCgogICAgRml4IEkyQyBtYXN0ZXIgYWRkcmVzcyBpbml0aWFsaXphdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmM2QwNDVlNTFjYThkY2M2Y2Y3NTk4MjcxNDA4NjFkNmFjMjVjMDQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDIzOjMxOjE5IDIwMDYgLTA2MDAKCiAgICBBc3NpZ24gbWFpbnRhaW5lcnMgZm9yIG1wYzgzNDllbWRzIGFuZCBtcGM4MzYwZW1kcwoKICAgIERhdmUgZm9yIG1wYzgzNjBlbWRzLCBhbmQgbWUgZm9yIG1wYzgzNDllbWRzLgoKY29tbWl0IDFhYTkzNGM4MWI3N2YyMDgwZDNjYTRiMjI2ZWFiNjdiMTdhMzM5NjEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDIzOjI4OjMzIDIwMDYgLTA2MDAKCiAgICBFbGltaW5hdGUgZ2NjIDQgJ3VzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZ3MgaW4gZHJpdmVycy9xZS91Y2NmLmMKCiAgICBnaXZlIGluaXRpYWwgdmFsdWVzIGZvciByZWdfbnVtLCBzaGlmdCwgcF9jbXh1Y3IgaW4gdWNjX3NldF9jbGtfc3JjCiAgICBzaW5jZSB0aGV5IGFyZSBwYXNzZWQgYnkgcmVmZXJlbmNlIHRvIHVjY19nZXRfY214dWNyX3JlZyBhbmQgYXNzaWduZWQuCgpjb21taXQgZTg1N2E1YmRiMzk1NGI4OTZjMDkyMGNiOWQ4ZDJiMWI5YzEwN2NlNQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMTI6MDk6MzUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IE1pc2NlbGxhbmVvdXMgY29kZSBzdHlsZSBmaXhlcwoKICAgIEltcGxlbWVudCB2YXJpb3VzIGNvZGUgc3R5bGUgZml4ZXMgYW5kIHNpbWlsYXIgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1OTU4MWM1NmFiNWQ2ZTAyMDdkZGFjM2IyYzFkNTVjYjM2ZWM3MDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTc6NTU6NDkgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gRW5hYmxlIHRoZSBJY2VDdWJlL2xpdGU1MjAwIHZhcmlhbnRzIHRvIHBhc3MgYSBkZXZpY2UgdHJlZSB0byBMaW51eC4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvZGUgYW5kIGNvbmZpZ3VyYXRpb24gbmVjZXNzYXJ5IHRvIGJvb3Qgd2l0aCBhbgogICAgYXJjaC9wb3dlcnBjIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNzMyZmFlYzk1YTgzY2I0NjhiNDg1MGFlODA3YzgzMDFkZGU4ZjZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDE2OjA5OjI0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogNDQwU1AgUmV2LiBDIGRldGVjdGlvbiBhZGRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlN2YzZTlmZjAxZmJkN2ZhNzJlYjQyYTk2NzVmYmVkNmJjNDczNmIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDExOjA0OjQ1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwYXRjaCBtZXJnZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4ZTNiMTRjMThlZDMyODhjZWVmOGQwODY5NDZkYmYzZGY2NGNjZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTE6MDQ6NDUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHBhdGNoIG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGY0YjYwMmVjNzUyNGEwMzJiZGYzYzZkMjhjN2Y1MjVhNGE2N2VhYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDIyOjUzOjUzIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZjZlNDk1ZjU0Y2RiOGZlMzQwYjljMDNkZWFiNDBhZDc0NmQ1MmZhZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzo0MzoyNSAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHhfZW5ldC5jOiBDb3JyZWN0IHRoZSBzZXR0aW5nIG9mIHptaWlmZXIgcmVnaXN0ZXIKCiAgICBQYXRjaCBiZWxvdyBjb3JyZWN0cyB0aGUgc2V0dGluZyBvZiB0aGUgem1paWZlciByZWdpc3RlciwgaXQgd2FzCiAgICBvdmVyd3JpdHRpbmcgdGhlIHJlZ2lzdGVyIHJhdGhlciB0aGFuIE9SaW5nIHRoZSBzZXR0aW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOZWlsIFdpbHNvbiA8TldpbHNvbkBhaXJzcGFuLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMWE3MjU0NTI5NjgwMGI3ZTIxOWY5MzEwNGFkNTgzNmYwMDAzZDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjM0OjEwIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFNlbGVjdCBOQU5EIGVtYmVkZGVkIGVudmlyb25tZW50IGZyb20gYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIFRoZSBjdXJyZW50IE5BTkQgQm9vdGxvYWRlciBzZXR1cCBmb3JjZXMgdGhlIGVudmlyb25tZW50CiAgICB2YXJpYWJsZXMgdG8gYmUgaW4gbGluZSB3aXRoIHRoZSBib290bG9hZGVyLiBUaGlzIGNoYW5nZQogICAgZW5hYmxlcyB0aGUgY29uZmlndXJhdGlvbiB0byBiZSBtYWRlIGluIHRoZSBib2FyZCBpbmNsdWRlCiAgICBmaWxlIGluc3RlYWQgc28gdGhhdCBpdCBjYW4gYmUgaW5kaXZpZHVhbGx5IGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTU3ODQ4NjI4NTdjM2MyMjE0NDk4ZGVmY2ZlZDg0ZmYxMzdmYjgxZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzoyMjoxOSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kX3dhaXQoKSB0aW1lb3V0IGZpeGVzCgogICAgVHdvIGZpeGVzIGZvciB0aGUgbmFuZF93YWl0KCkgZnVuY3Rpb24gaW4KICAgIGRyaXZlcnMvbmFuZC9uYW5kX2Jhc2UuYzoKCiAgICAxLiBVc2UgY29ycmVjdCB0aW1lb3V0cy4gVGhlIG9yaWdpbmFsIHRpbWVvdXRzIGluIExpbnV4CiAgICBzb3VyY2UgYXJlIDQwMG1zIGFuZCAyMG1zIG5vdCA0MHMgYW5kIDIwcwoKICAgIDIuIFJldHVybiBjb3JyZWN0IGVycm9yIHZhbHVlIGluIGNhc2Ugb2YgdGltZW91dC4gMCBpcwogICAgaW50ZXJwcmV0ZWQgYXMgT0suCgogICAgU2lnbmVkLW9mZi1ieTogUnVpIFNvdXNhIDxydWkuc291c2FAbGFwb3N0ZS5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGE1NTUzYjA5NWJmMDRmNGYxMDlhZDdlNTY1ZGFlM2FiYTQ3YjIzMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzowNDowNiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBbGxvdyBDT05GSUdfT0ZfRkxBVF9UUkVFIHRvIGJvb3QgYSBub24tYXJjaC9wb3dlcnBjIGtlcm5lbAoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGFuIGFyY2gvcHBjIGtlcm5lbCB0byBiZSBib290ZWQgYnkganVzdCBwYXNzaW5nIDEgb3IgMgogICAgYXJndW1lbnRzIHRvIGJvb3RtLiAgSXQgcmVtb3ZlcyB0aGUgZ2V0ZW52KCJkaXNhYmxlX29mIikgdGVzdCB0aGF0IHVzZWQKICAgIHRvIGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTM5OGUwMTg1OTM3ODJjNWZhN2QwNzQxOTU1ZmMxMjU2YjM0YzFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTU6MzI6NDIgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCAxNzI5YjkyY2RlNTc1NDc2Njg0YmZmZTgxOWQwYjc3OTFiNTdiZmYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjUyOjA0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogRml4IHByb2JsZW0gd2l0aCBib2FyZCBzcGVjaWZpYyByZXNldCBjb2RlIChub3cgZm9yIHJlYWwpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjNWVlOGE5MmEwZTNjYTZmNzI3YWY3MWI4ZmQyMDY0NjBjN2FmZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDk6NTEgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gYWxwcjogcmVtb3ZlIHVudXNlZCBib2FyZCBzcGVjaWZpYyBmbGFzaCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWY5NGQxNjJlMmI1ZjBlZGMyOGQ5ZmIxMTQ4MjUwMmM0NGQyMThlMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0ODo0MSAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHg6IEZpeCBwcm9ibGVtIHdpdGggYm9hcmQgc3BlY2lmaWMgcmVzZXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYzBjMmVjNzI1YWVjOTUyNGExNzdhNzdjZTc1NTU5ZTY0NGE5MzFhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ2OjA2IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSB0ZXN0aW5nIDR4eCBlbmV0IFBIWSBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYzJjZTIyNjIwNjk1MTBmMzFjN2QzZmQ3ZWZkM2Q1OGI4YzBjMTQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjEyOjE3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBBTFBSIGJvYXJkIHN1cHBvcnQgKDQ0MEdYKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1OGI0ODU3NzY2OThjM2Q3MWVjNWEyMTVlMzkyMTIzYjRjMTVhZmEzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo1MToyMSAyMDA2ICswMTAwCgogICAgQWRkIGEgc21hbGwgUkVBRE1FIHdpdGggaW5mb3JtYXRpb24gb24gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIuCgpjb21taXQgYWUzYjc3MGU0ZWFlOGU5OGI2ZTllMjk2NjJlMThjNDdmZGYwMTcxZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDY6NDYgMjAwNiArMDEwMAoKICAgIEZpeCBzb21lIGVuZGlhbm5lc3MgaXNzdWVzIHJlbGF0ZWQgdG8gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCA3YjU5YjNjN2E4Y2UyZTRiNTY3YWJmOTljMWNkNjY3YmYzNWI5NDE4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0NDo1OCAyMDA2ICswMTAwCgogICAgSW50cm9kdWNlZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gQ09ORklHX1VTQl9PSENJX05FVyBpbiBvcmRlciB0byBiZSBhYmxlCiAgICB0byBjaG9vc2UgYmV0d2VlbiB0aGUgb2xkIGFuZCB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlcnMuCgpjb21taXQgNTNlMzM2ZTlmZmM1MTAzNWJkYzRlNTg2NzYzMWIzMzc4NzYxYjRkZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDM6MDkgMjAwNiArMDEwMAoKICAgIE1vZGlmaWVkIHRoZSBtcGM1eHh4IGFuZCB0aGUgcHBjNHh4IGNwdSB0byB1c2UgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXIKICAgIGFuZCBhZGFwdGVkIGJvYXJkIGNvbmZpZ3MgVFFNNTIwMCBhbmQgeW9zZW1pdGUgYWNjb3JkaW5nbHkuIFRoaXMgY29tbWl0CiAgICBhbHNvIG1ha2VzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByb290IGh1YiBwb3J0cyBjb25maWd1cmFibGUKICAgIChDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMpLgoKY29tbWl0IDc4ZDYyMGViYjU4NzFkMjUyMjcwZGVkZmFkNjBjNjU2ODk5M2I3ODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBhdGxhcy5kZW54LmRlPgpEYXRlOglUaHUgTm92IDIzIDIyOjU4OjU4IDIwMDYgKzAxMDAKCiAgICBVcGRhdGVzIGZvciBUUU01MjAwIG1vZHVsZXM6CiAgICAtIGZpeCBvZmYtYnktb25lIGVycm9yIGluIGJvYXJkL3RxbTUyMDAvY2FtNTIwMF9mbGFzaC5jIGVycm9yIG1lc3NhZ2UKICAgIC0gc2ltcGxpZnkgInVkYXRlIiBkZWZpbml0aW9ucwoKY29tbWl0IDIwNTMyODMzMDRlZWRkZjI1MGQxMDllNjc5MWViNmZhNGNhZDE0ZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjIgMTM6MjA6NTAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4IHN0YXJ0LlM6IEZpeCBmb3IgcHJvY2Vzc29yIGVycmF0YQoKICAgIEZpeGVkIGNwdS9wcGM0eHgvc3RhcnQuUyBmb3IgNDQwRVB4IEVycmF0YTogZnVydGhlciBjb3JyZWN0cyBQUEM0NDBFUHgKICAgIGVycmF0YSAxLjEyOiA0NDBfMzMgYnkgbW92aW5nIHBhdGNoIHVwIGluIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZiBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGVmNjI1MTQwM2Y2Mzc4NDEwMDBlMGZlZjllODMyYWEwMTMzOTgyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyMCAyMDozOTo1MiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBTZXF1b2lhIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgNjRNQnl0ZSBOT1IgRkxBU0gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTRiYmQ4ZGExNjRiOTc2ZDM4NjE2YmQ5YzY5YzVlODZlMTkzY2RmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDIwIDEwOjI4OjMwIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgMjYwNDIxYTIxZTkzNGE2OGQzMWZiNjEyNWIwZmJkMjYzMWE4Y2EyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxMyAxMzo1NToyNCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBDRkkgZHJpdmVyIEFNRCBDb21tYW5kIFNldCBUb3AgYm9vdCBnZW9tZXRyeSByZXZlcnNhbCwgZXRjLiBbVXBkYXRlZF0KCiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgQU1EIGNvbW1hbmQgc2V0IFRvcCBCb290IGZsYXNoIGdlb21ldHJ5IHJldmVyc2FsCiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgcmVhZGluZyBKRURFQyBNYW51ZmFjdHVyZXIgSUQgYW5kIERldmljZSBJRAogICAgICAgKiBBZGRzIHN1cHBvcnQgZm9yIGRpc3BsYXlpbmcgY29tbWFuZCBzZXQsIG1hbnVmYWN0dXJlciBpZCBhbmQKCSBkZXZpY2UgaWRzIChmbGluZm8pCiAgICAgICAqIE1ha2VzIGZsaW5mbyBvdXRwdXQgdG8gYmUgY29uc2lzdGVudCB3aGVuIENGR19GTEFTSF9FTVBUWV9JTkZPIGRlZmluZWQKICAgICAgICogUmVtb3ZlcyBvdXRkYXRlZCBjaGFuZ2UgaGlzdG9yeSAocmVmZXIgdG8gZ2l0IGxvZyBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbHVuYXkgT3JrdW4gPGxpc3RtZW1iZXJAb3JrdW4udXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjIxYjUxMWQ0YzUwNDA4ZjQ4NTNmNDZmMDZiNjAxMjcyMTk2MjIzZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gTm92IDEyIDIxOjEzOjIzIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgY2UzZjFhNDBjNTA3YWZiYWIwNmM1ZWI1OGNjZGM2NzEzZWRhMzI0NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVNhdCBOb3YgMTEgMjI6NDg6MjIgMjAwNiArMDEwMAoKICAgIERpc2FibGUgdGhlIHdhdGNoZG9nIGluIHRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIFYzOEIgYm9hcmQuCgpjb21taXQgNDRhNDdlNmRiMjY5NDg0MTIxMWYxYzhmZGJhZmQzNjk5MmU5Y2QxYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVNhdCBOb3YgMTEgMjI6NDM6MDAgMjAwNiArMDEwMAoKICAgIENoYW5nZSB0aGUgR1BJTyBwaW4gbXVsdGlwbGV4aW5nIGNvbmZpZ3VyYXRpb24gZm9yIFYzOEIuIFRoZSBVU0IgR1BJTyBwaW4KICAgIGdyb3VwIGlzIGVuYWJsZWQgZm9yIFVTQiBlYXJsaWVyIChpbiBjcHVfaW5pdF9mKCkgaW5zdGVhZCBvZgogICAgdXNiX2xvd2xldmVsX2luaXQoKSkuCgpjb21taXQgOTE2NTBiM2U0ZGU2ODgwMzhkNGY3MTI3OWM0NDg1OGUzZTJjNjg3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDYgMTc6MDY6MzYgMjAwNiArMDEwMAoKICAgIFNlcXVlbnRpYWwgYWNjZXNzZXMgdG8gbm9uLWV4aXN0ZW50IG1lbW9yeSBtdXN0IGJlIHN5bmNocm9uaXplZCwKICAgIGF0IGxlYXN0IG9uIEcyIGNvcmVzLgoKICAgIFRoaXMgZml4ZXMgZ2V0X3JhbV9zaXplKCkgcHJvYmxlbXMgb24gTVBDNTIwMCBSZXYuIEIgYm9hcmRzLgoKY29tbWl0IGJlNWU2MTgxNWQ1YTFmYWMyOTBjZTljMGVmMDljYjZhOGU0Mjg4ZmEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTk6MTU6MDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IFVwZGF0ZSA4M3h4IHRvIHVzZSBmc2xfaTJjLmMKCiAgICBVcGRhdGUgdGhlIDgzeHggdHJlZSB0byB1c2UgSTJDIHN1cHBvcnQgaW4gZHJpdmVycy9mc2xfaTJjLmMuICBEZWxldGUKICAgIGNwdS9tcGM4M3h4L2kyYy5jLCBpbmNsdWRlL2FzbS1wcGMvaTJjLmgsIGFuZCBhbGwgcmVmZXJlbmNlcyB0byB0aG9zZSBmaWxlcy4KICAgIEFkZGVkIG11bHRpcGxlIEkyQyBidXMgc3VwcG9ydCB0byBmc2xfaTJjLmMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMjM5ZDc0YjFjOTM3OTg0YmM1MTkwODNhOGU3ZGUzNzNhMzkwZjA2CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEyOjAwOjI4IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBSZXBsYWNlIENGR19JTU1SQkFSIHdpdGggQ0ZHX0lNTVIKCiAgICBSZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgQ0ZHX0lNTVJCQVIgd2l0aCBDRkdfSU1NUiwgc28gdGhhdCB0aGUgODN4eAogICAgdHJlZSBtYXRjaGVzIHRoZSBvdGhlciA4eHh4IHRyZWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjdmYjJlNzAzZWM5Njg4NTQxNDE2OTYyNzI0YWRmZjcwYTczMjJjYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTo0NzoxMSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogTGluZGVudCBhbmQgY2xlYW4gdXAgY3B1L21wYzgzeHgvc3BlZWQuYwoKY29tbWl0IDkwZjMwYTcxMGEzYzYxOWI1NDA1ODYwYTY4NmM0ZGRmYzQ5NWQ0YjYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6MDU6NTAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uCgogICAgVGhlIDgzNHggcmV2MS54IHNpbGljb24gaGFzIG9uZSBDUFU1IGVycmF0YS4KCiAgICBUaGUgaXNzdWUgaXMgd2hlbiB0aGUgZGF0YSBjYWNoZSBsb2NrZWQgd2l0aAogICAgSElEMFtETE9DS10sIHRoZSBkY2J6IGluc3RydWN0aW9uIGxvb2tzIGxpa2Ugbm8tb3AgaW5zdC4KCiAgICBUaGUgcmlnaHQgYmVoYXZpb3Igb2YgdGhlIGRhdGEgY2FjaGUgaXMgd2hlbiB0aGUgZGF0YSBjYWNoZQogICAgTG9ja2VkIHdpdGggSElEMFtETE9DS10sIHRoZSBkY2J6IGluc3RydWN0aW9uIGFsbG9jYXRlcwogICAgbmV3IHRhZ3MgaW4gY2FjaGUuCgogICAgVGhlIDgzNHggcmV2My4wIGFuZCBsYXRlciBhbmQgODM2MCBoYXZlIG5vdCB0aGlzIGJ1ZyBpbnNpZGUuCgogICAgU28sIHdoZW4gODM0eCByZXYzLjAvODM2MCBhcmUgd29ya2luZyB3aXRoIEVDQywgdGhlIGRjYnoKICAgIGluc3RydWN0aW9uIHdpbGwgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUsIHRoZSBwcm9jZXNzb3Igd2lsbAogICAgY2hlY2tzdG9wIHJlc2V0LgoKICAgIEhvd2V2ZXIsIHRoZSA4MzR4IHJldjEueCBjYW4gd29yayB3aXRoIEVDQyB3aXRoIHRoZXNlIGNvZGUsCiAgICBiZWNhdXNlIHRoZSBzaWxsaWNvbiBoYXMgdGhpcyBjYWNoZSBidWcuIFRoZSBkY2J6IHdpbGwgbm90CiAgICBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZS4KICAgIFJlYWxseSwgaXQgaXMgdGhlIGZhdWx0IGNvZGUgcnVubmluZyBvbiBmYXVsdCBzaWxsaWNvbi4KCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uLiBJbnN0ZWFkIG9mCiAgICBDUFUgRlAgd3JpdGluZyB0byBpbml0aWFsaXNlIHRoZSBFQ0MuCgogICAgQ0hBTkdFTE9HOgogICAgKiBGaXggdGhlIGluY29ycmVjdCBkY2J6IG9wZXJhdGlvbiBpbnN0ZWFkIG9mIENQVSBGUAogICAgd3JpdGluZyB0byBpbml0aWFsaXNlIHRoZSBFQ0MgbWVtb3J5LiBPdGhlcndpc2UsIGl0CiAgICB3aWxsIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLCBUaGUgcHJvY2Vzc29yIHdpbGwgY2hlY2tzdG9wCiAgICByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMGI1NDJkNjc3M2E1YTFjYmNlNzc2OTFmMDA5YjA2ZDlhZWI1N2QKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDEgMDA6MTA6NDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBPRl9GTEFUX1RSRUUgYml0cyB0byA4M3h4IGJvYXJkcwoKICAgIGFkZCBmdF9wY2lfc2V0dXAsIE9GX0NQVSwgT0ZfU09DLCBPRl9UQkNMSywgYW5kCiAgICBTVERPVVRfUEFUSCBjb25maWd1cmF0aW9uIGJpdHMgdG8gbXBjODM0OWVtZHMsCiAgICBtcGM4MzQ5aXR4LCBhbmQgbXBjODM2MGVtZHMgYm9hcmQgY29kZS4KCiAgICByZWRvIGVudmlyb25tZW50IHRvIHVzZSBib290bSB3aXRoIHRoZSBmZHRhZGRyCiAgICBmb3IgYm9vdGluZyBBUkNIPXBvd2VycGMga2VybmVscyBieSBkZWZhdWx0LAogICAgYW5kIHByb3ZpZGUgZGVmYXVsdCBmZHRhZGRyIHZhbHVlcy4KCmNvbW1pdCA0ODA0MTM2NWIzNDIwNTg5YWQ0NjRlYmM3NzUyZTAwNTM1MzhiNzI5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAwOjA3OjI1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBjaGFuZ2UgZnQgY29kZSB0byBtb2RpZnkgbG9jYWwtbWFjLWFkZHJlc3MgcHJvcGVydHkKCiAgICBVcGRhdGUgODN4eCBPRiBjb2RlIHRvIHVwZGF0ZSBsb2NhbC1tYWMtYWRkcmVzcyBwcm9wZXJ0aWVzCiAgICBmb3IgZXRoZXJuZXQgaW5zdGVhZCBvZiB0aGUgb2Jzb2xldGUgJ2FkZHJlc3MnIHByb3BlcnR5LgoKY29tbWl0IDljYTg4MGEyNTA4NzBhN2Q1NTc1NDI5MWI1NTkxZDJiNWZlODliNTQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDIxOjIzOjE2IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggZHVhbCBJMkMgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlJVFgsIE1QQzgzNDlFTURTLCBUUU04MzR4LCBhbmQgTVBDODM2MEVNRFMKCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhbiBpbXByb3ZlZCBJMkMgc2V0X3NwZWVkKCksIHdoaWNoIGhhbmRsZXMgYWxsIGNsb2NrCiAgICBmcmVxdWVuY2llcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjNGI1NjIyY2UwNTBiNWVlMWUxNTRiOThkZjYzMGQ3Nzg2NjE2MzIKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjU0OjU5IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgdGhlIFJFQURNRS5tcGM4MzYwZW1kcwoKICAgIGFkZCBkb2MvUkVBRE1FLm1wYzgzNjBlbWRzIHRvIGFjY29tcGFueSB0aGUgbmV3IGJvYXJkIHN1cHBvcnQKCmNvbW1pdCA3NzM3ZDVjNjU4YzYwNmY5OTlkZmJlM2U4NmIwZmVkNDllNWM1MGVmCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEyOjExOjE1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgUUUgZXRoZXJuZXQgc3VwcG9ydAoKICAgIHRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUVVJQ0MgRW5naW5lIGJhc2VkIFVDQyBnaWdhYml0IGV0aGVybmV0IGRldmljZS4KCmNvbW1pdCA1ZjgyMDQzOTRlMzliYmU4Y2Q5ZjA4YjhmOGQxNDViNmMwMWY3YzczCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDE5OjMzOjQ0IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgTVBDODM2MEVNRFMgYmFzaWMgYm9hcmQgc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgRnJlZXNjYWxlIE1QQzgzNjBFTURTIGJvYXJkLgogICAgSW5jbHVkZXMgRERSLCBEVUFSVCwgTG9jYWwgQnVzLCBQQ0kuCgpjb21taXQgMjM4OTJlNDkzNTJkZTc0ZjdmYWMzNmZmOTBiYjFiZTE0M2QxOTVlMwpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6MzA6NDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCB0aGUgUVVJQ0MgRW5naW5lIChRRSkgaW1tYXAgZmlsZQoKICAgIGNvbW1vbiBRRSBpbW1hcCBmaWxlLiAgQWxzbyByZXF1aXJlZCBmb3IgODM2MC4KCmNvbW1pdCBiNzAxNjUyYTQ5OTJiZGNjNjJmYjFhNjAzOGE4NWJlZWY5ZTU1ZGE0CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOToyNTozOCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIDgzNjAgc3BlY2lmaWNzIHRvIDgzeHggaW1tYXAKCiAgICBNYWlubHkgYWRkIFFFIGRldmljZSBkZXBlbmRlbmNpZXMsIHdpdGggYXBwcm9wcmlhdGUgODM2MCBwcm90ZWN0aW9uLgogICAgTGluZGVudCBhbHNvIHJ1bi4KCmNvbW1pdCA5ODg4MzMzMjRhN2ZkYTQ4MmM4YWMzY2EyM2ViNTM5ZjgyMzJlNDA0CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOToxNDo0MSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IFBDSSwgVVNCLCBib290YXJncyBmb3IgTVBDODM0OUUtbUlUWAoKICAgIFBSRVJFUVVJU0lURSBQQVRDSEVTOgoKICAgICogVGhpcyBwYXRjaCBjYW4gb25seSBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZDoKCiAgICAgIDEpIEROWCMyMDA2MDkyMTQyMDAwMDE1ICJBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFggIDEvMiIKICAgICAgMikgRE5YIzIwMDYwOTIxNDIwMDAwMjQgIkFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWCAgMi8yIgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEZvciB0aGUgODM0OUUtbUlUWCwgZml4IHNvbWUgc2l6ZSB2YWx1ZXMgaW4gcGNpX2luaXRfYm9hcmQoKSwgZW5hYmxlCiAgICAgIHRoZSBjbG9jayBmb3IgdGhlIDJuZCBVU0IgYm9hcmQgKExpbnV4IGtlcm5lbCB3aWxsIGhhbmcgb3RoZXJ3aXNlKSwKICAgICAgYW5kIGZpeCB0aGUgQ09ORklHX0JPT1RBUkdTIG1hY3JvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmFkNmI1MTNiMzEwNzBiZDBjMDAzNzkyZWQxYzNlN2Y1ZDc0MDM1NwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTg6NDQ6NDIgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWAoKICAgIFBSRVJFUVVJU0lURSBQQVRDSEVTOgoKICAgICogVGhpcyBwYXRjaCBjYW4gb25seSBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZDoKCiAgICAgIDEpIEROWCMyMDA2MDkwNzQyMDAwMDI0ICJBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c2VzIgogICAgICAyKSBETlgjMjAwNjA5MDc0MjAwMDAzMyAiTXVsdGktYnVzIEkyQyBpbXBsZW1lbnRhdGlvbiBvZiBNUEM4MzR4IgogICAgICAzKSBETlgjMjAwNjA5MTI0MjAwMDA0MSAiQWRkaXRpb25hbCBNUEM4MzQ5IHN1cHBvcnQgZm9yIG11bHRpYnVzIGkyYyIKICAgICAgNCkgRE5YIzIwMDYwOTEyNDIwMDAwNzggIkFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBmbGFzaCBtZW1vcnkgc2l6ZXMgb24gODN4eCBzeXN0ZW1zIgogICAgICA1KSBETlgjMjAwNjA5MTI0MjAwMDA2OSAiQWRkIHN1cHBvcnQgZm9yIEVycmF0YSBERFI2IG9uIE1QQyA4MzR4IHN5c3RlbXMiCgogICAgQ0hBTkdFTE9HOgoKICAgICogQWRkIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODM0OUUtbUlUWCByZWZlcmVuY2UgZGVzaWduIHBsYXRmb3JtLgogICAgICBUaGUgc2Vjb25kIFRTRUMgKFZpdGVzc2UgNzM4NSBzd2l0Y2gpIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgzZGE2ZDliNDQ2Y2MxMjEyMzQ1NTg0NGFkMTE4N2UyMzc1NjI2ZgpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUdWUgU2VwIDEyIDEwOjE1OjUzIDIwMDYgLTA0MDAKCiAgICBBZGRpdGlvbmFsIE1QQzgzNDkgc3VwcG9ydCBmb3IgbXVsdGlidXMgaTJjCgogICAgSGVsbG8sCgogICAgSGVyZSBpcyBhIHBhdGNoIGZvciBhIGZpbGUgdGhhdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3V0IG9mIGEgcHJldmlvdXMKICAgIGF0dGVtcHQuCgogICAgSXQgYWNjb21wYW5pZXMgdGhlIHBhdGNoIHdpdGggdGlja2V0IEROWCMyMDA2MDkwNzQyMDAwMDI0CgogICAgQ0hBTkdFTE9HOgoJICAgIENoYW5nZSBQQ0kgaW5pdGlhbGl6YXRpb24gdG8gdXNlIG5ldyBtdWx0aS1idXMgSTJDIEFQSS4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYjI0ZjExOWQ2NzJiNzA5ZDE1M2ZmMmFjMDkxZDRhYTYzZWM2ODc3ZApBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgU2VwIDcgMTY6NTE6MDQgMjAwNiAtMDQwMAoKICAgIE11bHRpLWJ1cyBJMkMgaW1wbGVtZW50YXRpb24gb2YgTVBDODM0eAoKICAgIEhlbGxvLAoKICAgIEF0dGFjaGVkIGlzIGEgcGF0Y2ggaW1wbGVtZW50aW5nIG11bHRpcGxlIEkyQyBidXNlcyBvbiB0aGUgTVBDODM0eCBDUFUKICAgIGZhbWlseSBhbmQgdGhlIE1QQzgzNDlFTURTIGJvYXJkIGluIHBhcnRpY3VsYXIuCiAgICBUaGlzIHBhdGNoIHJlcXVpcmVzIFBhdGNoIDEgKEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMpLgogICAgVGVzdGluZyB3YXMgcGVyZm9ybWVkIG9uIGEgNTMzTUh6IGJvYXJkLgoKICAgIC8qKiogTm90ZTogVGhpcyBwYXRjaCByZXBsYWNlcyB0aWNrZXQgRE5YIzIwMDYwODMwNDIwMDAwMjcgKioqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKICAgIENIQU5HRUxPRzoKCSAgICBJbXBsZW1lbnRlZCBkcml2ZXItbGV2ZWwgY29kZSB0byBzdXBwb3J0IHR3byBJMkMgYnVzZXMgb24gdGhlCiAgICBNUEM4MzR4IENQVSBmYW1pbHkgYW5kIHRoZSBNUEM4MzQ5RU1EUyBib2FyZC4gIEF2YWlsYWJsZSBJMkMgYnVzIHNwZWVkcwogICAgYXJlIDUwa0h6LCAxMDBrSHogYW5kIDQwMGtIeiBvbiBlYWNoIGJ1cy4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYmI5OWFkNmQ4MjU3YmY4MjhmMTUwZDQwZjUwN2IzMGQ4MGE0YTdhZQpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgU2VwIDcgMTY6NTA6NTQgMjAwNiAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMKCiAgICBIZWxsbywKCiAgICBBdHRhY2hlZCBpcyBhIHBhdGNoIHByb3ZpZGluZyBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMgYXQgdGhlCiAgICBjb21tYW5kIGxldmVsLiAgVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBwYXRjaCBpbmNsdWRlcyBhbiBpbXBsZW1lbnRhdGlvbgogICAgZm9yIHRoZSBNUEM4MzR4IENQVSBhbmQgTVBDODM0OUVNRFMgYm9hcmQuCgogICAgLyoqKiBOb3RlOiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRpY2tldCBETlgjMjAwNjA4MzA0MjAwMDAxOCAqKiovCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CgogICAgT3ZlcnZpZXc6CgogICAgMS4gSW5jbHVkZSBuZXcgJ2kyYycgY29tbWFuZCAoYmFzZWQgb24gVVNCIGltcGxlbWVudGF0aW9uKSB1c2luZwogICAgQ09ORklHX0kyQ19DTURfVFJFRS4KCiAgICAyLiBBbGxvdyBtdWx0aXBsZSBidXNlcyBieSBkZWZpbmluZyBDT05GSUdfSTJDX01VTFRJX0JVUy4gIE5vdGUgdGhhdAogICAgdGhlIGNvbW1hbmRzIHRvIGNoYW5nZSBidXMgbnVtYmVyIGFuZCBzcGVlZCBhcmUgb25seSBhdmFpbGFibGUgdW5kZXIgdGhlCiAgICBuZXcgJ2kyYycgY29tbWFuZCBtZW50aW9uZWQgaW4gdGhlIGZpcnN0IGJ1bGxldC4KCiAgICAzLiBUaGUgb3B0aW9uIENGR19JMkNfTk9QUk9CRVMgaGFzIGJlZW4gZXhwYW5kZWQgdG8gd29yayBpbiBtdWx0aS1idXMKICAgIHN5c3RlbXMuICBXaGVuIENPTkZJR19JMkNfTVVMVElfQlVTIGlzIHVzZWQsIHRoaXMgb3B0aW9uIHRha2VzIHRoZSBmb3JtCiAgICBvZiBhbiBhcnJheSBvZiBidXMtZGV2aWNlIHBhaXJzLiAgT3RoZXJ3aXNlLCBpdCBpcyBhbiBhcnJheSBvZiB1Y2hhci4KCiAgICBDSEFOR0VMT0c6CgkgICAgQWRkZWQgbmV3ICdpMmMnIG1hc3RlciBjb21tYW5kIGZvciBhbGwgSTJDIGludGVyYWN0aW9uLiAgVGhpcyBpcwogICAgY29uZGl0aW9uYWxseSBjb21waWxlZCB3aXRoIENPTkZJR19JMkNfQ01EX1RSRUUuICBOZXcgY29tbWFuZHMgYWRkZWQgZm9yCiAgICBzZXR0aW5nIEkyQyBidXMgc3BlZWQgYXMgd2VsbCBhcyBjaGFuZ2luZyB0aGUgYWN0aXZlIGJ1cyBpZiB0aGUgYm9hcmQKICAgIGhhcyBtb3JlIHRoYW4gb25lIChjb25kaXRpb25hbGx5IGNvbXBpbGVkIHdpdGgKICAgIENPTkZJR19JMkNfTVVMVElfQlVTKS4gIFVwZGF0ZWQgTk9QUk9CRSBsb2dpYyB0byBoYW5kbGUgbXVsdGlwbGUgYnVzZXMuCiAgICBVcGRhdGVkIFJFQURNRS4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYmVkODVjYWY4NzI3MTRlYmY1MzAxMzk2N2E2OTVjOWQ2M2FjZmM2OApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTg6MTM6MzYgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciBFcnJhdGEgRERSNiBvbiBNUEMgODM0eCBzeXN0ZW1zCgogICAgQ0hBTkdFTE9HOgoKICAgICogRXJyYXRhIEREUjYsIHdoaWNoIGFmZmVjdHMgYWxsIGN1cnJlbnQgTVBDIDgzNHggcHJvY2Vzc29ycywgbGlzdHMgY2hhbmdlcwogICAgICByZXF1aXJlZCB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdmFyaW91cyB0eXBlcyBvZiBERFIgbWVtb3J5LiAgVGhpcwogICAgICBwYXRjaCBpbXBsZW1lbnRzIHRob3NlIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZmQ2ZTQ3MGY2Mzk4ODMwMDJjN2M1OWQ1NjI2OTBhNWNiMGY0ODY1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxODo0NToyMyAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogZml4IFRRTSBidWlsZCBieSBkZWZpbmluZyBhIENGR19GTEFTSF9TSVpFIGZvciBpdAoKY29tbWl0IDMxMDY4YjdjNGFiZWVmY2IyYzhmZDRmYmVjY2M4ZWM2YzZkMDQ3NWEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE3OjA3OjAwIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUgZmxhc2ggbWVtb3J5IHNpemVzIG9uIDgzeHggc3lzdGVtcwoKICAgIENIQU5HRUxPRzoKCiAgICAqIE9uIDgzeHggc3lzdGVtcywgdXNlIHRoZSBDRkdfRkxBU0hfU0laRSBtYWNybyB0byBwcm9ncmFtIHRoZSBMQkMgbG9jYWwgYWNjZXNzCiAgICAgICB3aW5kb3cgcmVnaXN0ZXJzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgaGFyZC1jb2RlZCB2YWx1ZSBvZiA4TUIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZmMzNGFlNjZlNzNmYTc4NDFkMWEwMDZkYzFiNWRjYmMxZjc4OTY1CkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozODoxMyAyMDA2ICswODAwCgogICAgbXBjODN4eDogVW5pZmllZCBUUU04MzR4IHZhcmlhYmxlIG5hbWVzIHdpdGggODN4eCBhbmQgY29uc29saWRhdGVkIG1hY3JvcwoKICAgIFVuaWZpZWQgVFFNODM0eCB2YXJpYWJsZSBuYW1lcyB3aXRoIDgzeHggYW5kIGNvbnNvbGlkYXRlZCBtYWNybwogICAgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSA4MzYwIGFuZCBvdGhlciB1cGNvbWluZyA4M3h4IGRldmljZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjZlZGE3ZjgwY2NjMTNkNjU4MDIwMjY4YzUwN2Q3MTczY2YyZThhYQpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTQ6NDE6MjEgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IENoYW5nZWQgdG8gdW5pZmllZCBtcHg4M3h4IG5hbWVzIGFuZCBhZGRlZCBjb21tb24gODN4eCBjaGFuZ2VzCgogICAgSW5jb3Jwb3JhdGVkIHRoZSBjb21tb24gdW5pZmllZCB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlIGNoYW5nZXMgaW4gcHJlcGFyYXRpb24KICAgIGZvciByZWxlYXNpbmcgbXBjODM2MCBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg5NGM0NmMyN2M2NDg5MWY5M2FjMDRlZGRlODZhOWZhOTc1OGQ5MgpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6MzY6MDIgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCBtaXNzaW5nIGJ1aWxkIGZvciBtcGM4MzQ5ZW1kcyBwY2kuYwoKICAgIE1ha2UgcGNpIGJ1aWxkIGZvciBtcGM4MzQ5ZW1kcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5YTgxZmY3NDBiMjlkZWVhMWUyYWIwOGEzYzJhYzEzNmMyZTYyMTkKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM5OjQ5IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmVkIHVudXNlZCBmaWxlIHJlc2V0dmVjLlMgZm9yIG1wYzgzeHggY3B1CgogICAgUmVtb3ZlZCB1bnVzZWQgZmlsZSByZXNldHZlYy5TIGZvciBtcGM4M3h4IGNwdQoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0Zjg5OWZjNDY1YzNlNDRmMmI1NWVjYzcwNjE4ZjU2OTZmYzBkZGYKQXV0aG9yOiBOaWNrIFNwZW5jZSA8Tmljay5TcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IFNlcCAzMCAwMDozMjo1OSAyMDA2IC0wNzAwCgogICAgTkFORCBGbGFzaCB2ZXJpZnkgYWNyb3NzIGJsb2NrIGJvdW5kYXJpZXMKCiAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBhIHByb2JsZW0gd2hlbiBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzCiAgICBkZWZpbmVkCiAgICBhbmQgdGhlIHdyaXRlIGNyb3NzZXMgYSBibG9jayBib3VuZGFyeS4gVGhlIHBvaW50ZXIgdG8gdGhlIHZlcmlmaWNhdGlvbgogICAgYnVmZmVyIChidWZzdGFydCkgaXMgbm90IGJlaW5nIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc3RhcnRpbmcgb2YgdGhlCiAgICBuZXcKICAgIGJsb2NrIHNvIHRoZSB2ZXJpZmljYXRpb24gb2YgdGhlIHNlY29uZCBibG9jayBmYWlscy4KCiAgICBDSEFOR0VMT0c6CgogICAgKiBGaXggTkFORCBGTEFTSCBwYWdlIHZlcmlmaWNhdGlvbiBhY3Jvc3MgYmxvY2sgYm91bmRhcmllcwoKY29tbWl0IGY0ODRkYzc5MWEzOTMyNTM3MjEzYzQzYzY1NGNjMTI5NWM2NGI4NGMKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCA3IDA3OjM5OjQ2IDIwMDYgLTA3MDAKCiAgICBBZGRlZCBSR01JSSBzdXBwb3J0IHRvIHRoZSBUU0VDcyBhbmQgTWFydmVsbCA4ODExMTEgUGh5CgogICAgQWRkZWQgYSBwaHkgaW5pdGlhbGl6YXRpb24gdG8gYWRqdXN0IHRoZSBSR01JSSBSWCBhbmQgVFggdGltaW5nCiAgICBBbHdheXMgc2V0IHRoZSBSMTAwIGJpdCBpbiAxMDAgQmFzZVQgbW9kZSByZWdhcmRsZXNzIG9mIHRoZSBUU0VDIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ODMxYzhiOGE5Nzc5OWRhNzc5MjNkNmJiYjRjMjYwYzBkNDU1MjFjCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTM6MTA6MDAgMjAwNiArMDgwMAoKICAgIFJlbW92ZSBzb21lIHVudXNlZCBDRkcgZGVmaW5lLgogICAgdW5kZWYgQ0ZHX0RSQU1fVEVTVAoKY29tbWl0IDk5YzA5YzRkZWMzNGY3N2MyNDNiZjUxYmVhNTMyZTNmMzM5NDEwYWQKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMzowNzozNiAyMDA2ICswODAwCgogICAgQ2hhbmdlIHRoZSBURVhUX0JBU0UgZnJvbSAweEZGRjAwMDAwIHRvIDB4RkYwMDAwMDAuCiAgICBCb3RoIHdvcmsuIDB4RkYwMDAwMDAgc2VlbXMgbW9yZSByZWFzb25hYmxlLgoKY29tbWl0IGM1OTIwMDQ0MzA3MjM1MzA0NGFhNGJmNzM3YTVhNjBmOWE5YWYyMzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyIDE1OjE1OjAxIDIwMDYgKzAxMDAKCiAgICBSZWxlYXNlIFUtQm9vdCAxLjEuNgoKY29tbWl0IGMxZmJlNDEwM2EwZDZjODk1N2Y5MTJhZjkwMmQ3MDViYTY3ODM2ZjIKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxNDo0OCAyMDA2ICswODAwCgogICAgVGhpcyBwYXRjaCBjb21lcyBmcm9tIFl1bGkncyBwb3N0ZWQgcGF0Y2ggb24gOC84LzIwMDYKICAgIHRpdGxlZCAiQ0ZJIERyaXZlciBMaXR0bGUtRW5kaWFuIHdyaXRlIElzc3VlIi4KCiAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL21lc3NhZ2UucGhwP21zZ19pZD0zNjMxMTk5OQoKICAgIElmIHRoYXQgcGF0Y2ggYXBwbGllZCwgcGxlYXNlIGRpc2NhcmQgdGhpcyBvbmUuCiAgICBVbnRpbCBub3cgLCBJIGRvIG5vdCBzZWUgaGlzIHBhdGNoIGlzIGFwcGxpZWQuIFNvIHBsZWFzZSBhcHBseSB0aGlzIG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdWxpIEJhcmNvaGVuIDx5dWxpQGFyYWJlbGxhc3cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4MjVmMTU4ZTQ0OWUxZTljZjc0YzA4ZTU3Mjk1NWUxMjIzOTRjOTYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxMjozMSAyMDA2ICswODAwCgogICAgVHNpMTA4IG9uIGNoaXAgaTJjIHN1cHBvcnQuCgogICAgVGhlIGkyYyAgSW50ZXJmYWNlIHByb3ZpZGVzIGEgbWFzdGVyLW9ubHksIHNlcmlhbCBpbnRlcmZhY2UgdGhhdCBjYW4gYmUKICAgIHVzZWQgZm9yIGluaXRpYWxpemluZyBUc2kxMDgvVHNpMTA5IHJlZ2lzdGVycyBmcm9tIGFuIEVFUFJPTSBhZnRlciBhCiAgICBkZXZpY2UgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjI2ZTdkNmYwOWI5YTFhYzA3NGNkOTE4YzgxMjI1YTQ2ODliYmE4CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MTE6MDYgMjAwNiArMDgwMAoKICAgIFRzaTEwOCBvbiBjaGlwIHBjaSBjb250cm9sbGVyIHN1cHBvcnQuCgogICAgSWYgdGhlcmUgaXMgbm8gcGNpIGNhcmQsIHRoZSB0c2kxMDgvMTA5IHBjaSBjb25maWd1cmUgcmVhZCB3aWxsCiAgICBjYXVzZSBhIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uIHRvIHRoZSBwcm9jZXNzb3IuIFBDSSBlcnJvciBzaG91bGQKICAgIGFsc28gYmUgY2xlYXJlZCBhZnRlciB0aGUgcmVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxOTI3Y2VlOTc3MTI2ZTU0N2NlZWJhMjNlNGY5NzhmMzc3Y2ZiOGYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTowODo1NSAyMDA2ICswODAwCgogICAgVHVuZHJhIHRzaTEwOCBvbiBjaGlwIEV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydC4KCiAgICBUaGUgZm9sbG93aW5nIGlzIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIEV0aGVybmV0IGNvbnRyb2xsZXI6CiAgICBUaGUgVHNpMTA4LzkgRXRoZXJuZXQgQ29udHJvbGxlciBjb25uZWN0cyBTd2l0Y2ggRmFicmljIHRvIHR3byBpbmRlcGVuZGVudAogICAgR2lnYWJpdCBFdGhlcm5ldCBwb3J0cyxFMCBhbmQgRTEuICBJdCB1c2VzIGEgc2luZ2xlIE1hbmFnZW1lbnQgaW50ZXJmYWNlCiAgICB0byBtYW5hZ2UgdGhlIHR3byBwaHlzaWNhbCBjb25uZWN0aW9uIGRldmljZXMgKFBIWXMpLiAgRWFjaCBFdGhlcm5ldCBwb3J0CiAgICBoYXMgaXRzIG93biBzdGF0aXN0aWNzIG1vbml0b3IgdGhhdCB0cmFja3MgYW5kIHJlcG9ydHMga2V5IGludGVyZmFjZQogICAgc3RhdGlzdGljcy4gIEVhY2ggcG9ydCBzdXBwb3J0cyBhIDI1Ni1lbnRyeSBoYXNoIHRhYmxlIGZvciBhZGRyZXNzCiAgICBmaWx0ZXJpbmcuCUluIGFkZGl0aW9uLCBlYWNoIHBvcnQgaXMgYnJpZGdlZCB0byB0aGUgU3dpdGNoIEZhYnJpYwogICAgdGhyb3VnaCBhIDItS2J5dGUgdHJhbnNtaXQgRklGTyBhbmQgYSA0LUtieXRlIFJlY2VpdmUgRklGTy4KCiAgICBFYWNoIEV0aGVybmV0IHBvcnQgYWxzbyBoYXMgYSBwYWlyIG9mIGludGVybmFsIEV0aGVybmV0IERNQSBjaGFubmVscyB0bwogICAgc3VwcG9ydCB0aGUgdHJhbnNtaXQgYW5kIHJlY2VpdmUgZGF0YSBmbG93cy4gIFRoZSBFdGhlcm5ldCBETUEgY2hhbm5lbHMKICAgIHVzZSBkZXNjcmlwdG9ycyBzZXQgdXAgaW4gbWVtb3J5LCB0aGUgbWVtb3J5IG1hcCBvZiB0aGUgZGV2aWNlLCBhbmQKICAgIGFjY2VzcyB2aWEgdGhlIFN3aXRjaCBGYWJyaWMuICBUaGUgRXRoZXJuZXQgQ29udHJvbGxlcj9zIERNQSBhcmJpdGVyCiAgICBoYW5kbGVzIGFyYml0cmF0aW9uIGZvciB0aGUgU3dpdGNoIEZhYnJpYy4JVGhlIENvbnRyb2xsZXIgYWxzbwogICAgaGFzIGEgcmVnaXN0ZXIgYnVzaW50ZXJmYWNlIGZvciByZWdpc3RlciBhY2Nlc3NlcyBhbmQgc3RhdHVzIG1vbml0b3IKICAgIGNvbnRyb2wuCgogICAgVGhlIFBNRCAoUGh5c2ljYWwgTWVkaWEgRGV2aWNlKSBpbnRlcmZhY2Ugb3BlcmF0ZXMgaW4gTUlJLCBHTUlJLCBvciBUQkkKICAgIG1vZGVzLiAgVGhlIE1JSSBtb2RlIGlzIHVzZWQgZm9yIGNvbm5lY3Rpbmcgd2l0aCAxMCBvciAxMDAgTWJpdC9zIFBNRHMuCiAgICBUaGUgR01JSSBhbmQgVEJJIG1vZGVzIGFyZSB1c2VkIHRvIGNvbm5lY3Qgd2l0aCBHaWdhYml0IFBNRHMuICBJbnRlcm5hbAogICAgZGF0YSBmbG93cyB0byBhbmQgZnJvbSB0aGUgRXRoZXJuZXQgQ29udHJvbGxlciB0aHJvdWdoIHRoZSBTd2l0Y2ggRmFicmljLgoKICAgIEVhY2ggRXRoZXJuZXQgcG9ydCB1c2VzIGl0cyB0cmFuc21pdCBhbmQgcmVjZWl2ZSBETUEgY2hhbm5lbHMgdG8gbWFuYWdlCiAgICBkYXRhIGZsb3dzIHRocm91Z2ggYnVmZmVyIGRlc2NyaXB0b3JzIHRoYXQgYXJlIHByZWRlZmluZWQgYnkgdGhlCiAgICBzeXN0ZW0gKHRoZSBkZXNjcmlwdG9ycyBjYW4gZXhpc3QgYW55d2hlcmUgaW4gdGhlIHN5c3RlbSBtZW1vcnkgbWFwKS4KICAgIFRoZXNlIGRlc2NyaXB0b3JzIGFyZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBwb2ludCB0byBidWZmZXJzIGZpbGxlZAogICAgd2l0aCBkYXRhIHJlYWR5IHRvIHRyYW5zbWl0IG92ZXIgRXRoZXJuZXQsIG9yIHRoZXkgcG9pbnQgdG8gZW1wdHkKICAgIGJ1ZmZlcnMgcmVhZHkgdG8gcmVjZWl2ZSBkYXRhIGZyb20gRXRoZXJuZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OGFhMGMzNDI3ZjNlY2RlYjM0YWFiZmJiZTJkZDIzYjZhZDhmNDBlCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MDE6MzMgMjAwNiArMDgwMAoKICAgIFR1bmRyYSB0c2kxMDggaGVhZGVyIGZpbGUuCgogICAgVGhlIFR1bmRyYSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uIChUdW5kcmEpIFRzaTEwOCBpcyBhIGhvc3QgYnJpZGdlIGZvcgogICAgUG93ZXJQQyBwcm9jZXNzb3JzIHRoYXQgb2ZmZXJzIG51bWVyb3VzIHN5c3RlbSBpbnRlcmNvbm5lY3Qgb3B0aW9ucyBmb3IKICAgIGVtYmVkZGVkIGFwcGxpY2F0aW9uIGRlc2lnbmVycy4gVGhlIFRzaTEwOCBjYW4gaW50ZXJjb25uZWN0IDYweCBvcgogICAgTVBYIHByb2Nlc3NvcnMgdG8gUENJL1ggcGVyaXBoZXJhbHMsIEREUjItNDAwIG1lbW9yeSwgR2lnYWJpdCBFdGhlcm5ldCwKICAgIGFuZCBGbGFzaC4gUHJvdmlkZWQgdGhlIG1hY3JvIGRlZmluZSBmb3IgdHNpMTA4IGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4N2M0ZGIwOTY5OWM2Yjg5MTc2YjMxMDA0YWZjYjgzZWIxNTg1ZDQ3CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTk6MTUgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGhpZ2ggbGV2ZWwgY29kZTp0c2kxMDggaW5pdCArIG1wYzc0NDhocGMyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjc4MDFiOGFiMTFjNjFiNTc3ZTQ1NzQyYTUxNWJiM2IyM2I4MDI0MQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU3OjIxIDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgTWFrZSAsY29uZmlnLm1rIGFuZCBsaW5rIGZpbGUgZm9yIHRoZSBtcGM3NDQ4aHBjMiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NDExYzBjM2JiYzc5ZjliYThhZWY1ODI5NmE0MmQ4ZjlkOGEwYTYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1NTowNCAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIFRoZSBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjI1YmI1ZGRiNTBiMjQzZjkzMTI2MmNhOGM0Njk1NjQwOTQ3MTkxNwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjUyOjIxIDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgVGhlIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgbG93IGxldmVsIGFzc2VtYmxlIGxhbmd1YWdlIGluaXQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjNTI3ODNiM2QwMjRlMTUzYzQ5NzJiOTczMzJlMzE0YmMzYmRjNDYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo0OTo1MSAyMDA2ICswODAwCgogICAgR2VuZXJhbCBjb2RlIG1vZGlmaWNhdGlvbiBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydC4KICAgIDEuIEFkZCA3NDQ3QSBhbmQgNzQ0OCBwcm9jZXNzb3Igc3VwcG9ydC4KICAgIDIuIEFkZCB0aGUgZm9sbG93aW5nIGZsYWdzLgoKICAgIENGR19DT05GSUdfQlVTX0NMSyA6IElmIHRoZSA3NHh4IGJ1cyBmcmVxdWVuY3kgY2FuIGJlIGNvbmZpZ3VyZWQgZHluYW1pY2FsbHkKICAgIChzdWNoIGFzIGJ5IHN3aXRjaCBvbiBib2FyZCksIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIENGR19FWENFUFRJT05fQUZURVJfUkVMT0NBVEU6IElmIGFuIGV4Y2VwdGlvbiBvY2N1cnMgYWZ0ZXIgdGhlIHUtYm9vdAogICAgcmVsb2NhdGVzIHRvIFJBTSwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgQ0ZHX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTjogSWYgdGhlIHByaW50IG91dCBmdW5jdGlvbiB3aWxsIGNhdXNlIHRoZQogICAgc3lzdGVtIGhhbmcgaW4gZXhjZXB0aW9uLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBUaGVyZSBpcyBhIGRlc2lnbiBpc3N1ZSBmb3IgdHNpMTA4LzEwOSBwY2kgY29uZmlndXJlICByZWFkLiBXaGVuIHBjaSBzY2FuCiAgICB0aGUgc2xvdHMsIGlmIHRoZXJlIGlzIG5vIHBjaSBjYXJkLCB0aGUgdHNpMTA4Lzkgd2lsbCBjYXVzZSBhIG1hY2hpbmUKICAgIGNoZWNrIGV4Y2VwdGlvbiBmb3IgbXBjNzQ0OCBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTM2NmJmNDJmMjJkNjdlZmNlOGRhM2Y4YzQwYTQzZDRhM2MyNjk1CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6MzQ6NDcgMjAwNiArMDgwMAoKICAgIEFkZCBSRUFETUUgZmlsZSBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjU3MjFiNWNlYzJiZTRiY2U3OWNmYWRlMTdlYzhmNmFhMWU2NzUyNgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMjowNDozOCAyMDA2ICswMTAwCgogICAgRmluaXNoIHVwIHN1cHBvcnQgZm9yIE1hcmVsVjM4QiBib2FyZAogICAgIC0gYWRkIHdhdGNoZG9nIHN1cHBvcnQKICAgICAtIGVuYWJsZSBHUElPX1dLVVBfNyBwaW4gZm9yIGlucHV0CiAgICAgLSBjb2RlIGNsZWFudXAKCmNvbW1pdCBmZmExNTBiYzkwYzk0M2NhMjY1MTcwYmQxYmUzZjI5MzY3NGRkNWM3CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjQ1OjQ2IDIwMDYgKzAxMDAKCiAgICAtIEZpeCBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgdXNlIG9mIEVMREsgNCB3aGVuIGNvbXBpbGluZyBmb3IgTWFyZWxWMzhCOgoJICAqIHJlbW92ZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyBldGhhZGRyLmMKCSAgKiBhZGp1c3QgbGlua2VyIHNjcmlwdCAoZml4ZXMgYSBjcmFzaCByZXN1bHRpbmcgZnJvbSBpbmNvcnJlY3QKCSAgZGVmaW5pdGlvbiBvZiBfX3VfYm9vdF9jbWRfc3RhcnQpCiAgICAtIFNvbWUgTWFyZWxWMzhCIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBkYWU4MGYzY2FmOTc1NGE2ZGQzZGRmM2NmOTAzZDBjNDZjYmQ0Mzg1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjM4OjE2IDIwMDYgKzAxMDAKCiAgICAtIEFkZCBNUEM1WFhYIHJlZ2lzdGVyIGRlZmluaXRpb24gTVBDNVhYWF9XVV9HUElPX0RBVEFfSSBhbmQgY2hhbmdlIHRoZQogICAgICBNUEM1WFhYX1dVX0dQSU9fREFUQSBtYWNybyB0byBNUEM1WFhYX1dVX0dQSU9fREFUQV9PIChwZXIgTVBDNTIwMCBVc2VyJ3MKICAgICAgTWFudWFsKS4gUmVwbGFjZSB0aGUgdXNlcyBvZiBNUEM1WFhYX1dVX0dQSU9fREFUQSB3aXRoCiAgICAgIE1QQzVYWFhfV1VfR1BJT19EQVRBX08gZm9yIGFmZmVjdGVkIGJvYXJkcy4KCiAgICAtIEFkZCBkZWZpbnRpb25zIGZvciBzb21lIE1QQzVYWFggR1BJTyBwaW5zLgoKY29tbWl0IDgyZDljOWVjMjlhMWJlYzFiMDNiYTYxNjQyNWViYWVkMjMxMDcyYzgKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6MzQ6MjkgMjAwNiArMDEwMAoKICAgIENoYW5nZWQgTWFyZWxWMzhCIGJvYXJkIG1ha2UgdGFyZ2V0IHRvIGxvd2VyY2FzZS4gQ29uZmlnIGZpbGUgY2xlYW51cC4KCmNvbW1pdCAxOTU0YmU2ZTljOTQyMWI0NWQwYTlkMDViMTAzNTZhY2M3NTYzMTUwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjkgMDE6MDM6NTEgMjAwNiArMDIwMAoKICAgIEF1dG9tYXRpY2FsbHkgYWRqdXN0IEFSRkxBR1Mgc28gIm1ha2UgLXMiIGlzIHJlYWxseSBzaWxlbnQuCgpjb21taXQgZmFlNjg0ZTg5ODQ0ODU2MzgzYmRmMTAxNDQwODg5NTU3ZGYzZTZiMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNjo0NTowMCAyMDA2ICswMjAwCgogICAgW1BBVENIXSBvbWFwOTI1LmM6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEyNjU1ODE1MDJhYjhlYThjMDhlOGVkYmU5YmY2NGZiZDYyZmQ3NzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTc6MTI6NTggMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gQWRkIHNvbWUgbWlzc2luZyBtYWNodHlwZXMgZm9yIG5ldHN0YXIgJiB2b2ljZWJsdWUgYm9hcmRzCgogICAgVXNlIE1BQ0hfVFlQRV9ORVRTVEFSIGFuZCBNQUNIX1RZUEVfVk9JQ0VCTFVFIGRlZmluZXMgaW5zdGVhZCBvZgogICAgbnVtYmVycyBpbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NTZmMDU0NDEwY2VmNTJkODY4ZmViMzMwMTY4YjJhNGM0MDkxMzI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE1OjU1OjUyIDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIE5BTkQ6IFBhcnRpdGlvbiBuYW1lIHN1cHBvcnQgYWRkZWQgdG8gTkFORCBzdWJzeXN0ZW0KCiAgICBjaHBhcnQsIG5ib290IGFuZCBOQU5EIHN1YnN5c3RlbSByZWxhdGVkIGNvbW1hbmRzIG5vdyBhY2NlcHQgYWxzbyBwYXJ0aXRpb24KICAgIG5hbWUgdG8gc3BlY2lmeSBvZmZzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3YTY5YTE4YzJlY2ZkYTkwNDIzMWZkZjIzZTI1MjNlYTc3OTJlYjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyOTo0NCAyMDA2ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCAyNzUxYTk1YWJkMWI5NjkxMTA4MWMzNTdlOTZhMTJmYTk3YjQwZGVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDI6Mjk6MTQgMjAwNiArMDIwMAoKICAgIEVuYWJsZSBjb21tYW5kbGluZSBlZGl0aW5nIGFuZCBodXNoIHNoZWxsIG9uIGFsbCBUUU0gYm9hcmRzLgoKY29tbWl0IDgwNzhmMWE1ZjYzYTczOWI4NTMzNDc4ZjZjMmI2MmZiMWUyZjc5ZDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyODowMiAyMDA2ICswMjAwCgogICAgUkVBRE1FIHNheXMgQ0ZHX0FVVE9fQ09NUExFVEUsIGJ1dCBvY2RlIHVzZXMgQ09ORklHX0FVVE9fQ09NUExFVEUKCmNvbW1pdCA0NzFhN2JlN2EwNDJlOTVlNDQwZjVkZTk2OWM5NzY1MjE0YWU4ZDZlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMToxNDozMiAyMDA2ICswMjAwCgogICAgQ2hlY2sgZm9yIGlsbGVnYWwgY2hhcmFjdGVyICc9JyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lcy4KCiAgICBNYWtlIHN1cmUgdGhlIHN0cmluZyBwYXNzZWQgYXMgdmFyaWFibGUgbmFtZSBkb2VzIG5vdCBjb250YWluIGEgJz0nCiAgICBjaGFyYWN0ZXIuIFRoaXMgbm90IG9ubHkgcHJldmVudHMgdGhlIGNvbW1vbiBlcnJvciBvciB0eXBpbmcKICAgICJzZXRlbnYgZm9vPWJhciIgaW5zdGVhZCBvZiAic2V0ZW52IGZvbyBiYXIiLCBidXQgKG1vcmUgaW1wb3J0YW50bHkpCiAgICBhbHNvIGNsb3NlcyBhIGJhY2tkb29yIHdoaWNoIGFsbG93ZWQgdG8gZGVsZXRlIHdyaXRlLXByb3RlY3RlZAogICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBmb3IgZXhhbXBsZSBieSB1c2luZyAic2V0ZW52IGV0aGFkZHI9Ii4KCmNvbW1pdCAxOTk3M2I2YWQ5ODYzYTU2ZjVjNWZiY2ZkOTBlMjBhYjI0OTBhMmMyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDA6Mzg6MzkgMjAwNiArMDIwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBlMTE4ODdhNzdkODEwNzc0MTZhMmQxYzVlMDM1NDkxNmZlZThjMDM0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTc6NTU6MzEgMjAwNiArMDIwMAoKICAgIERvbid0IHBhc3MgYW55IGRlYnVnIG9wdGlvbnMgZGlyZWN0bHkgdG8gdGhlIGFzc2VtYmxlcgoKICAgIFdoZW4gcGFzc2luZyB0aGUgLWcgb3B0aW9uIHRvIGdjYywgZ2NjIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBhCiAgICBzdWl0YWJsZSAtLWc8Zm9ybWF0PiBvcHRpb24gdG8gcGFzcyBvbiB0byB0aGUgYXNzZW1ibGVyLgogICAgVGh1cywgdGhlcmUncyBubyBwb2ludCBpbiBmb3JjaW5nIGEgc3BlY2lmaWMgZGVidWcgb3B0aW9uIG9uIHRoZQogICAgYXNzZW1ibGVyIHVzaW5nIHRoZSAtV2EgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGVhMDhmZjZlMTRmOWViYjhjMDdjZmE3OWM1MWVmNTQwZWIwODczOTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI3IDA3OjQ3OjIyIDIwMDYgLTA1MDAKCiAgICBNUEM4Nnh4OiBDbGVhbmVkIHVwIHVudXNlZCBhbmQgY29uZGl0aW9uYWxseSB1c2VkIGxvY2FsIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzODkzNmNkYWU0NmJmZDI2MjNmZjgzZjZjZTliNjE2ZDM2YWIwZjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAyNyAxMTo1NToyMSAyMDA2ICswMjAwCgogICAgRml4ICJhciIgZmxhZ3MgaW4gc29tZSBNYWtlZmlsZXMgdG8gYWxsb3cgZm9yIHNpbGVudCAibWFrZSAtcyIKCmNvbW1pdCA0NjUzZjkxYzEzZWQ1MWMyMWNjNGMzODU1NzQ1ZDY5YTNmYjE4MTdmCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTQ6Mzg6MjUgMjAwNiAtMDQwMAoKICAgIEZpeCBUU0VDIGRyaXZlciAobm93IGZvciByZWFsKTogYXZvaWQgY3Jhc2hlcyBpZiBQSFkgaXMgbm90IGF0dGFjaGVkCiAgICB0byBhIFRTRUMgKGUuZy4gYSBzd2l0Y2ggaXMgY29ubmVjdGVkIHZpYSBSTUlJKSBvcgogICAgaWYgdGhlIFBIWSBpcyBkZWZlY3RpdmUvaW5jb3JyZWN0bHkgY29uZmlndXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBiOTg1YjVkNmU0ZmI4OGY1MDhmN2FhMGYxMjZjMmUyN2FkYTJiOTk5CkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTQ6Mzg6MjUgMjAwNiAtMDQwMAoKICAgIEZpeCBUU0VDIGRyaXZlcjogYXZvaWQgY3Jhc2hlcyBpZiBQSFkgaXMgbm90IGF0dGFjaGVkCiAgICB0byBhIFRTRUMgKGUuZy4gYSBzd2l0Y2ggaXMgY29ubmVjdGVkIHZpYSBSTUlJKSBvcgogICAgaWYgdGhlIFBIWSBpcyBkZWZlY3RpdmUvaW5jb3JyZWN0bHkgY29uZmlndXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAyYjJhNDBiZWJiZjE4MjI1MDZlODBlNjMxZDcyNTNlNjBmMGUwZmU2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBPY3QgMjYgMTY6MjQ6MzEgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cC4KCmNvbW1pdCA1ZTNiMGJjMTlmMDdlZDI3N2Q4NTMyNGFkMDQyNzY0MmM4OTgxYmFmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTU6NDg6NTkgMjAwNiArMDIwMAoKICAgIEZpbmlzaCB1cCBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAwL0FUU1RLMTAwMiBib2FyZHMKCiAgICBBZGQgYXRzdGsxMDAyX2NvbmZpZyB0YXJnZXQgdG8gTWFrZWZpbGUgYW5kIG1vdmUgdGhlIEFWUjMyIHNlY3Rpb24KICAgIGRvd24gYmVsb3cgQmxhY2tmaW4gc28gdGhhdCBpdCBkb2Vzbid0IGVuZCB1cCBpbiB0aGUgbWlkZGxlIG9mCiAgICBNSVBTLgoKICAgIERyb3AgdGhlIGF1dG9nZW5lcmF0ZWQgbGlua2VyIHNjcmlwdCB0aGluZyBmb3Igbm93LiBXaWxsIGhhdmUgdG8KICAgIHJldmlzaXQgaG93IHRvIGhhbmRsZSBjaGlwcyB3aXRoIGRpZmZlcmVudCBmbGFzaCBhbmQgUkFNIGxheW91dAogICAgbGF0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzc2Zjk1MWE3NDdjZmI4N2JhODI2ZWY0NWI1YWVhODJkNWI1ZGJiNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjQgMjM6NDc6MzcgMjAwNiAtMDUwMAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIE11bHRpLUltYWdlIGZpbGVzIHRoYXQgY29udGFpbiBhIGRldmljZSB0cmVlCgogICAgSWYgYSBNdWx0aS1JbWFnZSBmaWxlIGNvbnRhaW5zIGEgdGhpcmQgaW1hZ2Ugd2UgdHJ5IHRvIHVzZSBpdCBhcyBhCiAgICBkZXZpY2UgdHJlZS4gIFRoZSBkZXZpY2UgdHJlZSBpbWFnZSBpcyBhc3N1bWVkIHRvIGJlIHVuY29tcHJlc3NlZCBpbiB0aGUKICAgIGltYWdlIGZpbGUuICBXZSBhdXRvbWF0aWNhbGx5IGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgZGV2aWNlIHRyZWUgaW4gbWVtb3J5CiAgICBhbmQgcHJvdmlkZSBhbiA4ayBwYWQgdG8gYWxsb3cgbW9yZSB0aGFuIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgZ3Jvd3RoLgoKICAgIEFkZGl0aW9uYWxseSwgYSBkZXZpY2UgdHJlZSB0aGF0IHdhcyBjb250YWluZWQgaW4gZmxhc2ggd2lsbCBub3cgYXV0b21hdGljYWxseQogICAgZ2V0IGNvcGllZCB0byBzeXN0ZW0gbWVtb3J5IGFzIHBhcnQgb2YgYm9vdC4gIFByZXZpb3VzbHkgYW4gZXJyb3Igd2FzCiAgICByZXBvcnRlZCBpZiBvbmUgdHJpZWQgdG8gYm9vdCBhIGRldmljZSB0cmVlIHRoYXQgd2FzIGluIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2M1MmM0Yjk0M2ZmNTJiYmU4Nzk2YTdlMmQzZTQ3NmNlYWYzZjUxMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMjE6MzU6NTUgMjAwNiArMDIwMAoKICAgIFN3aXRjaCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBDSEFOR0VMT0cgZmlsZS4KICAgICh1c2UgIm1ha2UgQ0hBTkdFTE9HIiB0byB1cGRhdGUgaXQgZnJvbSB0aW1lIHRvIHRpbWUpCgpjb21taXQgN2FkZTBjNjM0YTk3OWMzMmZhOTFhNzRlOGY1Nzc1ZjI0NjUxZmJlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxODowNjo0OCAyMDA2ICswMjAwCgogICAgRml4IGJ1ZyBpbiBQUEM0NDAgTkFORCBkcml2ZXIgY3B1L3BwYzR4eC9uZGZjLmMKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMjQgT2N0IDIwMDYKCmNvbW1pdCA4YWUzYjcxM2IyMjg2ZTBjMzIxM2I3ODAyMDYyZTRjMTU5OTAxMGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTc6MjQ6NTUgMjAwNiArMDIwMAoKICAgIE1lcmdlIHdpdGggL2hvbWUvd2QvZ2l0L3UtYm9vdC9tYXN0ZXIKCmNvbW1pdCA0N2E2OTg5YzEwNjg1ZDJhYjNlZmNmOTUyMjhjZTUwZDJhNDk2ZDNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTU6MzI6NTcgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cAoKY29tbWl0IDNhNzhlM2U3NWI2MzNlY2I2NDEzMTE0ZmZkMTFlMmYwMDBjNGYxMWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDo1MTozNiAyMDA2ICswMjAwCgogICAgTW92ZSBhdHN0azEwMDAgZmlsZXMgaW50byB2ZW5kb3Igc3BlY2lmaWMgZGlyZWN0b3J5LgogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAxMiBTZXAgMjAwNgoKY29tbWl0IDZjY2VjNDQ5MmU3NzQyOGZkNmVhZmQzZGZlOTRmYmRmMDhlOTFkMzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDo0MjozNyAyMDA2ICswMjAwCgogICAgQWRkIEFUU1RLMTAwMCBhbmQgQVRTVEsxMDAyIGJvYXJkIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwMCB3aXRoIHRoZSBBVFNUSzEwMDIgQ1BVCiAgICBkYXVnaHRlcmJvYXJkLgoKICAgIEFUU1RLMTAwMCBpcyBhIGZ1bGwtZmVhdHVyZWQgZGV2ZWxvcG1lbnQgYm9hcmQgZm9yIEFUMzJBUCBDUFVzLiBJdAogICAgaGFzIHR3byBldGhlcm5ldCBwb3J0cywgYSBoaWdoIHF1YWxpdHkgUVZHQSBMQ0QgcGFuZWwsIGEgbG91ZHNwZWFrZXIsCiAgICBhbmQgY29ubmVjdG9ycyBmb3IgVVNBUlQsIFBTLzIsIFZHQSwgVVNCLCBNTUMvU0QgY2FyZHMgYW5kCiAgICBDb21wYWN0Rmxhc2ggY2FyZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoaXMgcGFnZToKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvdG9vbHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBUaGUgQVRTVEsxMDAyIGlzIGEgZGF1Z2h0ZXJib2FyZCBmb3IgdGhlIEFUU1RLMTAwMCBzdXBwb3J0aW5nIHRoZQogICAgQVQzMkFQNzAwMCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGY5M2FlNzg4YzM2NDBmY2RlNWRiMzgzNDcxZDQ1NTQ4ZmY0MDYwZDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDozMToyNCAyMDA2ICswMjAwCgogICAgQWRkIGNvbW1vbiBzZXJpYWwgZHJpdmVyIGZvciBBdG1lbCBBVDMyIGFuZCBBVDkxIGNoaXBzCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBpcyBhIGZpcnN0IGF0dGVtcHQgYXQgY3JlYXRpbmcgYSBjb21tb24gc2VyaWFsIGRyaXZlciBmb3IgQXRtZWwKICAgIGNoaXBzLiBGb3Igbm93LCBpdCBzdXBwb3J0cyB0aGUgQVQzMkFQNzAwMCBBVlIzMiBjaGlwLCBidXQgaXQgc2hvdWxkCiAgICBiZSBwb3NzaWJsZSB0byBzdXBwb3J0IEFUOTFSTTkyMDAgYW5kIG90aGVyIEFSTS1iYXNlZCBjaGlwcyB3aXRoIHNvbWUKICAgIG1pbm9yIG1vZGlmaWNhdGlvbnMuCgogICAgVGhlcmUncyBub3RoaW5nIGZ1bmRhbWVudGFsbHkgQVZSMzItc3BlY2lmaWMgaW4gdGhpcyBkcml2ZXIsIGJ1dCBpdAogICAgZG9lcyB1c2Ugc29tZSBmZWF0dXJlcyB3aGljaCBhcmUgY3VycmVudGx5IG9ubHkgZGVmaW5lZCBmb3IgdGhlCiAgICBBVDMyQVAgQ1BVIHBvcnQ6CiAgICAgICogcG1fZ2V0X2Nsb2NrX2ZyZXE6IE9idGFpbiB0aGUgY2xvY2sgZnJlcXVlbmN5IG9mIGEgZ2l2ZW4gZG9tYWluCiAgICAgICogZ2QtPmNvbnNvbGVfdWFydDogQSAic3RydWN0IGRldmljZSIgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dAoJcmVnaXN0ZXIgbWFwcGluZ3MsIGdwaW8gcmVzb3VyY2VzIGFuZCBjbG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZQoJVUFSVCBkZXZpY2UuCgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgZmVhdHVyZXMsIHBsZWFzZSBzZWUgdGhlICJBVDMyQVAKICAgIENQVSIgcGF0Y2guCgpjb21taXQgNzJhMDg3ZTA0NzA1YzI2Y2FkOTgyODc5ZWJkMDZiNTI4MWJmODI1YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjI3OjM1IDIwMDYgKzAyMDAKCiAgICBBZGQgQVQzMkFQIENQVSBhbmQgQVQzMkFQNzAwMCBTb0Mgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVQzMkFQIENQVSBmYW1pbHkgYW5kIHRoZSBBVDMyQVA3MDAwCiAgICBjaGlwLCB3aGljaCBpcyB0aGUgZmlyc3QgY2hpcCBpbXBsZW1lbnRpbmcgdGhlIEFWUjMyIGFyY2hpdGVjdHVyZS4KCiAgICBUaGUgQVQzMkFQIENQVSBjb3JlIGlzIGEgaGlnaC1wZXJmb3JtYW5jZSBpbXBsZW1lbnRhdGlvbiBmZWF0dXJpbmcgYQogICAgNy1zdGFnZSBwaXBlbGluZSwgc2VwYXJhdGUgaW5zdHJ1Y3Rpb24tIGFuZCBkYXRhIGNhY2hlcywgYW5kIGEgTU1VLgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhlICJBVlIzMiBBUCBUZWNobmljYWwgUmVmZXJlbmNlIjoKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcmVzb3VyY2VzL3Byb2RfZG9jdW1lbnRzL2RvYzMyMDAxLnBkZgoKICAgIEluIGFkZGl0aW9uIHRvIHRoaXMsIHRoZSBBVDMyQVA3MDAwIGNoaXAgY29tZXMgd2l0aCBhIGxhcmdlIHNldCBvZgogICAgaW50ZWdyYXRlZCBwZXJpcGhlcmFscywgbWFueSBvZiB3aGljaCBhcmUgc2hhcmVkIHdpdGggdGhlIEFUOTEgc2VyaWVzCiAgICBvZiBBUk0tYmFzZWQgbWljcm9jb250cm9sbGVycyBmcm9tIEF0bWVsLiBGdWxsIGRhdGEgc2hlZXQgaXMKICAgIGF2YWlsYWJsZSBoZXJlOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9yZXNvdXJjZXMvcHJvZF9kb2N1bWVudHMvZG9jMzIwMDMucGRmCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2I2NGZlZjMzYzY2YmU2NDg4MjZjMGZmOTc1ODI5OGVmMTNkMDYwNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjIxOjE2IDIwMDYgKzAyMDAKCiAgICBBZGQgQVZSMzIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgNiBTZXAgMjAwNiAxNjoyMzowMiArMDIwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgY29kZSBmb3IgdGhlIEF0bWVsIEFWUjMyCiAgICBhcmNoaXRlY3R1cmUuIFNlZSBkb2MvUkVBRE1FLkFWUjMyIGZvciBkZXRhaWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJkYTJkOWE0NzY2MDYzYjk4NDhmM2EzNWFkNjAyNTQ5OWNmODcyNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxMzo1NzozMyAyMDA2ICswMjAwCgogICAgVXNlIC1nIGluc3RlYWQgb2YgLWdzdGFicyBpbiBBRkxBR1NfREVCVUcKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMzAgQXVnIDIwMDYKCiAgICBJbiBjb25maWcubWssIC1XYSwtZ3N0YWJzIGlzIHVuY29uZGl0aW9uYWxseSBhcHBlbmRlZCB0byBBRkxBR1Mgbm8KICAgIG1hdHRlciB3aGF0IHRoZSB0YXJnZXQncyBwcmVmZXJyZWQgZGVidWdnaW5nIGZvcm1hdCBpcy4gVGhpcyBwYXRjaAogICAgc2ltcGx5IHJlcGxhY2VzIC1nc3RhYnMgd2l0aCAtZywgc28gdGhhdCB0aGUgZGVmYXVsdCBkZWJ1Z2dpbmcgZm9ybWF0CiAgICBmb3IgdGhlIGFyY2hpdGVjdHVyZSBpcyB1c2VkLgoKY29tbWl0IDk2NTgyOTg3MjE2OWMyOTk2MDIzODQwZDk4ZTFkODVhZDE0OGQ2MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxMzo1NToxOCAyMDA2ICswMjAwCgogICAgRml4L3dvcmthcm91bmQgYnJva2VuIGRlcGVuZGVuY3kgaGFuZGxpbmcgd2l0aCBtYWtlIDMuODEKICAgIEJhc2VkIG9uIHBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMjkgQXVnIDIwMDYgMTE6MjA6MzkgKzAyMDAKCmNvbW1pdCA4MzE4ZmJmOGNjMzA0MThiNjIxZWE5ZjM5Yjg0YjRjMWEwOGYwMDNhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE9jdCAyMyAyMjoxNzowNSAyMDA2ICswMjAwCgogICAgRml4IHNlcXVvaWEgc2VwYXJhdGUgb2JqZWN0IGRpcmVjb3J5IGJ1aWxkaW5nIHByb2JsZW1zLgoKY29tbWl0IDNkZmE5Y2ZkY2VlNzhiMzBkYTM0MzIzMThiMzI4MjFmZmFiZTk3NGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE3OjE2OjM1IDIwMDYgLTA1MDAKCiAgICBVc2UgZ2VuZXJpYyBJMkMgcmVnaXN0ZXIgYmxvY2sgb24gODV4eCBhbmQgODZ4eC4KCiAgICBSZXBsYWNlIHByaXZhdGUgSU1NQVAgSTJDIHN0cnVjdHVyZXMgd2l0aCBnZW5lcmljIHJlZyBibG9jawogICAgYW5kIGFsbG93IDg2eHggdG8gaGF2ZSBtdWx0aXBsZSBJMkMgZGV2aWNlIGJ1c3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1MDEyODI3ZGYxMWNhMGM5YmUxZGY1ZjhiMTUzZTE4OGRjMmZhN2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE1OjU0OjM0IDIwMDYgLTA1MDAKCiAgICBGaXggY29tcGlsYXRpb24gd2FybmluZ3Mgb24gYSBmZXcgODV4eCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMDQ3NjcyNjg0Y2Y4NWNiNmY5NmExZmJjOTkzMTgwYWFhZjE5YTk5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyMCAxNTo1MDoxNSAyMDA2IC0wNTAwCgogICAgQ29udmVydGVkIGFsbCA4NXh4IGJvYXJkcyB0byB1c2UgYSBjb21tb24gRlNMIEkyQyBkcml2ZXIuCiAgICBJbnRyb2R1Y2VkIENPRklHX0ZTTF9JMkMgdG8gc2VsZWN0IHRoZSBjb21tb24gRlNMIEkyQyBkcml2ZXIuCiAgICBBbmQgcmVtb3ZlZCBoYXJkIGkyYyBwYXRoIGZyb20gYSBmZXcgdS1ib290LmxkcyBzY2lwdHMgdG9vLgogICAgTWlub3Igd2hpdGVzcGFjZSBjbGVhbnVwcyBhbG9uZyB0aGUgd2F5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQ0NWY2OWUzNjJiMDU4OTJjOWU5MmE3OTA3ZTU4MjA5OTU2MTJhYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTI6MDI6MjQgMjAwNiAtMDUwMAoKICAgIFJld3JpdGUgYSBzZXJpZXMgb2YgZ290byBzdGF0ZW1lbnRzIGFzIGEgc2VxdWVuY2VzIG9mCiAgICBjb25kaXRpb25hbCBleHByZXNzaW9ucyBpbnN0ZWFkLgoKICAgIFVzZSBjb25zaXN0ZW50IHJldHVybiBjb2RlIDAvLTEgZm9yIGdvb2QvYmFkIGluZGljYXRvcnMuCgogICAgSW5jbHVkZSBvbmUgZmV3ZXIgZmlsZSBpZiB0aGUgZHJpdmVyIGlzbid0IHVzZWQgYXQgYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzIzN2MwMzNiMDJmZTI5NTg4MDQzNWYxZWI4MDgxOWEwYzk4NzUzMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTE6MDI6MTYgMjAwNiAtMDUwMAoKICAgIE1vdmVkIGkyYyBkcml2ZXIgb3V0IG9mIGNwdS9tcGM4Nnh4L2kyYy5jIGludG8gZHJpdmVycy9mc2xfaTJjLmMKCiAgICBpbiBhbiBlZmZvcnQgdG8gYmVnaW4gdG8gdW5pZnkgdGhlIHVtcHRlZW4gRlNMIEkyQyBkcml2ZXJzIHRoYXQKICAgIGFyZSBhbGwgb3RoZXJ3aXNlIHZlcnkgc2ltaWxhci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzYTdmY2RmMzdmNmVhOTQyOWFlMDRjOWRmNjdmODkzMzY0Y2ZlNGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE5IDExOjMzOjUyIDIwMDYgLTA1MDAKCiAgICAqIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzIGZvciBnY2MgNC4wCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjllMWY1YjllNmY5Y2U4MTBmNWU4YmYyOTYxYzk1NDJhNTg2NWMyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDE3IDA2OjE0OjMxIDIwMDYgKzAyMDAKCiAgICBBZGQgbW9uaXRvciBmdW5jdGlvbnMgZm9yIGluZGlyZWN0IGFjY2VzcyB0byBQUEM0NDAgRENSJ3MKICAgIFBhdGNoIGJ5IExlb25pZCBCYXJ5dWRpbiwgMTIgT2N0IDIwMDYKCmNvbW1pdCA1ZjMyNDlhMGExNjhlNDQ2YTRjYzk2NjliMmJjZTBiYzQ1NmYwYTA5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMyAxNjo0Nzo1MyAyMDA2IC0wNTAwCgogICAgRml4ZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGlzc3Vlcy4KICAgIFJlbW92ZWQgc3B1cmlvdXMgTEFXQVIgdGhpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZWU5MGNiNzdlMDFkNmU4Y2NkMzdlMWJkOTY2Nzg1OTc4NzVjMzkxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxMiAxMDo0MjozNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUgZmlsZXMgYW5kIGxvY2FsIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWVhZjNhNWZmNDk2MGE0NmYzYTkwNjM1NjhiYTJhZjc4ODNmMDdjNQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIE9jdCAxMCAwMDoyMzozMiAyMDA2IC0wNjAwCgogICAgRml4IHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZy4KCiAgICBXaGVuIENPTkZJR19PRl9GTEFHX1RSRUUgaXMgc2V0LCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIHRoYXQgJ2xlbicgaW4KICAgIGRvX2Jvb3RtX2xpbnV4KCkgbWF5IGJlIHVuaW5pdGlhbGl6ZWQuICBUaGVyZSBpcyBubyBwb3NzaWJpbGl0eSBpbiB0aGUKICAgIGN1cnJlbnQgY29kZSB0aGF0IGxlbiB3aWxsIGdldCB1c2VkIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGlzIGZpeCBmb2xsb3dzCiAgICB0aGUgZXhpc3RpbmcgY29udmVudGlvbiBvZiBzZXR0aW5nIGJvdGggbGVuIGFuZCBkYXRhIHRvIHplcm8gYXQgdGhlIHNhbWUKICAgIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczNzZlYjg3YWFhNjAxZjcyOGY5YjhlNWU5Y2QyNzExYTY3ZjUyOWUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDExIDE1OjEzOjAxIDIwMDYgLTA1MDAKCiAgICAqIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzIGZvciBnY2MgNC4wCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjY1MWJhYTM2NWU1NDQ3MjQ2YWFkNmE2MzNjY2Q2NjdjZjI0YTM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAxMSAxMDoxMDo0MyAyMDA2IC0wNTAwCgogICAgTW92ZSAiYXIiIGZsYWdzIHRvIGNvbmZpZy5tayB0byBhbGxvdyBmb3Igc2lsZW50ICJtYWtlIC1zIgoKY29tbWl0IDFmZDU2OTlhNGEyNGY1YzFkYWIxYjMyZjQ4MGJhY2UxZWJiOWZjM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE5OjAzIDIwMDYgLTA1MDAKCiAgICBDb2Rpbmcgc3R5bGUgY2hhbmdlcyB0byByZW1vdmUgbG9jYWwgdmFyaWJsZSBibG9ja3MKICAgIGFuZCByZWZvcm1hdCBhIGJpdCBuaWNlci4KCmNvbW1pdCA4YjI4M2RiYjNhMDhkMWI4ZDQwNmJjMTVmMTE5ZTA4MWIzZTI2MDZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzoxNjowNCAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IDdiMzgyYjcxMjVmMjM5N2NjZTYzMjUzZGY2MmYxODNlM2RmYTI3NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE0OjQ1IDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgZTEwMzkwZGRkNzM2YjBkYWQxNTI4ZWVjNGIwZmUzNWMwODI3MTM5YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDY6NTMgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCA4OTg3NWU5NmJhM2YwMjMxNTdiZjUwZDVmOGUzM2JmMjU0OTY0YTc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowMzo0MyAyMDA2IC0wNTAwCgogICAgUmFuIGxpbmRlbnQgYW5kIGNsZWFuZWQgdXAgd2hpdGVzcGFjZSBpc3N1ZXMuCiAgICBGb3JtYXQgZm9yIDgwLWNvbHVtbnMgdG9vLgoKY29tbWl0IDMzMzk2MWFlNzA5NWZjNjZkOGEwNDFmY2UxYWM5ZWU4NzNiMDlkODYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjAyOjIyIDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBhbmQgODAtY29sIGlzc3Vlcy4KCmNvbW1pdCA1YzkxMmNiMWMzMTI2NmM2NmNhNTliMzZmOWI2Zjg3Mjk2NDIxZDc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzY6NTEgMjAwNiArMDIwMAoKICAgIENGR19OQU5EX1FVSUVUX1RFU1QgYWRkZWQgdG8gbm90IHdhcm4gdXBvbiBtaXNzaW5nIE5BTkQgZGV2aWNlCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgNWJjNTI4ZmE0ZGE3NTFkNDcyMzk3YjMwODEzNzIzOGE2NDY1YWZkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjM1OjI1IDIwMDYgKzAyMDAKCiAgICBVcGRhdGUgQUxQUiBjb2RlIChOQU5EIHN1cHBvcnQgd29ya2luZyBub3cpCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgNzdkNTAzNDg0N2QzMjg3NTNiODBjNDZiODNmOTYwYTE0YTI2ZjQwZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjMzOjAzIDIwMDYgKzAyMDAKCiAgICBSZW1vdmUgY29tcGlsZSB3YXJuaW5ncyBpbiBmcGdhIGNvZGUKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCBmMzQ0Mzg2N2U5MGQyOTc5YTdkZDFjNjViMGQ1Mzc3NzdlMWY5ODUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzA6NTIgMjAwNiArMDIwMAoKICAgIEFkZCBDT05GSUdfQk9BUkRfUkVTRVQgdG8gY29uZmlndXJlIGJvYXJkIHNwZWNpZmljIHJlc2V0IGZ1bmN0aW9uCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgZjU1ZGYxODE4N2U3YTQ1Y2I3M2ZlYzQzNzBkMTIxMzVlNjY5MWFlMQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgU2VwIDI5IDA4OjIzOjEyIDIwMDYgKzAxMDAKCiAgICBGaXggbWlzc2luZyB0Q3ljbGUvbW9kZnJlcSBjYWxjdWxhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MjcyZGMyZjU4ZjI0NzNkODk5NWZjYzliOTE2NDQwY2ZiYTA4MGYwCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjMzOjM1IDIwMDYgLTA1MDAKCiAgICBVcGRhdGVkIGNvbmZpZyBoZWFkZXJzIHRvIGFkZCBkZWZhdWx0IEZEVC1iYXNlZCBib290aW5nCgpjb21taXQgMDlmM2UwOWU5ZWJjZmE3OTE5Y2E4OTMxYTRiNTUwNGZhZGQxZjFkMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAxMyAxMDozNDoxOCAyMDA2IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGVUU0VDIDMgJiA0IG9uIDg1NDggQ0RTCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciB1c2luZyBlVFNFQyAzIGFuZCBlVFNFQyA0IG9uIHRoZSA4NTQ4IENEUy4KICAgICAgVGhpcyB3aWxsIG9ubHkgd29yayBvbiByZXYgMS4zIGJvYXJkcyAoYnV0IGRvZXNuJ3QgYnJlYWsgb2xkZXIgYm9hcmRzKQogICAgKiBDbGVhbmVkIHVwIHNvbWUgY29tbWVudHMgdG8gcmVmbGVjdCB0aGUgZXhwYW5kZWQgcm9sZSBvZiB0c2VjCiAgICAgIGluIG90aGVyIHN5c3RlbXMKCmNvbW1pdCAwODRkNjQ4YjEwOWM4OTg0ZjgzNjc0MDQzYzFhN2ZhMzg4NWVmODAxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjMzOjU2IDIwMDYgLTA1MDAKCiAgICBBZGRlZCBjb2RlIHRvIHN1cHBvcnQgMi42LjE4IFBDSSBjaGFuZ2VzIGluIHUtYm9vdAoKICAgICogQWRkZWQgY29kZSB0byBzd2l6emxlIHRoZSBJUlEgbWFwIGZvciB0aGUgUENJCgpjb21taXQgYWZiZGM2NDlmODc1MWU0ZjRmMWE2ZjUyN2VkZmUxMzk3NzNmMmMxNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTkgMDk6MzQ6MTAgMjAwNiAtMDUwMAoKICAgIE1vZGlmaWVkIG1ha2VmaWxlIGZvciBuZXcgYnVpbGQgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDE0YmE2YTc5OGJlYjc1M2U3YTg2NDUwMDQxNGZjYzJkMTk4YjhiYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTQgMDg6NDA6MzYgMjAwNiAtMDUwMAoKICAgIEhhbmRsZSA4Nnh4IFNWUiB2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBuZXcgUmVmZXJlbmNlIE1hbnVhbC4KICAgIEJvdGggODY0MSBhbmQgODY0MUQgaGF2ZSBTVlIgPT0gMHg4MDkwLCBhbmQgYXJlIGRpc3Rpbmd1aXNoZWQKICAgIGJ5IHRoZSBieXRlIGluIGJpdHMgMTYtMjMgaW5zdGVhZC4KICAgIFRoYW5rcyB0byBKYXNvbiBKaW4gZm9yIG5vdGljaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODhjOGY0OTIxZmM0N2ZiMGViMjM4NGIxNjU4NmYxYmQ3ZjI3NWJlNwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjggMTQ6MjU6MzEgMjAwNiArMDgwMAoKICAgIEZpeGVkIGFuIE9GLXRyZWUgb2ZmLWJ5LW9uZSBidWcgd2hlbiBhZGRpbmcgYSBuZXcgcHJvcGVydHkgbmFtZS4KICAgIFRoaXMgYnVnIHdpbGwgY2F1c2UgdGhlIGtlcm5lbCBib290aW5nIHRvIHBhdXNlIGEgbG9uZyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIDJmMTU3NzZjY2M2ZGMzMjM3N2Q4YmE5NjUyYjhmNTgwNTljMjdjNmQgY29tbWl0KQoKY29tbWl0IDliZmY3YTY5YTg4NWFkZWJiZDJiZDQ1OTkwNDk0ZWM0Y2Y5OThhMzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDExOjA1OjA5IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdHJhaWxpbmcgZW1wdHkgbGluZXMuCgpjb21taXQgY2Q2ZDczZDViODk1YTU5MzVhYzRmZGUwYTM1NjI4ODE0MmE1ODRlMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMDk6NDg6NDkgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBib2d1cyBtc3luYyBhbmQgdXNlIHZvbGF0aWxlIGFzbS4KCmNvbW1pdCA3NzhkNDUwNDljZTU5MjdiNjViM2ZmMWQ4ZTY2OTJiNjU0YmRkNDllCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAwODoxNzoxNCAyMDA2IC0wNTAwCgogICAgQWRkIG15c2VsZiBhcyBtYWludGFpbmVyIGZvciBNUEM4NjQxSFBDTi4KCmNvbW1pdCAyZjE1Nzc2Y2NjNmRjMzIzNzdkOGJhOTY1MmI4ZjU4MDU5YzI3YzZkCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyOCAxNDoyNTozMSAyMDA2ICswODAwCgogICAgRml4ZWQgYW4gT0YtdHJlZSBvZmYtYnktb25lIGJ1ZyB3aGVuIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBuYW1lLgogICAgVGhpcyBidWcgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJvb3RpbmcgdG8gcGF1c2UgYSBsb25nIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NTY3ODA2YjY3ZDBhZTgzNDkzYWE4ODIzYWQzYjZjOTE0ZjU4MWQ3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAyNSAxNDozODozNCAyMDA2IC0wNDAwCgogICAgQ2hhbmdlIHJhbWRpc2thZGRyIGFuZCBkdGJhZGRyCiAgICBSZW1vdmUgUEVYIGZsdWZmIGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyYjc4NDIxZDlkYjQ5YzIxYTgyMWFmOGExOWMyMWMxZjdkZmIyOWUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDEzOjMyOjQ1IDIwMDYgLTA1MDAKCiAgICAqIEFub3RoZXIgc21hbGwgZml4IGZvciBib290aW5nIHdpdGggZGlzYWJsZV9vZgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGE3Y2MwZjIxOTE4ZTZlY2YwN2VkNTcwNzVkNjdkZjJjNGExMjk5YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTE6MDQ6NDMgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgYW5kIGxpbmRlbnQgbmV3IEFIQ0kgZHJpdmVyLgoKY29tbWl0IGRhYmY5ZWY4YzEwYjRkZWFkNWVmMjEwNmVmNzQyYjFjMDZiNTQyZGUKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8amFzb25AYnVzLmFwLmZyZWVzY2FsZS5uZXQ+CkRhdGU6CVdlZCBBdWcgMjMgMTk6MTU6MTIgMjAwNiArMDgwMAoKICAgIEFkZCBBSENJIGRlZmluZSBhbmQgc2F0YSBzdXBwb3J0IGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5Okphc29uIEppbjxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NzgyYWM4MGIwMmYwZDAxYWZkMzA5ZTIyMDBkZDNjNzAzN2YyYmE0CkF1dGhvcjogSmluIFpoZW5neGlvbmcgPGphc29uQGJ1cy5hcC5mcmVlc2NhbGUubmV0PgpEYXRlOglXZWQgQXVnIDIzIDE5OjEwOjQ0IDIwMDYgKzA4MDAKCiAgICBBZGQgQUhDSSBzdXBwb3J0IHRvIHUtYm9vdAoKICAgIEFkZCBBSENJIHN1cHBvcnQgaW4gdS1ib290LCBlbmFibGUgdGhlIHNhdGEgZGlzayBjb250cm9sbGVycyB3aGljaAogICAgZm9sbG93aW5nIHRoZSBBSENJIHByb3RvY29sLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4ZWEyYWNmNWYxMzdjYWU5OTQxN2RmNGY1NzNkMDM2ZWUzODQ2NjgKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDE3OjU0OjMyIDIwMDYgKzA4MDAKCiAgICBBZGQgZHRiIGJvb3QtdXAgcGFyYW1ldGVyIHRvIGRlZmF1bHQgYm9vdCBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5Mzc3NWMyMDM2Yjk5YmFhMzkwZWE0MjVjNDc3MTg5NWJiYzYzYzQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE4OjI2OjA4IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIGV2ZW4gbW9yZSBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IGFlNjI0MTY4NWNiY2YwYzc5YTM2MzY1MzBkMmNlYWIxZmIyOTFhOTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE4OjA3OjAwIDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIG1vcmUgcG9vcmx5IGludHJvZHVjZWQgd2hpdGVzcGFjZS4KCmNvbW1pdCAyYzMzZThhMWM1MzViM2FlOTFjZjBiMjg0NDgwNjAwYmYzZjU3YzU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxNzo1NDowNSAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IDgwZTk1NWM3ZGQ5OGY0YjRmZDIzYzIxMTNjYWY3NWVkMmI3N2I1YjMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEyOjI1OjI3IDIwMDYgLTA1MDAKCiAgICBHZW5lcmFsIGluZGVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwcy4KCmNvbW1pdCBmZmZmM2FlNTZmNTg0MmNhMzY3OWU0Y2U3OTIyYjgxOWE4N2FhZDlmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMjowNjoxOCAyMDA2IC0wNTAwCgogICAgR2VuZXJhbCBpbmRlbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cHMuCgpjb21taXQgNDFhMGU4YjMwNGQzZmY1NWZlMjdhMjMwNTA3YWFjNzk2ODQwMTZhYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTA6NDI6MjEgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgY29tcGlsZXIgd2FybmluZ3MuCgpjb21taXQgNWRlNjJjNDdhODYyOGIzZGE0ZDczZjdjMDcwMjdmMzJhMzM0MmQ0MApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMDk6MzE6NTkgMjAwNiAtMDUwMAoKICAgIEZpeCBkaXNhYmxlX29mIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3YTQ0OWM4YWMzOTY0MjBjYjI0MjYwZjcxN2VhOWU2ZmFhODIwNDcKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDA5OjIzOjU1IDIwMDYgLTA1MDAKCiAgICBTdXBwb3J0IGZvciBGRFQgaW4gdUltYWdlIGZvcm1hdCwgZXJyb3Igd2hlbiB1c2luZyBGRFQgZnJvbSBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzVjMjk5YzM4MzY5ZDAxYWRkZDVlMDU0YjhhMTYyMTdiNzBmNGE4NgpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTI6NTUgMjAwNiAtMDQwMAoKICAgIFVubG9jayBjYWNoZSBiZWZvcmUga2VybmVsIHN0YXJ0cyB1cCBmb3IgTVBDODZ4eAoKY29tbWl0IDY3MjU2Njc4ZjAwYzA5YjBhN2YxOWU4NjJlNWMxODQ3NTUzZDMxYmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEzOjE1IDIwMDYgLTA0MDAKCiAgICBDb3B5IEdsb2JhbCBEYXRhIFBvaW50ZXIgdG8gcjI5IGZvciBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgoKY29tbWl0IDFjOGY2ZDhmYjAyOGYxNTYwOTRkMDVmMmQxNDI5OGU2NDc5MzY0YWMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEyOjU1IDIwMDYgLTA0MDAKCiAgICBVbmxvY2sgY2FjaGUgYmVmb3JlIGtlcm5lbCBzdGFydHMgdXAgZm9yIE1QQzg2eHgKCmNvbW1pdCAwZDljY2M1NWVkZjlhN2YzYzViMmI2MjYzNTgwYTZlYThkNzAyYTA0CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMzoxNSAyMDA2IC0wNDAwCgogICAgQ29weSBHbG9iYWwgRGF0YSBQb2ludGVyIHRvIHIyOSBmb3IgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIKCmNvbW1pdCA4NmM4ZTE3ZjI1ZTk3MmE3ZTI3Mjk1MGEwNzM1ZmFkODRlMDgyYjg4CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNiAxMzo1OTo0NyAyMDA2IC0wNTAwCgogICAgKiBGaXggZGlzYWJsZV9vZiBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNWM3NTFlOWFkYzg2ZTIyZmUzYjViNDdjZjI4MDYzNzliNTc1ZGI3CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNiAxMDo1NDowOSAyMDA2IC0wNTAwCgogICAgKiBTdXBwb3J0IGZvciBGRFQgaW4gdUltYWdlIGZvcm1hdCwgZXJyb3Igd2hlbiB1c2luZyBGRFQgZnJvbSBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODk5NjIwYzJkNjZkNGVlZjNiMmEwMDM0ZDA2MmU3MWQ0NWQ4ODZjOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNSAxNDoyMjozNSAyMDA2ICswMjAwCgogICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIEFMUFIgYm9hcmQgZnJvbSBQcm9kcml2ZQogICAgTkFORCBuZWVkcyBzb21lIGFkZGl0aW9uYWwgdGVzdGluZwogICAgUGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIsIDE1IEF1ZyAyMDA2Cgpjb21taXQgZjBmZjQ2OTJmZjMzNzJkZWM1NTA3NGE4ZWI0NDQ5NDNhYjA5NWFiYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNSAxNDoxNTo1MSAyMDA2ICswMjAwCgogICAgQWRkIEZQR0EgQWx0ZXJhIEN5Y2xvbmUgMiBzdXBwb3J0CiAgICBQYXRjaCBieSBIZWlrbyBTY2hvY2hlciwgMTUgQXVnIDIwMDYKCmNvbW1pdCBmZWNmMWM3ZTRkZTFiMjc3OWVkYzE4NzQyYjkxYzIyYmRjMzJiNjhiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxNCAxNTozMzozOCAyMDA2IC0wNTAwCgogICAgRml4IEJBVDAgdG8gYWN0dWFsbHkgYmUgY2FjaGVhYmxlLCBub24tZ3VhcmRlZCBhcyBkb2N1bWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBiYzgzNTU5ZGI1NzQ1NjgxOTA5ZmQ3MzgyYWU1MDk1NjdlMTE2ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOSAxNTozMjoxNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlZCBNUEM4NjQxSFBDTiBEVFMgc291cmNlIGZpbGUgZnJvbSBidWlsZC4KICAgIEl0IGlzIG5vIGxvbmdlciBsaW5rZWQgaW50byBVLUJvb3Q7IGl0cyBzb3VyY2VzIGFyZQogICAgbm93IGxvY2F0ZWQgaW4gdGhlIGtlcm5lbCB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzRjM2MwZTAxZGJmMWY4Y2MyYmQwOGRlOTJmMmI4OWJhODQ5MjFlYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDc6MDMgMjAwNiAtMDUwMAoKICAgICogU3dpdGNoZWQgZGVmYXVsdCBQQ0kgc3BlZWQgZm9yIDg1NDAgQURTIGJhY2sgdG8gMzNNSHoKCiAgICAqIEFkZGVkIGNvbW1lbnRzIGFuZCBhIHByaW50ZiB0byB3YXJuIHRoYXQgUENJLVggd29uJ3QKICAgICAgd29yayBhdCAzM01IegogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjZjNWUxMzczYjZlYTBiYjM3YTE4ZTRhZWVjZWMwMDYxM2QxY2QzOQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MzUgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgYSBidWcgd2hlcmUgODU1NSBQQ0kgY29kZSB1c2VkIHRoZSBvbGQgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG5hbWVzIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjFkZmZmZDhjMjZmOGVjZGQ2MzBhMGFlNGM4MzRlNzUxZTRlNDUyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjoxMyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBWSUEgY29uZmlndXJhdGlvbiB0YWJsZQoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgUENJMiBvbiBDRFMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM4OGY5ZmU2NmI2NDI0N2U1YjZhMzg0MTBiYTMxNWNhMjU1OTZkMTYKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjQxIDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIFBDSSBtZW1vcnkgZGVmaW5pdGlvbnMgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3MDc0ZWQ5NjU1MzA5YjY0MjMxYmMyY2VlNjlmZTg1Mzk5ZjgwNTUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjE3IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZyBzZWNvbmQgUENJIGJ1cyBvbiA4NXh4IFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMGU2ZjU3ZjcxYjNjNGZkZDEzMDI4ZWIwM2MzZjNlOTE5MjZkZGEyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDo0OSAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBQQ0ktWCAjZGVmaW5lcyBmb3IgUENJLVggaW5pdGlhbGl6YXRpb24gUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE0ZTExNTU4YjgxMGVmMmNkZGZmZGY3YjlkODZiYzExMzA0NDE5NjAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjIzIDIwMDYgLTA1MDAKCiAgICAqIE1hZGUgc3VyZSB0aGUgY29kZSB3aGljaCBkaXNhYmxlcyBwcmVmZXRjaCBmb3IgUENJIGRldmljZXMgc2V0cyB0aGUgc2l6ZSBvZiB0aGUgcHJlZmV0Y2ggcmVnaW9uIHRvIDAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlMTYzODdkYjFkNGFhY2Q1YmYzNWNiNmQ3YzE5NDI3NjVjMDM0N2IKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjM2IDIwMDYgLTA1MDAKCiAgICAqIEFkZCBGbGF0IERldiBUcmVlIGNvbnN0cnVjdGlvbiBmb3IgTVBDODV4eCBBRFMgYW5kIENEUyBib2FyZHMgUGF0Y2ggYnkgSm9uIExvZWxpZ2VyIDE3LUphbi0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NTVlNmZiMDczZjlkMDRmZTRhN2YwNmMxMDdlY2JhYzYzNDRkZGQ0CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzowMCAyMDA2IC0wNTAwCgogICAgKiBSZW1vdmVkIHRoZSBvZnRyZWUuZHRzIGZvciBzdHh4dHggaW4gbGlnaHQgb2YgdGhlIGNoYW5nZXMgdG8gdGhlIGZsYXQgZGV2aWNlIHRyZWUgaGFuZGxpbmcgY29kZSBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgNTQ5OGQ5MDMxMmFhZDlmNmJkYmYwNDc5ODYwMjdjMzViMDNjZDE2MwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDI6MjQgMjAwNiAtMDUwMAoKICAgICogUGF0Y2ggdG8gbW9kaWZ5IGZ0X2J1aWxkLmMgdG8gdXBkYXRlIGZsYXQgZGV2aWNlIHRyZWVzIGluIHBsYWNlIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCAwMjY3NzY4ZWRkYzVjYTdiYzE4NjViYzQwYzg2NjgyOWFjNWVmYmZlCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MTozNyAyMDA2IC0wNTAwCgogICAgKiBNb2RpZnkgYm9vdG0gY29tbWFuZCB0byBzdXBwb3J0IGJvb3Rpbmcgd2l0aCBmbGF0IGRldmljZSB0cmVlcyBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgOGZjOGJkMmNjNDc5YjZjZDE4OGZkZWRlNDAxMGUwZTA1Mjk3MGI4YQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDkgMTQ6MzM6NTAgMjAwNiArMDEwMAoKICAgIEFkZCBSYXBpZGlvIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjQxSFBDTgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxYTQxNGM3ZDFmYjBlYWM5MTI1OTJjZDk5NWIzMGM5ZjIzMDQ1YzkKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA4IDExOjMyOjQzIDIwMDYgKzAxMDAKCiAgICBGaXggY2FzbGF0IGNhbGN1bGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzA5ZDMwNzNlNzQxNTMyNzhlNzkwNGE3MDgxOWJiZWY3ZGY1MGUxYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxNjoxNzo1NiAyMDA2IC0wNTAwCgogICAgQ29udmVydCB0byBtYWMtYWRkcmVzcyBpbiBldGhlcm5ldCBub2Rlcy4KCmNvbW1pdCA3MTc0OGFmODMzY2ExMDE3ZWRmMTQxNWJlMzc2MzY2ZmYyOTM3ZDE3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAxMjo0MTozNSAyMDA2IC0wNDAwCgogICAgQ29ycmVjdCB0aGUgaXJxIHZhbHVlIG9mIERVQVJUMgoKY29tbWl0IDljYjNlODgxNmFlNGQ4NTRlN2RjMjIxMjhjM2VlYTNkNzBiYjk4MmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjQxIDIwMDYgLTA0MDAKCiAgICBDaGFuZ2UgdGhlIHNwYWNlIHNpemUgb2YgUEVYIElPIGluIFJFQURNRQoKY29tbWl0IDIzOWRiMzdjOTRmN2E5Mjk0MWM0NDY1ZmVjZWI4NjdjNjA5MjQxYzUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjE4IDIwMDYgLTA0MDAKCiAgICBNb3ZlIGdldF9ib2FyZF9zeXNfY2xrIHRvIGJvYXJkIGRpcmVjdG9yeQoKY29tbWl0IDQ5MjkwMGI5ODU0MzlmYmNlMWExMThhZmRlMWUzNWRlZjg3MGRiMDMKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwOTowMzo1NCAyMDA2ICswMTAwCgogICAgRml4IDg2NDFIUENOIHBvbGx1dGlvbgoKY29tbWl0IDUxNWFiOGE2MmU4NTc0ZTJiYWJjNmU4ZGNjNDM1NDRhZDIyMWM1YjIKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwODoxNjowNiAyMDA2ICswMTAwCgogICAgRml4IDg2NDFIUENOIHRpbWViYXNlCgpjb21taXQgYzg2MzYwYjgzMGYxZWVjZDdhNzIyMDg1NzVkZGU0ZjU3ODc5ZmFlYQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMDA6MDE6MzQgMjAwNiArMDgwMAoKICAgIEZpeGVkIE9GIGRldmljZSB0cmVlIG9mIG1wYzg2eHhocGNuIGJvYXJkLgoKICAgIFRoZSBjaGFuZ2VzIHdvcmtzIGluIHdpdGgga2VybmVsIGlycSBtYXBwaW5nIHJld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlYTNmMjhkMjg1OTQyYmYzZjdhYjMzOWNlODUxNzhkZWQ1NDQyMjUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDEyIDEwOjQ4OjA1IDIwMDYgLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBtYWMgYWRkcmVzc2VzIHRvIG9yIGZyb20gSUQgRUVQUk9NLgoKICAgIEFkZGVkIGNvZGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgTWFjIGFkZHJlc3NlcyB0by9mcm9tIElEIEVFUFJPTSgweDU3KS4KICAgIFdpdGggYXR0YWNoZWQgcGF0Y2gsIHdlIGNhbiB1c2UgY29tbWFuZCAibWFjL21hYyByZWFkL21hYyBzYXZlLyIKICAgIHRvIHJlYWQgYW5kIHdyaXRlIEVFUFJPTSB1bmRlciB1LWJvb3QgcHJvbXB0LgoKICAgIFUtYm9vdCB3aWxsIGNhbGN1bGF0ZSB0aGUgY2hlY2tzdW0gb2YgRUVQUk9NIHdoaWxlIGJvb3R1cCwKICAgIGlmIGl0IGlzIHJpZ2h0LCB0aGVuIHUtYm9vdCB3aWxsIGNoZWNrIHdoZXRoZXIgdGhlIG1hYyBhZGRyZXNzCiAgICBvZiBlVFNFQzAvMS8yLzMgaXMgYXZhaWxhbGJlIChub24temVybykuCgogICAgSWYgdGhlcmUgaXMgbWFjIGFkZHJlc3MgYXZhaWxhYmUgaW4gRUVQUk9NLCB1LWJvb3Qgd2lsbCB1c2UgaXQsCiAgICBvdGhlcmV3aXNlLCB1LWJvb3Qgd2lsbCB1c2UgdGhlIG1hYyBhZGRyZXNzIGRlZmluZWQgaW4KICAgIE1QQzg2NDFIUENOLmguIFRoaXMgbWF0Y2hlcyB0aGUgcmVxdWlyZW1lbnQgdG8gc2V0IHVuaXF1ZSBtYWMgYWRkcmVzcwogICAgZm9yIGVhY2ggVFNFQyBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZjYjI4ZTc2MzQxNWUwZTRlNjZiMGY0NTg0MmQxNTU3YWUxOThlNWUKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgMTMgMTA6MzU6MTAgMjAwNiAtMDUwMAoKICAgIEZpeGVkIGluaXRyZCBpc3N1ZSBieSBkZWZpbmUgYmlnIFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNmNkMmExNzg1ZDc0ZWMzZDMwYTg2ZjFjYjM2MGJlOGRlNDc4MTUxCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA3IDEwOjAxOjQ1IDIwMDYgLTA1MDAKCiAgICBXZSBtYWRlIGEgdS1ib290IHBhdGNoIHRvIGZpeCB0aGUgaGFuZyB1cCBpc3N1ZQogICAgd2hlbiBib290aW5nIGZpbGVzeXN0ZW0gZnJvbSByYW1kaXNrLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODQzM2NjYzU4NTBlZTcwNTQ5YWYwYjJiYzViOTIwMzU1ZWY1Mzg4CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NzowMyAyMDA2IC0wNTAwCgogICAgKiBTd2l0Y2hlZCBkZWZhdWx0IFBDSSBzcGVlZCBmb3IgODU0MCBBRFMgYmFjayB0byAzM01IegogICAgKiBBZGRlZCBjb21tZW50cyBhbmQgYSBwcmludGYgdG8gd2FybiB0aGF0IFBDSS1YIHdvbid0CiAgICAgIHdvcmsgYXQgMzNNSHoKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU0YzJhMGViMGMzZTNmZmJmODI0ODAwMTg0ZWU0MmJkYzk5ZDViMTkKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjM1IDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIGEgYnVnIHdoZXJlIDg1NTUgUENJIGNvZGUgdXNlZCB0aGUgb2xkIHZhcmlhYmxlIGFuZAogICAgICBmdW5jdGlvbiBuYW1lcwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2JmYzdjZTc1NmI4OGViMjZlNTUzN2JjN2I2MjVjNDQ1YzZkY2ZhYwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MTMgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgVklBIGNvbmZpZ3VyYXRpb24gdGFibGUKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgUENJMiBvbiBDRFMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUyYzdhNjhiOGQ1ODdlYmNmNWE2YjA1MWI1OGIzZDNmZmEzNzdkZGMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjQxIDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIFBDSSBtZW1vcnkgZGVmaW5pdGlvbnMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA4NzQ1NDYwOWU0NzI5NTQ0M2FmNzkzYTI4MmNkZGNkOTFhNWY0OWMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjE3IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZyBzZWNvbmQgUENJIGJ1cyBvbiA4NXh4CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNjM2YWFlYjZmZDUxNmE0NDJmYjYxMWJiZWVkZGYzMDc3YTY4N2ZiCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDo0OSAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBQQ0ktWCAjZGVmaW5lcyBmb3IgUENJLVggaW5pdGlhbGl6YXRpb24KICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwYWJiYzZmZmZhMTE1NjkwMTA3Y2M5NDJjN2FiZjg0YmRjMDNhMWIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjIzIDIwMDYgLTA1MDAKCiAgICAqIE1hZGUgc3VyZSB0aGUgY29kZSB3aGljaCBkaXNhYmxlcyBwcmVmZXRjaCBmb3IgUENJIGRldmljZXMKICAgICAgc2V0cyB0aGUgc2l6ZSBvZiB0aGUgcHJlZmV0Y2ggcmVnaW9uIHRvIDAKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwZDVmYTM1ZDAyZGYyMjU4MDU5M2JmMDAzOWFiMTczMzY3ZThlZjAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjM2IDIwMDYgLTA1MDAKCiAgICAqIEFkZCBGbGF0IERldiBUcmVlIGNvbnN0cnVjdGlvbiBmb3IgTVBDODV4eCBBRFMgYW5kIENEUyBib2FyZHMKICAgICAgUGF0Y2ggYnkgSm9uIExvZWxpZ2VyIDE3LUphbi0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTdlOGIwY2I1YTBjNDlkYzE4MDA3NWI5NmRmMjk2YTg5M2JmMTQ2CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzowMCAyMDA2IC0wNTAwCgogICAgKiBSZW1vdmVkIHRoZSBvZnRyZWUuZHRzIGZvciBzdHh4dHggaW4gbGlnaHQgb2YgdGhlIGNoYW5nZXMKICAgICAgdG8gdGhlIGZsYXQgZGV2aWNlIHRyZWUgaGFuZGxpbmcgY29kZQogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgMWIzODBlYzIyNTY2NWU3Mzk1OTY3N2YzODkzZGM2NThjNTkyNWUwNQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDI6MjQgMjAwNiAtMDUwMAoKICAgICogUGF0Y2ggdG8gbW9kaWZ5IGZ0X2J1aWxkLmMgdG8gdXBkYXRlIGZsYXQgZGV2aWNlIHRyZWVzIGluIHBsYWNlCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA5OGE5YzRkNDY4YTk0MmEwOWViZTg5NzliZWM1MDgwMTdmM2U0NDYyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MTozNyAyMDA2IC0wNTAwCgogICAgKiBNb2RpZnkgYm9vdG0gY29tbWFuZCB0byBzdXBwb3J0IGJvb3Rpbmcgd2l0aCBmbGF0IGRldmljZSB0cmVlcwogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgZGEwMTJhYjY2MWZkNGFiMTY5ZGQ3YjliMzIyMDFhNGRmNjJjZjM0YQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAwODo0Mzo1NiAyMDA2IC0wNTAwCgogICAgQ2hhbmdlIElkIHRvIHN5bWJvbGljIG5hbWUgZm9yIFJUTDgxMzkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJjMDljZjNjMmJmYjhkNTRjNjU5Y2JiMzMyZjc5ZDA5NTA5ODJmZDAKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjEwIDIwMDYgKzA4MDAKCiAgICBGaXggUlRMODEzOSBpbiBiaWcgZW5kaWFuCgogICAgc2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIHNpZ25lZC1vZmYtYnk6IFdlaSBaaGFuZyA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNmYjlhNTc5NDdmYzIwM2I5OWZlODFhYjA1NzhmNzI4NjI2MWY5ZgpBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MjMgMjAwNiArMDgwMAoKICAgIEZpeCBUc2VjIGJ1ZyB3aGVuIG5vIGxpbmsKCiAgICAgV2hlbiB0ZnRwIGEgbm9uLWV4aXN0IGZpbGUgZnJvbSB0aGUgdGZ0cCBzZXJ2ZXIsIHUtYm9vdCB3aWxsIGNoZWNrCiAgICAgdGhlIGxpbmsgb2YgYWxsIGV0aCBwb3J0LiBUaGUgb3JpZ2luYWwgZmlsZSB3aWxsIHJldHVybiB3cm9uZyBsaW5rCiAgICAgc3RhdGUgb24gdGhlIG5vIGxpbmsgcG9ydHMuCgogICAgc2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDIyYzJiOTc1MTRmYmZiMGUwM2JkOWM3MmIzNDQ1ZTRkYmQ1N2UyCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjowMiAyMDA2ICswODAwCgogICAgRml4IGJ1ZyBmb3IgaW9fYmFyIHNpemUgZHVyaW5nIHBjaSBzY2FuCgogICAgRHVyaW5nIHRoZSBwY2kgc2NhbiBwcm9jZXNzLCBTb21lIGRldmljZXMgcmV0dXJuIGJhcl9yZXBvbnNlIHdpdGggdGhlCiAgICBoaWdoZXN0IGJ5dGVzIDAsIHN1Y2ggYXMgdGhlIHBjaSBicmlkZ2UgaW4gdWxpMTU3NSByZXR1cm4gYmFyX3Jlc3BvbnNlCiAgICB3aXRoIDB4ZmZmZmZmLCBTbyB0aGUgYmFyX3NpemUgc2hvdWxkIGJlIG1hbnVhbGx5IHNldCB1bmRlciA2NEsuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYTdkYjljMzc3YmMyMzUzYTE3YmYxZDM4MWQ2NWE2YzQxODcyOGYwCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMTo1NCAyMDA2ICswODAwCgogICAgRW5hYmxlIFBDSUUxIGZvciBNUEM4NjQxSFBDTiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTlkNzBlM2E0N2FmZmI5YmFlMDQxYTJjYWVjZTdjZDUxNmUyMTNiMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gSnVuIDI2IDExOjA2OjAwIDIwMDYgKzAyMDAKCiAgICBNb3JlIGNvZGUgY2xlYW51cAoKY29tbWl0IDY4NDYyM2NlOTJjNWZkMzJlN2RiMmQ2ZTAxNjk0NWE2N2M1ZmZhYmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDIyIDA4OjUxOjQ2IDIwMDYgLTA1MDAKCiAgICBGaXggYnVnIGluIDg2NDFocGNuIHJlc2V0IGNvbW1hbmQgd2l0aCBubyBhcmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YmU0MjlhNWRkYmYwZWJlMmQ5NDE3NGJhNThmY2ZjN2EyNDI4NWRjCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyMCAxNzo0NzoxNSAyMDA2ICswODAwCgogICAgUmV3b3JrZWQgSVJRIG1hcHBpbmcgaW4gT0YtdHJlZS4KCmNvbW1pdCAwZTRjMmExN2NhMzQwMDFlZDM2ZDI1OWYxM2NiODhhZGE0NjExYThjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxNSAyMTozMzozNyAyMDA2IC0wNTAwCgogICAgRG8gbm90IGVuYWJsZSBhZGRyZXNzIHRyYW5zbGF0aW9uIG9uIHNlY29uZGFyeSBDUFVzLgogICAgRG8gbm90IHNldCB1cCBCQVRzIG9uIHNlY29uZGFyeSBDUFVzLiAgTGV0IExpbnV4IGRvIHRoZSBuYXN0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NmVkYTAyMjQ3MzM5NGFkOGYzNmI4NmYyYmRjOWI0Y2I4MTYyOTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEp1biAxNCAxODoxNDo1NiAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwCgpjb21taXQgMTZjOGQ1ZTc2YWUwZjc4ZjM5YTYwNjA4NTc0YWRmZTBmZWI5Y2M3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVuIDE0IDE3OjQ1OjUzIDIwMDYgKzAyMDAKCiAgICBWYXJpb3VzIFVTQiByZWxhdGVkIHBhdGNoZXMKICAgIC0gQWRkIHN1cHBvcnQgZm9yIG1wYzh4eCBVU0IgZGV2aWNlLgogICAgLSBBZGQgc3VwcG9ydCBmb3IgQ29tbW9uIERldmljZSBDbGFzcyAtIEFic3RyYWN0IENvbnRyb2wgTW9kZWwgVVNCIGNvbnNvbGUuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBmbG93IGNvbnRyb2wgaW4gVVNCIHNsYXZlIGRldmljZXMuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBnc2VyaWFsIGFuZCBjZGNfYWNtIHVzaW5nIGVudmlyb25tZW50LgogICAgLSBNaW5vciBjaGFuZ2VzIHRvIHVzYmRjb3JlX29tYXAxNTEwLmMgdXNiZGNvcmVfb21hcDE1MTAuaAogICAgLSBVcGRhdGUgdXNiY29yZSBzbGlnaHRseSB0byBlYXNlIGhvc3QgZW51bWVyYXRpb24uCiAgICAtIEZpeCBub24tcG9ydGFibGUgZW5kaWFuIHByb2JsZW1zIGluIHVzYmRjb3JlIGFuZCB1c2JkY29yZV9lcDAuCiAgICAtIEFkZCBBZGRlclVTQl9jb25maWcgYXMgYSBkZWZjb25maWcgdG8gZW5hYmxlIHVzYWdlIG9mIHRoZSBVU0IgY29uc29sZQogICAgICBieSBkZWZhdWx0IHdpdGggdGhlIEFkZGVyODd4IFUtQm9vdCBwb3J0LgogICAgUGF0Y2hlcyBieSBCcnlhbiBPJ0Rvbm9naHVlIDxib2Rvbm9naHVlQGNvZGVoZXJtaXQuaWU+LCAyOSBNYXkgMjAwNgoKY29tbWl0IDhlY2M5NzE2MThmNTYwMjlhZDk5ZDM1MTZmOGIyOTdhNmVkNTg5NzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDcgMTA6NTM6NTUgMjAwNiAtMDUwMAoKICAgIEZpeCBhIGdldF9ib2FyZF9zeXNfY2xrKCkgdXNlLWJlZm9yZS1kZWYgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGQ5YmY0ODU4ZmNhNWFhNGQ2NTFiMjgzMjcwZjc3ZGE3MmViYWRmZDUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDcgMTA6NTI6NDkgMjAwNiAtMDUwMAoKICAgIEFsbG93IERUQyBwYXRoIHRvIGJlIHBhc3NlZCBpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGM4M2FlOWVhNmQ5M2FiYmU3NTFiZjhhMzM5NjIzNmEwODRlNTZmODcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDYgMTY6NTQ6MjkgMjAwNiAtMDQwMAoKICAgIE1vZGlmeSB0aGUgSVJRIG9mIERVQVJUMgoKY29tbWl0IGM5MzRmNjU1ZjlhZWNhNzBhNWM1Zjg4YjQ2NWQ5ZTlkNTdhOGQyMmUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEzOjU1OjM1IDIwMDYgLTA1MDAKCiAgICBSZXZpZXcgY2xlYW51cHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYjU5NjVmYjk1Yjc3YTQ5ZjRlNmFmOTUyNDhlMGM4NDlmNGFmMDNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMjo0NDo0NCAyMDA2IC0wNTAwCgogICAgV2hpdGUgc3BhY2UgY2xlYW51cC4KICAgIFNvbWUgODAtY29sdW1uIGNsZWFudXBzLgogICAgQ29udmVydCBwcmludGYoKSB0byBwdXRzKCkgd2hlcmUgcG9zc2libGUuCiAgICBVc2UgI2luY2x1ZGUgInNwZF9zZHJhbS5oIiBhcyBuZWVkZWQuCiAgICBFbmhhbmNlZCByZXNldCBjb21tYW5kIHVzYWdlIG1lc3NhZ2UgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZDVjNWJlNTQ3NDQ1ZGQzYmQyZWI3MzY4ZDgwZGYwM2VhNDM3OTcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMTozOTozNCAyMDA2IC0wNTAwCgogICAgUmVtb3ZlZCB1bm5lZWRlZCBsb2NhbF9idXNfaW5pdCgpIGZyb20gODY0MUhQQ04gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDNkNzI5YzE2YzM5MmQyOTgyZDMyNjZiNjU5ZDMzM2M5Mjc2OTdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMToyNDoyOCAyMDA2IC0wNTAwCgogICAgTW92ZWQgbXBjODY0MWhwY25fYm9hcmRfcmVzZXQoKSBvdXQgb2YgY3B1LyBpbnRvIGJvYXJkLy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyYTk0MWRlMDYwMzUwYWQxNTg3OGQ4MjE5ODI1ZjQ5NTBlOWJiOGUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEwOjA3OjI4IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgZGVhZCBkZWJ1ZyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMTI2YWE3MGYxMGJhM2QyMGUwYTZmNGQzMjMyODI1MDUxM2I3Nzc3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMTc6NDc6MDAgMjAwNiAtMDUwMAoKICAgIE1vdmUgbXBjODZ4eCBQSVhJUyBjb2RlIHRvIGJvYXJkIGRpcmVjdG9yeQoKICAgIEZpcnN0IGN1dCBhdCBtb3ZpbmcgdGhlIFBJWElTIHBsYXRmb3JtIGNvZGUgb3V0IG9mCiAgICB0aGUgODZ4eCBjcHUgZGlyZWN0b3J5IGFuZCBpbnRvIGJvYXJkL21wYzg2NDFocGNuCiAgICB3aGVyZSBpdCBiZWxvbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRmODNhMmZjZWYxYTY3MGM0NWZjNTg1MTE5ZGNjMWZlMDYyYzRhOQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMzAgMTY6NTY6MTQgMjAwNiArMDIwMAoKICAgIFN1cHBvcnQgZ2VuZXJpYyBPSENJIHN1cHBvcnQgZm9yIHRoZSBzM2MyNHgwIGNwdS4KCmNvbW1pdCAzOGNlZTEyZGNmY2MyNTczNzFjOTAxYzdlMTNlNThlY2FiMGEzNWQ4CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAwOToxMDozMiAyMDA2IC0wNTAwCgogICAgSW1wcm92ZSAicmVzZXQiIGNvbW1hbmQncyBpbnRlcmFjdGlvbiB3aXRoIHdhdGNoZG9nLgoKCSJyZXNldCBhbHRiYW5rIiB3aWxsIHJlc2V0IGFub3RoZXIgYmFuayBXSVRIT1VUIHdhdGNoIGRvZyB0aW1lciBlbmFibGVkCgkicmVzZXQgYWx0YmFuayB3ZCIgd2lsbCByZXNldCBhbm90aGVyIGJhbmsgV0lUSCB3YXRjaCBkb2cgZW5hYmxlZAoJImRpc3dkIiB3aWxsIGRpc2FibGUgd2F0Y2ggZG9nIGFmdGVyIHUtYm9vdCBib290cyB1cCBzdWNjZXNzZnVsbHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwMjA1ZTVhNmRkYzg1MjhiMTFkYjllYjRkM2ZhMDIwOWQ5ZmNlMmEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDA4OjUxOjE5IDIwMDYgLTA1MDAKCiAgICBGaXggdHdvIFNEUkFNIHNldHVwIGJ1Z3MuCgoJRml4IEVDQyBzZXR1cCBidWcuCglFbmFibGUgMVQvMlQgYmFzZWQgb24gbnVtYmVyIG9mIERJTU1zIHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTFmZWM1MDE1MzM0ZGViMjAxMGUzNmNlMDBiYjExOGNjNTQyOWE1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDoyNDo0OCAyMDA2IC0wNTAwCgogICAgQWRkIGZpcnN0IGRyYWZ0IG9mIHRoZSBNUEM4NjQxSFBDTiBkb2MvUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgZWQ0NWQ2YzkzMGI1OTM5NzE4YTg3ZWUxMmUyNWNmOWEwNTk3OGQ0YQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMjYgMTA6MTM6MDQgMjAwNiAtMDUwMAoKICAgIEFkZGVkIHBjaUA4MDAwIGJsb2NrLgogICAgVXBkYXRlZCBldGhlcm5ldCBpbnRlcnJ1cHQgbWFwcGluZ3MgKG1vdmVkIHVwIDQ4KS4KICAgIENsZWFuZWQgdXAgYSBmZXcgY29tbWVudHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAzMDMzZWJiMjBmZDdjMzcyYzdiY2EzYzk5NTVhNDY5MmJiMjI0MGI3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDowMToxNiAyMDA2IC0wNTAwCgogICAgQWxsb3cgYXJncyBvbiByZXNldCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMzAxZjFhYTM4NGQwZWRjYWU2YTIyZmQ5YWRiOTMzYWQ3MTY5NWVjYwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjMgMTM6Mzg6MzUgMjAwNiArMDIwMAoKICAgIENoYW5nZWQgdGhlIG1wMnVzYiAoYXQ5MXJtOTIwMCkgYm9hcmQgdG8gdXNlIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVyLiBTb21lCiAgICBmaXhlcyB0byB0aGUgbGF0dGVyLgoKY29tbWl0IDI0ZTM3NjQ1ZTczNzhiMjBmYThmMjBlMjk5NmM4ZmI4ZTkwYzcwYzkKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIzIDEwOjMzOjExIDIwMDYgKzAyMDAKCiAgICBNb3JlIGNsZWFudXAgZm9yIHRoZSBkZWx0YSBib2FyZCBhbmQgdGhlIGdlbmVyaWMgdXNiX29oY2kgZHJpdmVyLiBBZGRlZAogICAgQ0ZHX1VTQl9CT0FSRF9JTklUIGFuZCBDRkdfVVNCX0NQVV9JTklUIGZvciBlbmFibGluZyBib2FyZCBhbmQgY3B1IHNwZWNpZmljCiAgICBpbml0aWFsaXphdGlvbiBhbmQgY2xlYW51cCBob29rcyByZXNwZWN0aXZlbHkuCgpjb21taXQgM2UzMjZlY2U5ZWJhODE4NGY1ZDQ4YWE0ZmI4Nzc2MGE4ZjZmMGYxMApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMjIgMTY6MzM6NTQgMjAwNiArMDIwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBVU0Igc3RvcmFnZSBzdXBwb3J0IGZvciB0aGUgZGVsdGEgYm9hcmQuIFRoaXMgaXMgdGhlIGZpcnN0CiAgICBib2FyZCB0byBtYWtlIHVzZSBvZiBhIGdlbmVyaWMgT0hDSSBkcml2ZXIsIHRoYXQgY2FsbHMgaG9va3MgZm9yIGJvYXJkCiAgICBkZXBlbmRhbnQgaW5pdGlhbGl6YXRpb24uCgpjb21taXQgMTRlMzcwODFmZjNjYWM3ZWJlNmU5MzgzNjUyMzQyOTg1M2I2YjI5MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6Mjg6MzkgMjAwNiAtMDUwMAoKICAgIENoYW5nZSBhcmJpdHJhdGlvbiB0byByb3VuZC1yb2JpbiBmb3IgU01QIGxpbnV4LgoKY29tbWl0IDlhNjU1ODc2ZTU5OTViZTgwZjQ5MDU0ZTI1MDk1MDBlODcxZTRkM2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjI2OjM0IDIwMDYgLTA1MDAKCiAgICBFbmFibGUgZHVhbCBERFIgY29udHJvbGxlcnMgYW5kIGludGVybGVhdmluZy4KCmNvbW1pdCA1ODZkMWQ1YWJkM2U1MjVmMWUxZDliODFlNWE2MWE0ZGE2YjJmYTNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyMjo0NCAyMDA2IC0wNTAwCgogICAgVXBkYXRlIDg2eHggYWRkcmVzcyBtYXAgYW5kIExBV0JBUnMuCgpjb21taXQgY2NjY2U1ZDA1ODFiYjBiYTQ2MDI3OTlhNGI1MTEyZTU4ZDE1NzljYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MTQ6MTUgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBMMiBDYWNoZSBpbnZhbGlkYXRlIHBvbGxpbmcuCgpjb21taXQgZjM1ZWM2OGZiMDY2Y2VjMGUzNjI5NGJmZTA3ZGVjMmQ0ZThhZDNhOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTI6MzM6MDkgMjAwNiAtMDUwMAoKICAgIEVuYWJsZSAybmQgQ1BVIGFuZCBJMkMuCgpjb21taXQgYmY2OTBkY2I1MTJkMzRjNGZjZWVjMGViMWU1YzBlODhhOWRiNWQ1NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXkgMTUgMDc6MjY6NTYgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZSBpbnRlcnJ1cHQgbWFwcGluZy4KCmNvbW1pdCA2Y2ZlYTMzNDc3YjA0YjYzZWQ0NzM4NmVkMTYyOTUyOTQ4NGMzM2JhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxMCAwOTozODowNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVlZGVkIElOSVRfUkFNX0xPQ0sgY2FjaGUgdHdpZGRsaW5nLgogICAgQ29ycmVjdGx5IHRyYWNrcyByMjkgYXMgZ2xvYmFsIGRhdGEgcG9pbnRlciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNGRkMzE3YjU4YzEyNmEyYTdlNzNmNDc2NGVjYzFhN2M5N2Y4NzZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxMCAwOTozMzowNyAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZsYXNoLmMgZmlsZS4KCmNvbW1pdCAxOGI2YzhjZDhhZjZjYzdmMzUxODBjZWRjNGFkYjMyMzZjYzFhMWI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA5IDA4OjIzOjQ5IDIwMDYgLTA1MDAKCiAgICBHZXQgTVBDODY0MUhQQ04gZmxhc2ggaW1hZ2VzIHdvcmtpbmcuCgoJRW5hYmxlIHRoZSBDRkkgZHJpdmVyLgoJUmVtb3ZlIGJvZ3VzIExBV0JBUjcgY3J1ZnQuCglVc2UgY29ycmVjdCBURVhUX0JBU0UsIEZpeHVwIGxvYWQgc2NyaXB0LgoJRW5hYmxlIFNQRCBFRVBST00gZHVyaW5nIEREUiBzZXR1cC4KCVVzZSBnZW5lcmljIFJGQyAxOTE4IElQIGFkZHJlc3NlcyBieSBkZWZhdWx0LgoKY29tbWl0IDVjOWVmYjM2YTZiNTQzMTQyM2Y1Mjg4OGEwZTNiNGI1MTVmZTdlY2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDI3IDEwOjE1OjE2IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIHdoaXRlc3BhY2VzIGFuZCBzdHlsZSBpc3N1ZXMuCiAgICBSZW1vdmVkIC8vLXN0eWxlIGNvbW1lbnRzLgogICAgVXNlIDgwLWNvbHVtbiBsaW5lcy4KICAgIFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgogICAgUmVtb3ZlIGRlYWQgY29kZSBhbmQgZGVidWcgY3J1ZnQuCgpjb21taXQgYTIzMjBhNmJmODExM2EwOTU0NGM0MmQxNjBkMTBhYzY5ZDA0OWEwMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMjcgMDg6MjI6MzkgMjAwNiAtMDUwMAoKICAgIFJldmVydCBiYWQgUENJIHByZWZldGNoIGxpbWl0IGNoYW5nZS4KCmNvbW1pdCBkZWJiNzM1NGQxZWE0ZjY5NDE1NDgxOGRmNWU1YjUyM2Y1YzFjYzFkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAyNiAxNzo1ODo1NiAyMDA2IC0wNTAwCgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciBNUEM4NjQxIEhQQ04gYm9hcmQuCg==