Y29tbWl0IGYzMGFkNDliMTZiZjk5OGIwM2MxYTUyMjhiNmM4NjM2OWQ2MWMyNTgKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTm92IDE5IDEwOjAyOjEzIDIwMDcgLTA1MDAKCiAgICBNb3ZlIENPTkZJR19RRSBvdXQgb2YgQ09ORklHX1BDSSB3cmFwIGZvciBNUEM4NTY4TURTCgogICAgQ09ORklHX1FFIHNob3VsZG4ndCBiZSBpbiB0aGUgd3JhcCBvZiBDT05GSUdfUENJLCBmaXggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmOGMzMjA2MDkzNjYxNzZiMzExMDRkOWJmNWUyOTUyMzJlMWM3ZjFkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglNb24gTm92IDE5IDExOjE0OjE2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYm9hcmQvZ3RoMi9sb3dsZXZlbF9pbml0LlM6IEZpeCBhIGJ1aWxkIHdhcm5pbmcKCiAgICBsb3dsZXZlbF9pbml0LlM6IEFzc2VtYmxlciBtZXNzYWdlczoKICAgIGxvd2xldmVsX2luaXQuUzo0MTM6IFdhcm5pbmc6IFByZXRlbmRpbmcgZ2xvYmFsIHN5bWJvbCB1c2VkIGFzIGJyYW5jaCB0YXJnZXQgaXMgbG9jYWwuCgogICAgTG9va2luZyBhdCBjb2RlcywgdGhlIGBtZW10ZXN0JyBhbmQgYGNsZWFybWVtJyBhcmUgaW50ZW50aW9uYWwgbWl4ZWQKICAgIHVzZSBvZiBgZ2xvYmFsIHN5bWJvbHMnIGFuZCBgbGFiZWwnIGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gVG8gbWFrZSBpdAogICAgYnVpbGQsIGp1c3QgZGlzYWJsZSBnbG9iYWwtc3ltYm9scy11c2UgZm9yIG5vdy4gQXMgYSByZXN1bHQgYG1lbXRlc3QnCiAgICBzdGlsbCByZW1haW5zIGFzIHVudXNlZCwgYnV0IGxlYXZlIGl0IGJlLi4uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGU4ZGE1OGYyYmMwOTI4OTFlOGNjOTJiOTI3ZWQ1YzRiZDBjYjBjYWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTm92IDE5IDEyOjU5OjE0IDIwMDcgKzAxMDAKCiAgICBGaXggYnVpbGQgcHJvYmxlbXMgd2l0aCBtcDJ1c2IgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZiZjRjNjg2YWZjYTFlODZlMWMzODRkNTkyMThmOTE0NjA1NzEzYmYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDE4IDE4OjM2OjExIDIwMDcgKzAxMDAKCiAgICBzM2MyNHgwOiBGaXggdXNiX29oY2kuYyBtaXNzaW5nIGluIE1ha2VmaWxlCiAgICBhbmQgdXNiX29oY2kuYyB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2MDczZjYxZTA3OGRhNWRkYjUyMWI1NjI1NmJjYzM2NTA4NTg5ODgzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAxOCAxMjo1NTowMiAyMDA3ICswMTAwCgogICAgcGIxeDAwIGJvYXJkOiBGaXggdTE2IHN0YXR1cyBkZWNsYXJhdGlvbiB3aGVuIFBDTUNJQSBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4NDEyZDgxNGNlOGJmNTU3MGEyYjc0N2YxZTdmZDMyMTA5N2ZlOTg3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxOCAxNzoxMTowOSAyMDA3ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGZvciBBUk0gc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQwOWVjZGMwYmI0N2RkMjhiMGFmNmMyNWZmZDY1OGQyMmNjMzZiMzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTm92IDE4IDE2OjM2OjI3IDIwMDcgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgZm9yIFBQQyBzeXN0ZW1zLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDc5YzJjNGZhNzFjMGQxZWJlZjM5NDUwOGRmOTA4OGRmOGEzMDhkMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMTcgMTE6MzE6MTAgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIG5ldC9uZXQuYyBhbmQgbmV0L25mcy5jCgpjb21taXQgN2UxNGZjNjUzNjhjYmQyODYxYjEyMDc0NTNkYTU1YTRmYzdiM2Y4MQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBOb3YgMTcgMjA6NDI6NDUgMjAwNyArMDkwMAoKICAgIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDIzMDljMTMwYWE0Yzg0YjkxYmQ4NzRhNDEyNjljOTIzZWI2MWI1NTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDc6NTg6MjUgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfc2NzaS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlMWQ4ODRiN2NiNjAyMDA3MzI5YzUxN2VjMWM0NTNlM2E2YTVkOWMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjA1OjI2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY29uZmlnLm1rOiBGaXggR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHBpY2tlcgoKICAgIEN1cnJlbnQgdHJpY2sgdG8gcGljayB1cCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gZG9lcyBub3Qgd29yayB3aXRoIHRoZQogICAgbGF0ZXN0IGJpbnV0aWxzICgyMDA3LTAzLTAxIG9yIGxhdGVyKSBkdWUgdG8gJHtQS0dWRVJTSU9OfSBub3cgZGVmYXVsdCB0bwogICAgIihHTlUgQmludXRpbHMpICIuCgogICAgICAkIHNkZS1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgMi4xNS45NCBtaXBzc2RlLTYuMDIuMDItMjAwNTA2MDIKICAgICAgJCBzZGUtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAyLjE1Ljk0CiAgICAgICQgc2RlLWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScgfGF3ayAtRi4gJ3twcmludCAkMn0nCiAgICAgIDE1CiAgICAgICQKCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgKEdOVSBCaW51dGlscykgMi4xOAogICAgICAkIG1pcHMtbGludXgtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAoR05VCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nIHxhd2sgLUYuICd7cHJpbnQgJDJ9JwogICAgICAobm8gb3V0cHV0KQogICAgICAkCgogICAgQXMgYSByZXN1bHQgb2YgYWJvdmUsIHlvdSdsbCBzZWUgbWFueSBub2lzZXMgd2l0aCBzdWNoIGJpbnV0aWxzOgoKICAgICAgbWFrZSAtQyBjcHUvbWlwcy8KICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9jcHUvbWlwcycKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBpbmNhaXBfd2R0Lm8gaW5jYWlwX3dkdC5TCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBjYWNoZS5vIGNhY2hlLlMKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICBtaXBzLWxpbnV4LWdjYyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4QjAwMDAwMDAgIC1JL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9pbmNsdWRlIC1mbm8tYnVpbHRpbiAtZmZyZWVzdGFuZGluZyAtbm9zdGRpbmMgLWlzeXN0ZW0gL2hvbWUvc2t1cmliYXkvZGV2ZWwvYnVpbGRyb290L2J1aWxkX21pcHMvc3RhZ2luZ19kaXIvdXNyL2Jpbi8uLi9saWIvZ2NjL21pcHMtbGludXgtdWNsaWJjLzQuMi4xL2luY2x1ZGUgLXBpcGUgIC1EQ09ORklHX01JUFMgLURfX01JUFNfXyAtRyAwIC1tYWJpY2FsbHMgLWZwaWMgLXBpcGUgLW1zb2Z0LWZsb2F0IC1tYXJjaD00a2MgLW10dW5lPTRrYyAtRUIgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtYyAtbyBhc2Nfc2VyaWFsLm8gYXNjX3NlcmlhbC5jCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIHRyaWNrIGFuZCBtYWtlcyBpdCB3b3JrIHdpdGggYm90aCB2ZXJzaW9ucyBvZiBnYXMuCiAgICBJIGFsc28gcmVwbGFjZSBhbiBleHBlbnNpdmUgYGF3ayAob3IgZ2F3ayknIHdpdGggYGN1dCcuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxNjY2NGY3Mjg1MDg0NmU2NDU2MTZkYTFjMGZhNWFmY2Q2ZDE1ZjE1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyNiAyMDA3ICswOTAwCgogICAgW01JUFNdIFJlbW92ZSB1c2VsZXNzIGluc3RydWN0aW9ucyBmb3IgaW5pdGlhbGl6aW5nICRncC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAzYzAzMWQ1NjYwZWE5NDZjMzlhZjZlMmUxNjI2N2RhODU3YzYwOWYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjI3OjA2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gTUlQUyA0SyBjb3JlOiBDb2Rpbmcgc3R5bGUgY2xlYW51cHMKCiAgICBObyBsb2dpY2FsIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmNWU0MjlkMzg2MGJiYTRjNmFlOGJlYWQ4Zjc4MzQ5ZmEyNDQ5MWIyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyMCAyMDA3ICswOTAwCgogICAgW01JUFNdIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDRmYmQwNzQxYjJiNjQ0MWRhMTBiZTkzZTEwMjY3MTIyNTgxYjcwNzkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjIyOjMzIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYXUxeDAwX2V0aC5jOiBGaXhlZCBhIHdhcm5pbmcgb24gcGIxMDAwIGJ1aWxkLgoKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjEzOTogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmMDEzMjA0NTk3MzZmMTU2NzA3NDI1Y2Y4MTEyZjk4NjA2MzAxYWE0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgW01JUFNdIGF1MXgwMF9ldGguYzogRml4IGF1MXgwMF9taWlwaHlfe3JlYWQsd3JpdGV9IGJ1aWxkIGVycm9yCgogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX2VuZXRfaW5pdGlhbGl6ZSc6CiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogJ2F1MXgwMF9taWlwaHlfcmVhZCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6ICdhdTF4MDBfbWlpcGh5X3dyaXRlJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjI5ODogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCiAgICBtYWtlWzFdOiAqKiogW2F1MXgwMF9ldGgub10gRXJyb3IgMQoKICAgIEZpeGVkIGJ5IG1vdmluZyB0aGVzZSB0d28gZnVuY3Rpb25zIGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBiMDkyNThjNTM5M2VkZDEwODdjNWYzOWFlNjgzMzhmMTZiNDlmOGIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgTUFLRUFMTDogQWRkZWQgbWlzc2luZyBwYjEwMDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlNGE2ZTM2NjdhMWUzOWMwZTZlOTk0OTg2ODZiMTVkMjcxOGIzNjkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gcGIxMDAwOiBSZXBsYWNlIG9ic29sZXRlIG1lbXNldHVwLlMgd2l0aCBsb3dsZXZlbF9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDY2MmU1Y2IzOTcyNDljM2VhODhhNGMzMjU1ZTljY2ZjNDBiOThkODIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogQ2xlYW51cCBfX3VfYm9vdF9jbWRfe3N0YXJ0LGVuZH0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDU5NDdmNjk5OWFhZmE3YzU0YzEzOTA5ODNkMjY0YTg0NjNkZmVhOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAyOjM0OjM4IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9JRywgcHJlcGFyZSBmb3IgLXJjNAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQzMjllNmYwNWJiZGZlNmJkNzFiMGUwOWYwYzc2ZDNiMGEwMjVhNQpBdXRob3I6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE5vdiAxNCAxODo1ODozMyAyMDA3ICswMTAwCgogICAgRml4IHRoZSBpMmMgZnJlcXVlbmN5IGFuZCBkZWZhdWx0IGFkZHJlc3MgaW4gcnNkcHJvdG8gYm9hcmQKCiAgICByc2Rwcm90byBib2FyZCBzdXBwb3J0IGhhcyB3cm9uZyBJMkMgZnJlcXVlbmN5IGFuZCB3cm9uZyByZXR1cm4gdmFsdWUKICAgIGhhbmRsaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KCmNvbW1pdCA0MjljMTgwZWRhZDAzOGY5MWM5ODljYjE0YjQ3ODIyODA5MmU3MDU0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwMTo0NTozOCAyMDA3ICswMTAwCgogICAgcG93ZXJwYzogQmFja291dCByZWxvY2F0aW9uIGNoYW5nZXMgZm9yIE1QQzUxMjEsIHRvby4KCiAgICBBcHBseSBHcmFudCBMaWtlbHkncyBiYWNrb3V0IHRvIE1QQzUxMjEgY29kZSwgdG9vLgoKICAgIFBvaW50ZWQgb3V0IGJ5IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYzNkZDQzMzM4YTA3NzE2NWU3ZTAzMDljYjM5OTRlNjVkMmJkYmY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgTm92IDEzIDIyOjE4OjMzIDIwMDcgLTA3MDAKCiAgICBwb3dlcnBjOiBCYWNrb3V0IHJlbG9jYXRpb24gY2hhbmdlcy4KCiAgICBVZ2guICBJICpoYXRlKiB0byBiYWNrIHRoaXMgY2hhbmdlIG91dCwgYnV0IHRoZXNlIGNvbXBpbGVyIGZsYWdzIGRvbid0CiAgICB3b3JrIGZvciByZWxvY2F0aW9uIG9uIGFsbCB2ZXJzaW9ucyBvZiBHQ0MuICBJJ3ZlIG5vdCBiZWVuIGFibGUgdG8KICAgIHJlcHJvZHVjZSB0aGUgZW52aXJvbm1lbnQgaW4gbXkgc2V0dXAgKGFuZCBoZW5jZSwgbm90IGJlZW4gYWJsZSB0bwogICAgZmluZCBhIGNvbWJpbmF0aW9uIHRoYXQgKmRvZXMqIHdvcmspLCBzbyBJJ3ZlIGdvdCBubyBjaG9pY2UgYnV0IHRvIGdvCiAgICBiYWNrIHRvIHRoZSBvbGQgZ2NjIGZsYWdzIGFuZCBsaW5rZXIgc2NyaXB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YzE1MDEwZWZhZDk4MGFkNTQ5OGNjNTY1ZmMxZWQ3MGRmMmY1MmI0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAxMyAwOToxMTowNSAyMDA3ICswMTAwCgogICAgRml4ZWQgbWlwc19pb19wb3J0X2Jhc2UgYnVpbGQgZXJyb3JzLgoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc2VudCBvbjoKICAgIC0gMjkgU2VwIDIwMDcKCiAgICBBbHRob3VnaCBtaXBzX2lvX3BvcnRfYmFzZSBpcyBjdXJyZW50bHkgYSBwYXJ0IG9mIElERSBjb21tYW5kLCBpdCBpcyBxdWl0ZQogICAgZnVuZGFtZW50YWwgZm9yIE1JUFMgSS9PIHBvcnQgYWNjZXNzIHN1Y2ggYXMgaW5bYndsXSBhbmQgb3V0W2J3bF0uIFNvIG1vdmUKICAgIGl0IHRvIE1JUFMgZ2VuZXJhbCBwYXJ0LCBhbmQgaW50cm9kdWNlIGBzZXRfaW9fcG9ydF9iYXNlKCknIGZyb20gTGludXguCgogICAgVGhpcyBwYXRjaCBpcyB0cmlnZ2VyZWQgYnkgbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnIGJ1aWxkCiAgICBlcnJvciBvbiBndGgyIChhbmQgdGIwMjI5IGFsc28gbmVlZHMgdGhpcyBmaXguKQoKICAgIGJvYXJkL2d0aDIvbGliZ3RoMi5hKGd0aDIubyk6IEluIGZ1bmN0aW9uIGBsb2dfc2VyaWFsX2NoYXInOgogICAgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9ib2FyZC9ndGgyL2d0aDIuYzo0NzogbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnCiAgICBjb21tb24vbGliY29tbW9uLmEoY21kX2lkZS5vKTovaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2NvbW1vbi9jbWRfaWRlLmM6NzEyOiBmaXJzdCBkZWZpbmVkIGhlcmUKICAgIG1ha2U6ICoqKiBbdS1ib290XSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmVjYmI3YTNmYTliMDk0MGVkMzNlNDkwZDE5NWQ0YjY4MzBiMjQyMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDE6MzA6NDAgMjAwNyArMDEwMAoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgc2xhdmUgc2VyaWFsIHByb2dyYW1taW5nIG1vZGUgZm9yIHRoZSBYaWxpbngKICAgIFNwYXJ0YW4yLzMgRlBHQXMuIFRoZSBvbGQgY29kZSB1c2VkICI8IDAiIG9uIGEgImNoYXIiIHR5cGUgdG8gdGVzdCBpZgogICAgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHdhcyBzZXQsIHdoaWNoIGRpZCBub3Qgd29yayBvbiBhbnkKICAgIGFyY2hpdGVjdHVyZSB3aGVyZSAiY2hhciIgZGVmYXVsdGVkIHRvIGJlIGFuIHVuc2lnbmVkIHR5cGUuCgogICAgQmFzZWQgb24gYSBwYXRjaCBieSBBbmdlbG9zIE1hbm91c2FyaWRpcyA8YW1hbm91c0BpbmFjY2Vzc25ldHdvcmtzLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQwOGI3MjMzYmMyNTJmYWFkODMzOWU3Y2EwZGRmZDYyZmE3OTkwM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6MjM6MjkgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBicm9rZW4gdmFyaWFibGUgcmVmZXJlbmNlIHdoZW4gI2RlZiBERUJVR2luZy4KCiAgICBTb21ldGltZXMgeW91IGNhbid0IHJlZmVyZW5jZSB0aGUgRERSMiBjb250cm9sbGVyIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY5ZDkxNjRkOWM2YjVhN2YwMzkzZmQ4ZDdlMjQ2YjhhMDMyNmJjMTkKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI2IDE4OjMyOjAwIDIwMDcgKzA4MDAKCiAgICBtYWtlIDg2MTAgYm9hcmQgdXNlIHBpeGlzIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYjc0YjNjMWM5NDgxYTZiZmZiZjhjZDQ0NWU1YmNiZjY5MDhlODM2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxOToyNjoyMSAyMDA3ICswODAwCgogICAgVW5pZnkgcGl4aXNfcmVzZXQgYWx0YmFuayBhY3Jvc3MgYm9hcmQgZmFtaWxpZXMKCiAgICBCYXNpY2FsbHksIHJlZmFjdG9yIHRoZSBDRkdfUElYSVNfVkJPT1RfTUFTSyB2YWx1ZXMKICAgIGludG8gdGhlIHNlcGFyYXRlIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGJmNTU1NDY1Yzc5MjZiZTEzZTEwNDZhYzBkMGYwNWFjNzI4MjljCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiA3IDA4OjE5OjIxIDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdhNjBlZTdjNjI0OGE5NThjNTc1N2QzNjYwYTE3MDI3MjNhMjc4NmQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDcgMDg6MTk6MTkgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfaWRlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk1NTQxM2YzNWYwNTRhODJlNDAwNDJmMWRiY2Y1MDFjNmEwNTcxOWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6Mjc6NTIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCByZWxvY2F0aW9uIGZpeHVwIGZvciBtcGM1eHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzNjQ5Y2Q5OWJhODE1YjY2MDE4Njg3MzU3NjU2MDJmMDBlZjM2OTJiLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUxNTYzMzg4OGEwNThhYWNiMzFhNjJkMmNmMTI3OGUxZTRjMjM2YWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjQ6MzIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBNUEM1eHh4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNmY3NTc2YjIwZWNmMGQwNDBjM2FjM2IwMzJiNWNiYzg2MGUzOGE5MC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxMzkzNjVmYmU1NjZkMGZjNjE5YTFlZDA0NDUyZWM1Mzg4ZjBjZWY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIxOjA0IDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODIyMCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGE4NWRkMjU0YzA1NzdmY2ExMzYyN2M0NmU5M2ZjMmFkNGM0ZjFmMDAuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzA5MjIzNDIzNjllNWUzOWIyODZmZTIxZTc2OGEyMzljYTA3YTUxNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo1NyAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBmM2E1MmZlMDU5MjM5MzVkYjg2OTg1ZGFmOTQzOGUyZjcwYWMzOWFhLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk2Mjc5YWI0Y2FkNjBjYjU5NzJhYTkzNGZiZTQ4NDVhYzAyY2M3NWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NTAgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjYwIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWFmNjFiMmY0YjgzOGEwNWY3OWJlMjc0ZjNlNWE2NmVkZDJkOWM5Ni4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5MjhmZTMzYjI0Y2RmMzgyYThkYzg2ODdmZWQyNGIxOTYxY2RiNWQ2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjQzIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODN4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDA1NzAwNGY0YTQ4NjM1NTRkNTZjYzU2MjY4YmZhN2M3ZDk3MzhlMjcuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYzkzOTQ1ZThmOWUzMDA4NjBkMmJmNzNhMjU0OWNlNTc5NGY4YmQwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDoyNSAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJbTVBDNTEyeF0gQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGQxNzk3OWQwMzU5NDkyYTgyMmEwYTQwOWQyNmUzYTM1NDliNGNkNC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1NGZkNmM5M2MyOGEwYTQ1MzUyZmZmNWRkOTI2NzM0MDFmZjU2M2YyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA4OjE4OjIwIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogQ2hhbmdlIFBIWSByZXNldCBzZXF1ZW5jZSBmb3IgUEhZIE1ESU8gYWRkcmVzcyBsYXRjaGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxY2U1NTE1MWM4NWQwNjhmNzAzMTdhOGQ2NWM2MTA1OGI4OTFhZmI0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTMgMDc6NTA6MjkgMjAwNyArMDEwMAoKICAgIFtVQzEwMV0gU1JBTSBub3cgd2l0aCAyIE1CIHdvcmtpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOGQ3MzdhMjgxNTJlYzEyODczZjg1NDRjY2ExZmIzOWE0OWU1ZTY5MwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjUwOjE4IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIFJlbW92ZSByZXNldCByZWdpc3RlcnMgZnJvbSBDQ00KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2Q3Y2RlYTc2OWE2MGIwYTZlNGMxOGJlZjdmOWQ2NDhmZDE0YjhkNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjMxOjExIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIEFkZCBSZXNldCBzdHJ1Y3R1cmUgdG8gaW1tYXBfNTMyOS5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5YjI2Y2YwMGQ3NmQ3NWZkZjdmZGM0YjEzZTRkZDkyOTc0M2JjMjEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjoxOTowMSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSByZXZlcnQgaW5jbHVkZS9hc20tbTY4ay9tNTMyOS5oIGZpbGUgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMjVhMjRiNWUwNjJhZDk0NjI3NDI0NTA4YWU4MTRmNTFkYmUxYTM0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTg6MDA6NTQgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1NDQ1eCAtIFVwZGF0ZSBjb3JyZWN0IFJBTUJBUiBhbmQgbWlzc2luZyBsaW5rZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjQ4YzdjMTQ4MzVmMzRkNWQ5MTBiNDVlNTYwMDA1MGU1OGNhNmNhYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE3OjU2OjE1IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyeCAtIFVwZGF0ZSBkb19yZXNldCgpIHVzaW5nIGNvcmUgcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDkyNDBhNWY4MjdlYjNiNDc2YTZiYTI5MzhkMDFmMWE5ZTc2ODhmNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE3OjUxOjAwIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIGNwdSBmbGFnIGZvciA0LjIteHggY29tcGlsZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWYxMDMxMDVhMzc0NmFiMTIyNzliNjNiOGMxZDM3MmMwY2UyY2M1OApBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiA1IDE3OjM5OjI0IDIwMDcgKzA4MDAKCiAgICBJbXBsZW1lbnQgZ2VuZXJhbCBVTGkgNTI2eCBFdGhlcm5ldCBkcml2ZXIgc3VwcG9ydCBpbiBVLWJvb3QKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2VuZXJhbCBVTGkgNTI2eCBFdGhlcm5ldCBkcml2ZXIuCiAgICBVbnRpbCBub3csIGl0IGlzIHRoZSBvbmx5IG5hdGl2ZSBFdGhlcm5ldCBwb3J0IG9uCiAgICBNUEM4NjEwSFBDRCBib2FyZCwgYnV0IGl0IGNvdWxkIGJlIHVzZWQgb24gb3RoZXIgYm9hcmRzCiAgICB3aXRoIFVMaSA1MjZ4IEV0aGVybmV0IHBvcnQgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA3MWJjNmU2NDc0ZmVhOGVmNDgxYjliNDVkMWVkZDdhZDFmNmRmYmJkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBOb3YgMSAwODo0Njo1MCAyMDA3IC0wNTAwCgogICAgTkVUOiBBZGQgRXRoZXJuZXQgMTAwMEJBU0UtWCBzdXBwb3J0IGZvciBQUEM0eHgKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgMTAwMEJBU0UtWCB0byBmdW5jdGlvbnMgIm1paXBoeV9zcGVlZCAoKSIgYW5kCiAgICAibWlpcGh5X2R1cGxleCgpIi4JSXQgYWxzbyBhZGRzIGZ1bmN0aW9uICJtaWlwaHlfaXNfMTAwMGJhc2VfeCAoKSIsIHdoaWNoCiAgICByZXR1cm5zIG5vbi16ZXJvIGlmZiB0aGUgUEhZIHJlZ2lzdGVycyBhcmUgY29uZmlndXJlZCBmb3IgMTAwMEJBU0UtWC4gIFRoZQogICAgIm1paSBpbmZvIiBjb21tYW5kIGlzIG1vZGlmaWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gMTAwMEJBU0UtVCBhbmQgLVguCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAyOTgwMzVkZjQ5NDhiMTEzZDI5YWMwZTY5NDcxN2QzNGI5NWJjNWRjCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVdlZCBPY3QgMzEgMTE6MjE6MjkgMjAwNyAtMDUwMAoKICAgIE5FVDogQ29zbWV0aWMgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgOTkyNzQyYTViMDlkOTA0MGFkYmQxNTZmYjkwNzU2YWY2NmFkZTMxMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMyAyMzowOToyNyAyMDA3ICswMTAwCgogICAgQ2xlYW51cCBjb2Rpbmcgc3R5bGU7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU4ODFjYjU2M2UzMmY0NTgzMmI3YjZkYjc3YmRjZDAxN2FkY2JiNDEKQXV0aG9yOiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+CkRhdGU6CUZyaSBOb3YgMiAxMzoxNTo0MiAyMDA3IC0wNzAwCgogICAgZml4IHdvcmRpbmcgaW4gUkVBRE1FCgogICAgQ2hhbmdlZCB0aGUgd29yZGluZyB0byBwcm9wZXJseSBkZXNjcmliZSB0aGUgc2hhZG93aW5nCiAgICBvZiB0aGUgZW52aXJvbm1lbnQgZnJvbSBST00gdG8gUkFNCgogICAgU2lnbmVkLW9mZi1ieTogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGFjbS5vcmc+Cgpjb21taXQgYWQ4NDViZWVmMDYyNDU0MjZjNTdiNTNkY2RjMDFiN2RjNzBlMGQ0NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVdlZCBPY3QgMzEgMDI6MTg6MTUgMjAwNyArMDkwMAoKICAgIGJsYWNrZmluOiBNb3ZlIGAtRF9fQkxBQ0tGSU5fXycgdG8gJChBUkNIKV9jb25maWcubWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGVjMjI3NTU3OTk0NjZjOGExMDM2NjRiYjNhNWU2NDdiZjljMjM4ZjQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJVGh1IE9jdCAyNSAxNjowODoxNCAyMDA3ICswMzAwCgogICAgVHJpbW1lZCBzb21lIHZhcmlhYmxlcyBpbiBuZTIwMDAuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGViNmYyMTRkMzY0NGIyYTc3OTY4YzE3NmVkMzZkY2Y4NThjZmU3ZTAKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjUxOjI3IDIwMDcgKzA4MDAKCiAgICBGaXggdGhlIGlzc3VlIG9mIHVzYl9rYmQgZHJpdmVyIG1pc3NpbmcgdGhlIHNjYW4gY29kZSBvZiBrZXkgJ3onLgoKICAgIFRoZSBzY2FuIGNvZGUgb2YgdGhlIGtleSAneicgaXMgMHgxZCwgd2hpY2ggc2hvdWxkIGJlIGhhbmRsZWQuCgogICAgVGhlIGNoYW5nZSBoYXMgYmUgdGVzdGVkIG9uIE5PVkFURUsgVVNCIGtleWJvYXJkIGFuZCBVTEkgUENJIE9IQ0kKICAgIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYmY0Nzk2ZjY0OThmYmFkZTU2ZDU2ZWZmM2EwYTQ5YjI5OWQ5M2U1CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzozMDowNCAyMDA3ICswODAwCgogICAgRml4IFVTQiBzdXBwb3J0IGlzc3VlIGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGhhcyBhbHJlYWR5IGVuYWJsZWQgVVNCLCBidXQgaXQKICAgIG1pc3NlZCBkZWZpbml0aW9uIG9mIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUywgdGhlIFVTQgogICAgb24gTVBDODY0MUhQQ04gY2FuIG5vdCB3b3JrIGJlY2F1c2Ugb2YgdGhlIHdyb25nIFVTQgogICAgcmVnaXN0ZXIgZW5kaWFuLgoKICAgIEFuZCBhZGQgdGhlIFVTQiBjb21tYW5kIHRvIFUtQm9vdCBjb21tYW5kcyBsaXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGU2MjA0MTAyM2RjM2RlOWQ5OGQ5NzdiYjA4MDIzNWJjNmQwMzVlMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMTg6MTY6MDEgMjAwNyArMDIwMAoKICAgIFVzZSBjb25maWdfY21kX2RlZmF1bHQuaCBpbnN0ZWFkIG9mIGNvbmZpZ19jbWRfYWxsLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU2NjIyZjg3ODU3NDM5YjFjMjIxZTlkZWVmMTFhOWQ1YmI1ZDQzMDgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDI0IDAxOjM3OjM2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBDYWxsIHVzYl9jcHVfaW5pdCgpIGR1cmluZyBib2FyZCBpbml0CgogICAgdXNiX2NwdV9pbml0KCkgY29uZmlndXJlcyBHUFMgVVNCIHBpbnMsIGNsb2NrcywgZXRjLiBhbmQKICAgIGlzIHJlcXVpcmVkIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGtlcm5lbCBVU0Igc3Vic3lzdGVtLgogICAgVGhpcyBzZXR1cCB3YXMgcHJldmlvdXNseSBkb25lIGluIHRoZSBrZXJuZWwgYnkgdGhlIGZpeHVwCiAgICBjb2RlIHdoaWNoIGlzIGJlaW5nIHJlbW92ZWQsIHRodXMgbG93IGxldmVsIGluaXQgbXVzdCBiZQogICAgZG9uZSBieSBVLWJvb3Qgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjljMjljMDI2N2ZlODU3ZTcyMDE0Y2U5MGM1ZDM1YjJlZjYzMDJiZApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjoyNTo1MCAyMDA3ICswMjAwCgogICAgRml4IHR5cG8gaW4gbmZzLmMKCiAgICBBbiBvYnZpb3VzIHR5cG8uIE9yaWdpbmFsbHkgZml4ZWQgaW4gbGlua3N0YXRpb24gdS1ib290IHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDU5NTQzZmUwMGE0Y2U3MjBlZjlmNWFhN2ZiMzg3YzZkYWYxYzdkNzgKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTQ6MzU6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBhIHR5cG8gaW4gY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jCgogICAgU2luY2UgRGVjZW1iZXIgMjAwMyB0aGUgdGltZXJfaW50ZXJydXB0X2NwdSgpIGZ1bmN0aW9uIGluCiAgICBjcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMgY29udGFpbnMgd2hhdCBzZWVtcyB0byBiZSBhIHN1cGVyZmx1b3VzCiAgICBwYXJhbWV0ZXIuIFJlbW92ZSBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzllN2I5YjlhMTcwMGZlMDA5Njc4ZDFmOWI0MWU2MzY0YWM1ZGYyZApBdXRob3I6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxMToxMzo1MSAyMDA3ICswMjAwCgogICAgYWRkIGZ0X2NwdV9zZXR1cCguLikgb24gbXBjODI2MAoKICAgIEFkZCBmdF9jcHVfc2V0dXAoLi4pLWZ1bmN0aW9uIHRvIGFkYXB0IGl0IGZvciB1c2Ugd2l0aCBsaWJmZHQKICAgIGJhc2VkIG9uIGNvZGUgZnJvbSBtcGM1eHh4CgogICAgU2lnZW5kLW9mZi1ieTogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgogICAgLS0KCmNvbW1pdCA2YWJkODJlMTlhZTkzYzBiNGQxMDRlNTAxNjVlMjM1OTE1ZWMwODc1CkF1dGhvcjogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgpEYXRlOglXZWQgT2N0IDE3IDExOjE4OjQyIDIwMDcgKzAyMDAKCiAgICBjaGFuZ2VzIGZvciBJRFM4MjQ3IGJvYXJkIHN1cHBvcnQKCiAgICBUbyBnZXQgdGhlIElEUzgyNDcgYm9hcmQgd29ya2luZyBmb2xsb3dpbmcgYXJlIGRvbmU6CiAgICAgLSBGQ0MyIGlzIGRlYWN0aXZhdGVkCiAgICAgLSBGQ0MxIGlzIGFjdGl2YXRlZAogICAgIC0gSTJDIGlzIGFjdGl2YXRlZAogICAgIC0gQ0ZJIGRyaXZlciBpcyBhY3RpdmF0ZWQKICAgICAtIEFkYXB0ZWQgZm9yIHVzZSB3aXRoIExJQkZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KICAgIC0tCgpjb21taXQgOGI2Njg0YTY5ODUwMGJlOWMxNDJlYzJjOWY0NmNmYzM0OGUxN2YwYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgT2N0IDI0IDE1OjQ4OjM3IDIwMDcgKzAyMDAKCiAgICBBVFNUSzEwMDI6IFJlbW92ZSBkZWZhdWx0IGV0aGVybmV0IGFkZHJlc3NlcwoKICAgIFdvbGZnYW5nIGlzIHJpZ2h0OiBJdCdzIG5vdCBhIGdvb2QgaWRlYSB0byBzZXQgdXAgZGVmYXVsdCBpbml0aWFsCiAgICBldGhlcm5ldCBhZGRyZXNzZXMgZm9yIGEgYm9hcmQsIGV2ZW4gdGhvdWdoIHRoZXkgYmVsb25nIHRvIHRoZSBsb2NhbAogICAgcmFuZ2UuCgogICAgVGhpcyB3aWxsIGNoYW5nZSB0aGUgZmFpbHVyZSBtb2RlIGZyb20gIklUIG1hbmFnZXIgc2NyZWFtcyBhdCB5b3UgZm9yCiAgICB1c2luZyBkdXBsaWNhdGUgZXRoZXJuZXQgYWRkcmVzc2VzIiB0byBhIG5pY2UgZXJyb3IgbWVzc2FnZSBleHBsYWluaW5nCiAgICB0aGF0IHRoZSBldGhlcm5ldCBhZGRyZXNzIGhhc24ndCBiZWVuIHNldCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlNWM3OTRlNDkxYTU3ZDgyOWI2ZDg3MzNlMmVkODM2OGEyMjY5YWJmCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAzMTU0ODI0OWRlY2YxOGE2Yjg3N2ExODQzNmI2MTM5ZGQ0ODNmZTRhCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBlOGVlOGYzYWRlMmEwNmMxODkzZGQ1ZTY4ZjIyMzA3MGQ2NTBjN2VkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjE2OjIyIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1NDQ1NTogRml4IGNvcnJlY3QgYm9vdCBsb2NhdGlvbiBmb3IgYXRtZWwgYW5kIGludGVsCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY4OGU4ZWI0MTRhYzExMWNjYTdjZTYwYmRmMzBlODA1YWI5YTdiY2IKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTQ6MDAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggYnVpbGQgZXJyb3Igd2hlbiBDT05GSUdfV0FUQ0hET0cgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjdlMTJlNzA1YjIwNGNmZTkxNGUzZTNlNjkzZDY5YTQ0NWRjYWJmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjEyOjM2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MzI5OiBBc3NpZ24gY29ycmVjdCBTRFJBTSBzaXplIGFuZCBmaXggY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTVlOWYyYzIxMmE2NTYxMGIyZTU5YTVjMDBkMDExMzM4M2E0ZGEwYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxMDoyMyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTI1MzogQXNzaWduIGNvcnJlY3QgU0RSQU0gc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWNlZmE3MmVlMDAyNmY4NjJhYjY1NTk3Y2E2ODc0MjhmNjNhOTczCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjA5OjE3IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MjgyOiBGaXggZXh0ZXJuYWwgZmxhc2ggYm9vdCBhbmQgcmV0dXJuIGRyYW1zaXplCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ3ODc5MWFlOTE0ZDRlN2M1ZWRjYTFjZGFkNzNiM2RjODFhNGViODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjIwOjAxIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBpbmNyZWFzZSBrZXJuZWxfYWRkcl9yIGFuZCBmZHRfYWRkcl9yIChoaW50ZWQgYnkgV29sZmdhbmcgRGVuaykuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYTBjZTIwYWE0Y2I0ZTMwNjhkYTA0ZTcyOTBlZTk5ODZmZDBiODM0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDI6MjUgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IGZpeCBzcHVyaW91cyBjaGFyYWN0ZXJzIG9uIHNlY29uZCBzZXJpYWwgaW50ZXJmYWNlCgogICAgV2l0aCB0aGlzIHBhdGNoIFBTQzMgaXMgY29uZmlndXJlZCBhcyBVQVJULiBUaGlzIGlzIGRvbmUsIGJlY2F1c2UgaWYKICAgIHRoZSBwaW5zIG9mIFBTQzMgYXJlIG5vdCBjb25maWd1cmVkIGF0IGFsbCAoLT4gYWxsIHBpbnMgYXJlIEdQSSksCiAgICBkdWUgdG8gY3Jvc3N0YWxrLCBzcHVyaW91cyBjaGFyYWN0ZXJzIG1heSBiZSBzZW5kIG92ZXIgdGhlIFJYMjMyXzJfVFhECiAgICBzaWduYWwgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiZTRhODdmMTFlMjk3YTVjZWRlZGJmN2RkNzFjMDI0OGYzODc0YWNkCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDE6MjcgMjAwNyArMDIwMAoKICAgIFRRTTUyMDBTOiBmaXggY29tbWFuZHMgZm9yIFNUSzUyeHggYmFzZSBib2FyZCBiZWNhdXNlIG9mIG1pc3NpbmcgU001MDEgZ3JhZmljIGNvbnRyb2xsZXIKCiAgICBTb21lIGNvbW1hbmRzIGZvciB0aGUgU1RLNTJ4eCBiYXNlIGJvYXJkIHRyeSB0byBhY2Nlc3MgdGhlIFNNNTAxIGdyYWZpYwogICAgY29udHJvbGxlci4gQnV0IHRoZSBUUU01MjAwUyBoYXMgbm8gZ3JhZmljIGNvbnRyb2xsZXIgKG9ubHkgdGhlIFRRTTUyMDAKICAgIGFuZCB0aGUgVFFNNTIwMEIgaGF2ZSkuIFRoaXMgcGF0Y2ggZGVhY3RpdmF0ZXMgdGhlIGNvbW1hbmRzIGFjY2Vzc2luZwogICAgdGhlIFNNNTAxIGZvciB0aGUgVFFNNTIwMFMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjMxZjY0MzQzZWFkOTQ4MmNkNDM5YjFhZGJlNGMzNDAyNmE2NDFiMQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQ1OjUzIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBmaXggc3B1cmlvdXMgY2hhcmFjdGVycyBvbiBzZWNvbmQgc2VyaWFsIGludGVyZmFjZQoKICAgIFdpdGggdGhpcyBwYXRjaCBQU0MzIGlzIGNvbmZpZ3VyZWQgYXMgVUFSVC4gVGhpcyBpcyBkb25lLCBiZWNhdXNlIGlmCiAgICB0aGUgcGlucyBvZiBQU0MzIGFyZSBub3QgY29uZmlndXJlZCBhdCBhbGwgKC0+IGFsbCBwaW5zIGFyZSBHUEkpLAogICAgZHVlIHRvIGNyb3NzdGFsaywgc3B1cmlvdXMgY2hhcmFjdGVycyBtYXkgYmUgc2VuZCBvdmVyIHRoZSBSWDIzMl8yX1RYRAogICAgc2lnbmFsIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgMGZjMGY5MWIyMGZmYTgwMmY1YTY2NTM0Y2E1YzI4NDQ5MTA1ODNmNgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQwOjA2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwUzogZml4IGNvbW1hbmRzIGZvciBTVEs1Mnh4IGJhc2UgYm9hcmQgYmVjYXVzZSBvZiBtaXNzaW5nIFNNNTAxIGdyYWZpYyBjb250cm9sbGVyCgogICAgU29tZSBjb21tYW5kcyBmb3IgdGhlIFNUSzUyeHggYmFzZSBib2FyZCB0cnkgdG8gYWNjZXNzIHRoZSBTTTUwMSBncmFmaWMKICAgIGNvbnRyb2xsZXIuIEJ1dCB0aGUgVFFNNTIwMFMgaGFzIG5vIGdyYWZpYyBjb250cm9sbGVyIChvbmx5IHRoZSBUUU01MjAwCiAgICBhbmQgdGhlIFRRTTUyMDBCIGhhdmUpLiBUaGlzIHBhdGNoIGRlYWN0aXZhdGVzIHRoZSBjb21tYW5kcyBhY2Nlc3NpbmcKICAgIHRoZSBTTTUwMSBmb3IgdGhlIFRRTTUyMDBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDdiMGE0MjIxOWYzMDI3N2Y3MWY0NDA1Y2JhZjhhMjY5ZjZkMmQyMjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gT2N0IDIxIDA5OjE0OjI4IDIwMDcgKzAyMDAKCiAgICBNaXBzOiBGaXggc3RyaW5nIGZ1bmN0aW9ucyBkaWZmZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjYjgyNTBmZTRiM2M0ZWQ1NDliMjcwZThhMjBiYzIyMDYwZTdlMWQyCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxNzo1MTo0MCAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGVuYWJsZSBDT01NQU5EX01FTU9SWSBpZiBpbmJvdW5kIHdpbmRvdwoKICAgIFBhdGNoIDE2ZTIzYzNmIHJlbW92ZWQgUENTUkJBUiBhbGxvY2F0aW9uLglCdXQgcGFzc2luZyB6ZXJvIHdpbmRvd3MKICAgIHRvIHBjaWF1dG9fc2V0dXBfZGV2aWNlIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2Ygbm90IGdldHRpbmcKICAgIENPTU1BTkRfTUVNT1JZIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5ZDBkNTI3OTkyNTY2ZWJlZjk4MjY5NjJmZjE3NDViMmYwODJiOTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDEwOjU1OjI0IDIwMDcgKzAyMDAKCiAgICBkZWx0YTogRml4IE9IQ0lfUkVHU19CQVNFIHVuZGVjbGFyZWQgYW5kIHdhaXRfbXMgaW1wbGljaXQgZGVjbGFyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDljNDg4NGY1NGRhOTgyY2U5OTBjN2QxNzYwYWM4MWIwNzA0ZDNjNjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA4OjEwOjE1IDIwMDcgKzAyMDAKCiAgICBmaXggd2FybmluZzogbm8gcmV0dXJuIHN0YXRlbWVudCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU3ODIyMGY2ZTUxNDIwNjc1N2FjZmUyNDcyOTdmYzlhMzI4YTg4MWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA2OjMzOjQ1IDIwMDcgKzAyMDAKCiAgICB4c2VuZ2luZTogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxMGNkYjhkYmQ2N2E4MTg4MjNhYjllYzg4YjY4ZmMzNDg5MDNkYjU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDoyNDo1OSAyMDA3ICswMjAwCgogICAgbHViYm9jazogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0MWI0ZDI4MmQzOGZhNzIzMWMzMTVjNWY2Y2ZmZjViZGQyNGUwMTkxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjo1MDowMyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlOiBrZWVwIGxpc3RzIHNvcnRlZDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNThiNzRiMDVjNjIxZTI4MzVlY2Y0ZTJkMzI0MzA0MmNmNDE4Njc3NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDk6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGRyaXZlcnMgbWFrZWZpbGUgZW50cmllcyBkczE3MjIuYyBtd19lZXByb20uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTY0NTViZmViYzk4ODc4MzcwOTVjOTA1MWQyMTZmNTNjNjFiNWYxMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDc6MzkgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGJvYXJkL2lubm9rb20vaW5ub2tvbS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyYTQ3NDFkOWExNGVjNDc1ZjUwZTk4NTZkMmMwYTY3ZThiNDI3MWJkCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjI1OjMzIDIwMDcgKzAyMDAKCiAgICBmaXggcHhhMjU1X2lkcCBib2FyZAoKICAgIFRoZSBweGEyNTVfaWRwIGJlaW5nIGFuIG9sZCB1bm1haW50YWluZWQgYm9hcmQgc2hvd2VkIHNldmVyYWwgaXNzdWVzOgogICAgMS4gQ09ORklHX0lOSVRfQ1JJVElDQUwgd2FzIHN0aWxsIGRlZmluZWQuCiAgICAyLiBOZWl0aGVyIENPTkZJR19NQUNfUEFSVElUSU9OIG5vciBDT05GSUdfRE9TX1BBUlRJVElPTiB3YXMgZGVmaW5lZC4KICAgIDMuIFN5bWJvbCBmbGFzaF9hZGRyIHdhcyB1bmRlY2xhcmVkLgogICAgNC4gVGhlIGJvYXJkcyBsb3dsZXZlbF9pbml0IGZ1bmN0aW9uIHdhcyBzdGlsbCBjYWxsZWQgbWVtc2V0dXAuCiAgICA1LiBUaGUgVEVYVF9CQVNFIHdhcyBzdGlsbCAweGEzMDAwMDAwIHJhdGhlciB0aGFuIDB4YTMwODAwMDAuCiAgICA2LiBVc2luZyAtbWFyY2g9YXJtdjUgaW5zdGVhZCBvZiAtbWFyY2g9YXJtdjV0ZSByZXN1bHRlZCBpbiBsb3RzIG9mCiAgICAndGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZycgd2FybmluZ3Mgb24gcmVjZW50IGNvbXBpbGVycy4KICAgIDcuIFRoZSBQWEEncyBzZXJpYWwgZHJpdmVyIHJlZGVmaW5lZCBGRlVBUlQsIEJUVUFSVCBhbmQgU1RVQVJUIHVzZWQgYXMKICAgIGluZGV4ZXMgcmF0aGVyIHRoYW4gdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZyb20gdGhlIHB4YS1yZWdzIGhlYWRlcgogICAgZmlsZS4gUmVuYW1lZCB0aGVtIHRvIEZGVUFSVF9JTkRFWCwgQlRVQVJUX0lOREVYIGFuZCBTVFVBUlRfSU5ERVggdG8KICAgIGF2b2lkIGFueSBhbWJpZ3VpdGllcy4KICAgIDguIFRoZXJlIHdlcmUgc2V2ZXJhbCByZWRlZmluaXRpb24gd2FybmluZ3MgY29uY2VybmluZyBJQ01SLCBPU01SMywKICAgIE9TQ1IsIE9XRVIsIE9JRVIsIFJDU1IgYW5kIENDQ1IgaW4gdGhlIFBYQSdzIGFzc2VtYmx5IHN0YXJ0IGZpbGUuCiAgICA5LiBUaGUgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlIHdhcyByYXRoZXIgb3V0ZGF0ZWQuCiAgICAxMC4gVGhlIHBhcnQgaGVhZGVyIGZpbGUgZGVmaW5lZCB0aGUgdmVuZG9yLCBwcm9kdWN0IGFuZCByZXZpc2lvbiBhcnJheXMKICAgIGFzIHVuc2lnbmVkIGNoYXJzIGluc3RlYWQgb2YganVzdCBjaGFycyBpbiB0aGUgYmxvY2tfZGV2X2Rlc2NfdAogICAgc3RydWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCAyOThjZDRjYWZlODFmZjhhNmM4N2JlOGZiYzQ0MGEyMDcyMGQzZWQ2CkF1dGhvcjogUnVuZSBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KRGF0ZToJV2VkIE9jdCAxNyAxMTo1NjozMSAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4MjY2QURTIGNvbW1hbmQgc2VsZWN0aW9uIG1vcmUgcm9idXN0CgogICAgRml4IE1QQzgyNjYgY29tbWFuZCBsaW5lIGRlZmluaXRpb24gc28gaXQgd29uJ3QgYnJlYWsgd2hlbiBuZXcgY29tbWFuZHMKICAgIGFyZSBhZGRlZCB0byB1LWJvb3QuCiAgICBTaWduZWQtb2ZmLWJ5IFJ1bmUgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+Cgpjb21taXQgZDNhZmExZWUxOTM0NWEzMWZkMWVhYWQzZTk4Yjk3ZDEzY2E0NzMxNQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTM6MTQ6MTAgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IFVwZGF0ZSBjb25maWd1cmF0aW9uIHRvIGFjY29tb2RhdGUgbmV4dCBnZW5lcmF0aW9uIGJvYXJkLgoKICAgIE5ldyBib2FyZCBoYXMgZmFzdGVyIG9zY2lsbGF0b3IgYW5kIGEgZGlmZmVyZW50IEZsYXNoIGNoaXAuIFRoaXMgYWZmZWN0czoKICAgIC0gQ0ZHX01QQzVYWFhfQ0xLSU4KICAgIC0gU0RSQU0gdGltaW5ncwogICAgLSBGbGFzaCBDUyBjb25maWd1cmF0aW9uICh0aW1pbmdzKQogICAgLSBGbGFzaCBzZWN0b3Igc2l6ZSwgYW5kIHRodXMgTVREIHBhcnRpdGlvbiBsYXlvdXQKICAgIC0gbWFsbG9jKCkgYXJlbmEgc2l6ZSAoZHVlIHRvIGJpZ2dlciBGbGFzaCBzZWN0b3JzKQogICAgLSBzbWFsbGVyIG1lbW9yeSB0ZXN0IHJhbmdlIChkdWUgdG8gYmlnZ2VyIG1hbGxvYygpIGFyZW5hKQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmFibGVzIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0aW5nIHZpYSAibXRlc3QiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZWZmNTAxOTA0ZGYyYmYxNzI0YTc1MDA2MjYyOGJhMmM1MWRiYjFmOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTE6MzY6MDcgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzZXR0aW5nIG9mIFNEZWxheSByZWcuIHRvIFNEUkFNIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbi4KCiAgICBQZXIgQU4zMjIxIChNUEM1MjAwQiBTRFJBTSBJbml0aWFsaXphdGlvbiBhbmQgQ29uZmlndXJhdGlvbiksIHRoZSBTRGVsYXkKICAgIHJlZ2lzdGVyIG11c3QgYmUgd3JpdHRlbiBhIHZhbHVlIG9mIDB4MDAwMDAwMDQgYXMgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlCiAgICBTRFJBTSBjb250b3JsbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YTkzNDg3MjhlYmRhNjNjZGJhYWNmZmQ4MzA5OWFhNzFkOWQ0YzU0CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoyMjoxNiAyMDA3ICswMTAwCgogICAgTW92ZSBQTDAxKiBzZXJpYWwgZHJpdmVycyB0byBkcml2ZXJzL3NlcmlhbCBhbmQgYWRqdXN0IE1ha2VmaWxlcy4KCmNvbW1pdCAyMGQ1MDBkNTMxYTZiOTcxY2U2Y2MxYmYxOTFjYjAwOTJjZGMwYWZjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDEwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogU29tZSBmdXJ0aGVyIEdQSU8gY29uZmlnIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGU5YTczOGZhYTdjMmY0NzI4NjExOWMzYmZlYmMzZGZiZmU3ZDg2ZApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglTdW4gT2N0IDIxIDIyOjEwOjEwIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gRml4IFVOQ0FDSEVEX1NEUkFNCgogICAgUEhZU0FERFIgaXMgZm9yIHBoeXNpY2FsIGFkZHJlc3MsIEtTRUcxQUREUiBpcyBmb3IgdW5jYWNoZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMDAxMDFkZDdhMzJkMTJmNjk4MTUwMTIzZTQ3ZTRiMzQyMDI3OWY4NgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAyMTozMDo0MiAyMDA3ICswOTAwCgogICAgW01JUFNdIEFkZCBQSUMtcmVsYXRlZCBzd2l0Y2hlcyB0byBQTEFURk9STV97Q1BQLExEfUZMQUdTIGFuZCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGViNzAwNjM2ZGIwMTdkMzEwZWRhZWI1NTliMTNkODI1ODg1NjA2NzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzcgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBEZWZpbmUgX2dwIGluIGEgc3RhbmRhcmQgbWFubmVyCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDIyMDY5MjE1ZWI3YWRmNWEzODg4YmY3Yzc3ODRlYTlkNzBhNzJjZDAKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBGaXggJGdwIHVzYWdlCgogICAgTm93IHdlIGxvYWQgJGdwIHdpdGggX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCBidXQgdGhpcyBpcyBpbmNvcnJlY3QgdXNlLgogICAgQXMgYSBnZW5lcmFsIHByaW5jaXBsZSwgd2Ugc2hvdWxkIHVzZSBfZ3AgZm9yICRncC4KCiAgICBUaGFua3MgdG8gbGlua2VyIHNjcmlwdCdzIGhlbHAgd2UgZm9ydHVuYXRlbHkgaGF2ZSBfZ3Agd2hpY2ggZXF1YWxzIHRvCiAgICBfR0xPQkFMX09GRlNFVF9UQUJMRV8uIEJ1dCBvbmNlIF9ncCBnZXRzIG91dCBvZiBhbGlnbm1lbnQsIHdlIHdpbGwgbm90CiAgICBiZSBhYmxlIHRvIGFjY2VzcyB0byBHT1QgZW50aXJlcywgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgcHJvY2VkdXJlIGVudHJ5CiAgICBwb2ludHMuIFRoZSByaWdodCB0aGluZyB0byBkbyBpcyB0byB1c2UgX2dwLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2UgYSBuZXcgc3ltYm9sIGAuZ3B3b3JkIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXycKICAgIHdoaWNoIGhvbGRzIHRoZSBvZmZzZXQgZnJvbSBfZ3AuIFdoZW4gdXBkYXRpbmcgR09UIGVudHJpZXMsIHdlIHVzZSB0aGlzCiAgICBvZmZzZXQgYW5kIF9ncCB0byBjYWxjdWxhdGUgdGhlIGZpbmFsIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4KCiAgICBUaGlzIHBhdGNoIGlzIG9yaWdpbmFsbHkgc3VibWl0dGVkIGJ5IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPiwgdGhlbgogICAgSSBtYWRlIHNvbWUgY2hhbmdlIHRvIGxlYXZlIG92ZXIgbnVtX2dvdF9lbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBjYmYyMzIzYjViODI4NWVhMDFhY2JhN2JiYjkwNWEzMTYyZDliMDIxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogRml4IF9fZ290X3N0YXJ0IGFuZCBfX2dvdF9lbmQKCiAgICBFbnN1cmUgdGhhdCBfX2dvdF9zdGFydCBwb2ludHMgdG8gdG9wIG9mIHRoZSBgLmdvdCcsIGFuZCBfX2dvdF9lbmQgcG9pbnRzCiAgICB0byBib3R0b20gYXMgd2VsbCwgc28gdGhhdCB3ZSBuZXZlciBmYWlsIHRvIGNvdW50IG51bV9nb3RfZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgZTVmMzI1ZmVjNWI0OGFlNzA1Yzg5NTIyOTIzYmE1YTJlMzdjZDVjNwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IFJlbW92ZSBkdXBsaWNhdGVkIC5zZGF0YSBzZWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDA1YmY0OTE5YzFjZTQ5Y2RlZGFkYWNkNTY0ZDA3ODZhOGVkNzk2YTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDAxOjAxOjE3IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmYyODVjYTA3ZWRhMWVhNGE4OTA5ODQ4Y2MxY2M2MDRlYzhmZWM5YwpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglUaHUgT2N0IDQgMjA6NDc6MTAgMjAwNyArMDMwMAoKICAgIEZpeCBORTIwMDAgZHJpdmVyOgoKICAgIEZpeGVkIHR5cG8gaW4gbmUyMDAwLmgsIHRoaW5rbyByZSBuMmtfaW5iKCkgdXNhZ2UsIGRvbid0IHRyeQogICAgdG8gZG8gYW55dGhpbmcgaW4gZXRoX3N0b3AoKSBpZiBldGhfaW5pdCgpIHdhcyBub3QgY2FsbGVkLgogICAgU2ltcGxpZmllZCBSWCBwYXRoIGluIG9yZGVyIHRvIGF2b2lkIHRpbWVvdXRzIG9uIHJlYWxseSByZWFsbHkKICAgIGZhc3QgTkUyMDAwIGNhcmRzIChyZWFkOiBxZW11IHdpdGggaW50ZXJuYWwgdGZ0cCksIE5ldExvb3AoKSBpcwogICAgY2xldmVyIGVub3VnaCB0byBjb3BlIHdpdGggMSBwYWNrZXQgcGVyIGV0aF9yeCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGRmOTA5NjhiNDhmYjM0ZmE5MDcyZmFiMTUwZGIyYWM4OTY3OGY1MzcKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzI6MTMgMjAwNyAtMDQwMAoKICAgIFNldHRpbmcgTVNSW0RFXSBpbiBkb19yZXNldAoKICAgIEhlbGxvLAogICAgICAgVGhpcyBwYXRjaCBlbnN1cmVzIHRoZSBzb2Z0IHJlc2V0IG9mIHRoZSBib2FyZCBmb3IgdGhlIDg1eHggYm9hcmRzCiAgICAgICBieSBzZXR0aW5nIHRoZSBNU1JbREVdIGluIHRoZSBkb19yZXNldCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdWdob3NoIEdhbnUgPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgoKY29tbWl0IDFlNzAxZTcwMTMwNGIzYzNhMzc2OGNhODNkZDJhYjdiOWU4OGM3N2QKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzY6MDEgMjAwNyAtMDQwMAoKICAgIE1TUiBvdmVyd3JpdGUgZml4CgogICAgSGVsbG8sCiAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIE1TUiBvdmVyd3JpdGUgaW4gdGhlIHN0YXJ0LlMgd2hlbiBtb3Zpbmcgb3V0IG9mCiAgICAgIHRoZSBsYXN0IDRLIHBhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3VnaG9zaCBHYW51IDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KCmNvbW1pdCA1YzdlYTY0YmI3NGE4NTBhMmIyMzAzZjg1M2E4MjcwNjk1YWQ4NjAyCkF1dGhvcjogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgpEYXRlOglGcmkgT2N0IDE5IDExOjMzOjQ4IDIwMDcgLTA1MDAKCiAgICB0c2VjIGRyaXZlciBzaG91bGQgY2xlYXIgUkhBTFQgb24gc3RhcnR1cAoKICAgIFRoaXMgd2FzIGNhdXNpbmcgcHJvYmxlbXMgZm9yIHNvbWUgcGVvcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsYWluIEdyYXZlbCA8YWdyYXZlbEBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MDBkNDdiOGY2YTEwMDE5ZTUzN2RjOWE2MmFhMTQ5OGRmNThkMjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDExIDAwOjI5OjE4IDIwMDcgLTA1MDAKCiAgICBJbXByb3ZlIGhhbmRsaW5nIG9mIFBDSSBpbnRlcnJ1cHQgZGV2aWNlIHRyZWUgZml4dXAgb24gTVBDODV4eCBDRFMKCiAgICBPbiB0aGUgTVBDODV4eCBDRFMgd2UgaGF2ZSB0d28gaXNzdWVzOgoKICAgIDEuIFRoZSBkZXZpY2UgdHJlZSBmaXh1cCBjb2RlIGRpZCBub3QgY2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9wZXJ0eSB3ZSBhcmUKICAgIHRyeWluZyB0byB1cGRhdGUgaXMgYWN0dWFsbHkgZm91bmQuICBJdHMgcG9zc2libGUgdGhhdCBpdCB3b3VsZCB1cGRhdGUKICAgIHJhbmRvbSBtZW1vcnkgc3RhcnRpbmcgYXQgMC4KCiAgICAyLiBOZXdlciBMaW51eCBrZXJuZWwncyBoYXZlIG1vdmVkIHRoZSBsb2NhdGlvbiBvZiB0aGUgUENJIG5vZGVzIHRvIGJlCiAgICBzaWJpbGluZ3Mgb2YgdGhlIHNvYyBub2RlIGFuZCBub3QgY2hpbGRyZW4uICBUaGUgZXhwbGljaXQgUEFUSCB0byB0aGUgUENJCiAgICBub2RlIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3IgdGhlc2UgZGV2aWNlIHRyZWVzLiAgQWRkIHRoZSBhYmlsaXR5IHRvIGhhbmRsZQogICAgYm90aCBwYXRocy4gIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkbid0IGhhbmRsZSBzdWNoIGZpeHVwcyBieSBleHBsaWNpdCBwYXRoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTMwNjNlZWM3NzU3MTliN2U5MTAyM2JiZWMzZjY0YjMxMTg3OTFkZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTEgMDA6MTg6NDggMjAwNyAtMDUwMAoKICAgIFNldCBPRl9TVERPVVRfUEFUSCB0byBtYXRjaCB0aGUgZGVmYXVsdCBjb25zb2xlIG9uIE1QQzg1NjggTURTCgogICAgT24gdGhlIE1QQzg1NjggTURTIHdlIHVzZSB0dHlTMCwgVUFSVDAsIGV0Yy4gYXMgdGhlIHN0YW5kYXJkIGNvbmZpZ3VyZWQKICAgIGNvbnNvbGUuICBNYWtlIGl0IHNvIHdlIG1hdGNoIHRoYXQgY29uZmlnIHdoYXQgd2UgdGVsbCBMaW51eCBhcyB0aGUgZWFybHkKICAgIFNURE9VVCBjb25zb2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTFjZTNjYjYxN2JiMDZmOTFmODJmOTg5MTUzOTExNzVhZGRmM2U4MgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMiAxMToxMjoyNyAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIG1hZ2ljIG51bWJlcnMgZnJvbSBjYWNoZSByZWxhdGVkIG9wZXJhdGlvbnMgZm9yIG1wYzg1eHgKCiAgICBUaGUgbXBjODV4eCBzdGFydCBjb2RlIHVzZXMgc29tZSBtYWdpYyBudW1iZXJzIHRoYXQgd2UgYWN0dWFsbHkKICAgIGhhdmUgI2RlZmluZXMgZm9yIGluIDxjb25maWcuaD4gc28gdXNlIHRob3NlIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NDQxZjYxYTNkOGI3MDM0ZjE5ZmMxMzYxMTgzZTkzNjE5OGU2ZGJiCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTkgMTY6NDc6MjYgMjAwNyArMDIwMAoKICAgIEZpeCB0d28gdHlwb3MuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgMjgxZGY0NTdjMWFhNTBkMjc1MjE2NWQwYzVjMzI4MmQ0MDI3Yjk3NApBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOCAxNzo0NzoxOSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIGNvbmZpZ3VyZSBlbnRyeSBmb3IgTVBDODN4eCBBVE0gc3VwcG9ydAoKICAgIEFkZCBNUEM4MzYwRU1EU19BVE1fY29uZmlnIGFuZCBNUEM4MzJYRU1EU19BVE1fY29uZmlnIGludG8KICAgIE1ha2ZpbGUgYW5kIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyNjQ2NTU0ZjUyOWE5NTc3NTE1ZWNlYjBlYzVlY2VlZTE4MjQ0YmEKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6NDQ6MzggMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IHBxLW1kcy1waWIuYyB0eXBvIGVycm9yCgogICAgQ29ycmVjdCB0byB2YWw4IGZyb20gdmFsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2UxMWFlODBmZWMxZWUxMjE5NDk0MDk1NTQzMTE4NmFiZjYwMDljMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxNTo0MDoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNjY3LzEzMyAoQ1BVL1BMQikgZnJlcXVlbmN5IHNldHVwIHRvIFNlcXVvaWEgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2VlNmJhMWEwNTZlNDA2MWFiNGNmZGUzMDEyN2UzMzJlNzk1N2FmZApBdXRob3I6IHJ1bmV0QGlubm92c3lzLmNvbSA8cnVuZXRAaW5ub3ZzeXMuY29tPgpEYXRlOglUdWUgT2N0IDE2IDE0OjUwOjQwIDIwMDcgLTA1MDAKCiAgICBNYWtlIE1QQzgyNjZBRFMgYm9hcmQgY29tcGlsZSBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSdW5ldCBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KCmNvbW1pdCAyNDkxMTY3YzI0NWQ4ZWJlNmYyZGJkOGM0Mjg3YWFhMGQxNGZlOTNhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyNyAxMjo0MTowMyAyMDA3IC0wNTAwCgogICAgODZ4eDogQWxsb3cgZm9yIGZld2VyIEREUiBzbG90cyBwZXIgbWVtb3J5IGNvbnRyb2xsZXIuCgogICAgQXMgYSBkaXJlY3QgY29ycmVsYXRpb24gZXhpc3RzIGJldHdlZW4gRERSIERJTU0gc2xvdHMKICAgIGFuZCBTUEQgRUVQUk9NIGFkZHJlc3NlcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGVtLCB1c2UKICAgIHRoZSBpbmRpdmlkdWFsbHkgZGVmaW5lZCBTUERfRUVQUk9NX0FERFJFU1MqIHZhbHVlcyB0bwogICAgZGV0ZXJtaW5lIGlmIGEgRERSIERJTU0gc2xvdCBzaG91bGQgaGF2ZSBpdHMgU1BECiAgICBjb25maWd1cmF0aW9uIHJlYWQgb3Igbm90LgoKICAgIEVmZmVjdGl2ZWx5LCB0aGlzIG5vdyBhbGxvd3MgZm9yIDEgb3IgMiBESU1NIHNsb3RzCiAgICBwZXIgbWVtb3J5IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDRhOTQ1ZTE4OWEyZjM4NGM2NjQzMjMxNmRhMjc4OGEwYWMxNjA3CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gT2N0IDE1IDExOjU5OjE3IDIwMDcgKzAyMDAKCiAgICBQWEEgVVNCIE9IQ0k6ICJ1c2Igc3RvcCIgaW1wbGVtZW50YXRpb24uCgogICAgU29tZSBVU0Iga2V5cyBuZWVkIHRvIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgbG9hZGluZyB0aGUga2VybmVsCiAgICBvdGhlcndpc2UgdGhleSBjYW4gcmVtYWluIGluIGFuIHVuZGVmaW5lZCBzdGF0dXMgd2hpY2ggcHJldmVudHMgdGhlbQogICAgdG8gYmUgY29ycmVjdGx5IHJlY29nbml6ZWQgYnkgdGhlIGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBlMmU5MzQ0MmU1NThjZjE1MDBlOTI4NjFmOTk3MTNiMmYwNDVlYTIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDE1IDExOjM5OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBidWcgaW4gSTJDIGJvb3RzdHJhcCB2YWx1ZXMgZm9yIFNlcXVvaWEvUmFpbmllcgoKICAgIFRoZSBJMkMgYm9vdHN0cmFwIHZhbHVlcyB0aGF0IGNhbiBiZSBzZXR1cCB2aWEgdGhlICJib290c3RyYXAiIGNvbW1hbmQsCiAgICB3ZXJlIHNldHVwIGluY29ycmVjdCByZWdhcmRpbmcgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGludGVybmFsIHN5bmMgUENJCiAgICBjbG9jay4gVGhlIHZhbHVlcyBmb3IgUExCIGNsb2NrID09IDEzM01IeiB3ZXJlIHNsaWdobHkgaW5jb3JyZWN0IGFuZCB0aGUKICAgIHZhbHVlcyBmb3IgUExCIGNsb2NrID09IDE2Nk1IeiB3ZXJlIHRvdGFsbHkgaW5jb3JyZWN0LiBUaGlzIGNvdWxkCiAgICBsZWFkIHRvIGEgaGFuZ3VwIHVwb24gYm9vdGluZyB3aGlsZSBQQ0kgY29uZmlndXJhdGlvbiBzY2FuLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBhbmQgY29uZmlndXJlcyB2YWxpZCBQQ0kgZGl2aXNvciB2YWx1ZXMKICAgIGZvciB0aGUgc3luYyBQQ0kgY2xvY2ssIHdpdGggcmVzcGVjdCB0byB0aGUgcHJvdmlkZWQgZXh0ZXJuYWwgYXN5bmMKICAgIFBDSSBmcmVxdWVuY3kuCgogICAgSGVyZSB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtdWxhIGluIHRoZSBjaGFwdGVyIDE0LjIgIlBDSSBjbG9ja2luZyIKICAgIGZyb20gdGhlIDQ0MEVQeCB1c2VycyBtYW51YWw6CgogICAgQXN5bmNQQ0lDTEsgLSAxTUh6IDw9IFN5bmNQQ0lDbGsgPD0gKDIgKiBBc3luY1BDSUNsaykgLSAxTUh6CgogICAgMzNNSHogYXN5bmMgUENJIGZyZXF1ZW5jeToKICAgIFBMQiA9IDEzMzoKICAgID0+CSAgICAzMiA8PSA0NC4zIDw9IDY1CSAgICAoZGl2ID0gMykKCiAgICBQTEIgPSAxNjY6CiAgICA9PgkgICAgMzIgPD0gNTUuMyA8PSA2NQkgICAgKGRpdiA9IDMpCgogICAgNjZNSHogYXN5bmMgUENJIGZyZXF1ZW5jeToKICAgIFBMQiA9IDEzMzoKICAgID0+CSAgICA2NSA8PSA2Ni41IDw9IDEzMgkgICAgKGRpdiA9IDIpCgogICAgUExCID0gMTY2OgogICAgPT4JICAgIDY1IDw9IDgzIDw9IDEzMgkgICAgKGRpdiA9IDIpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVhNTk1OGI3ZGU3MGFlOTlmMGU3Y2JkNWM5N2VjMTM0NmUwNTE1ODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMTUgMTE6Mjk6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGluY29ycmVjdCAzMy82Nk1IeiBQQ0kgY2xvY2sgbG9nLW1lc3NhZ2Ugb24gU2VxdW9pYSAmIFlvc2VtaXRlCgogICAgVGhlIEJDU1Igc3RhdHVzIGJpdCBmb3IgdGhlIDY2TUh6IFBDSSBvcGVyYXRpb24gd2FzIGNvcnJlY3RseQogICAgYWRkcmVzc2VkIChNU0IvTFNCIHByb2JsZW0pLiBOb3cgdGhlIGNvcnJlY3QgY3VycmVudGx5IHNldHVwCiAgICBQQ0kgZnJlcXVlbmN5IGlzIGRpc3BsYXllZCB1cG9uIGJvb3R1cC4KCiAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhpcyBwcm9ibGVtIG9uIFJhaW5pZXIgJiBZZWxsb3dzdG9uZSwgc2luY2UgdGhlc2UKICAgIGJvYXJkcyB1c2UgdGhlIHNhbWUgc291Y2UgY29kZSBhcyBTZXF1b2lhICYgWW9zZW1pdGUgZG8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRhM2FhZDU1Y2JkZTgwYWI2ZTMwMWFhZmE4MmEyYzQxMWFhNTNlZmYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODYwTTogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplLgoKICAgIEFkanVzdCBmbGFzaCBtYXAgdG8gc3VwcG9ydCB0aGUgbmV3IFMyOUdMeHhOIChOLVR5cGUpIEZsYXNoZXMgd2l0aAogICAgZG91YmxlZCBzZWN0b3Igc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5ZDI5MjUwZTJlNjJmNGJmMjBjN2EyMGI0MTczZDg0YzQ4ZjExZjVkCkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTQgMjAwNyArMDIwMAoKICAgIFRRTTh4eDogRml4IENBTiB0aW1pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZDQzZTQ4OWJhZjAyYWZhZTQ5MDc3NzkxZmIyMjMzMmQyNDBkODY1NgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDE0OjU0OjM2IDIwMDcgKzAyMDAKCiAgICBUUU04NjZNOiBmaXggU0RSQU0gcmVmcmVzaAoKICAgIEF0IDEzMyBNSHogdGhlIGN1cnJlbnQgU0RSQU0gcmVmcmVzaCByYXRlIGlzIHRvbyBmYXN0CiAgICAobWVhc3VyZWQgNCAqIDEuMTcgdXMpLgogICAgQ0ZHX01BTVJfUFRBIGNoYW5nZXMgZnJvbSAzOSB0byA5Ny4gVGhpcyByZXN1bHQKICAgIGluIGEgcmVmcmVzaCByYXRlIG9mIDQgKiA3LjggdXMgYXQgdGhlIGRlZmF1bHQgY2xvY2sKICAgIDUwIE1Iei4gQXQgMTMzIE1IeiB0aGUgdmFsdWUgd2lsbCBiZSB0aGVuIDQgKiAyLjkgdXMuCiAgICBUaGlzIGlzIGEgY29tcHJvbWlzZSB1bnRpbCBhIG5ldyBtZXRob2QgaXMgZm91bmQgdG8KICAgIGFkanVzdCB0aGUgcmVmcmVzaCByYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDllZjU3YmJlZTFjNjdjYzAxZGEyMDI2YzI0MmM0NjkyZGIzMmJlMzYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NSAyMDA3ICswMjAwCgogICAgVFFNODY2TTogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplLgoKICAgIEFkanVzdCBmbGFzaCBtYXAgdG8gc3VwcG9ydCB0aGUgbmV3IFMyOUdMeHhOIChOLVR5cGUpIEZsYXNoZXMgd2l0aAogICAgZG91YmxlZCBzZWN0b3Igc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBmOGJmOTA0NjFkOWJhZDJlNmZlZDMxZmNlYmFmMjM1ZjYwZGQ2NzYzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gT2N0IDE0IDE2OjEyOjI5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBYVVBWMlAgY2hhbmdlIGNvbW1hbmQgaGFuZGxpbmcKICAgIGFuZCByZW1vdmUgY29kZSB2aW9sYXRpb24KCmNvbW1pdCA2MzY0MDAxOTgyMjhkOTY5ODNjMDY2NTdiMTdmNzYwZjU5ODk5NThlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxNCAwMDoxMzoxOSAyMDA3ICswMjAwCgogICAgUHJlcGFyZSBmb3IgMS4zLjAtcmMzIHJlbGVhc2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY4ZjE0Zjc3Y2E1ZmU1ZjljYzAyNWM4Y2FlMTAxNjcxZjYyODMwOWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgU2VwIDI5IDEzOjQxOjM3IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBjcHUvcHhhL21tYy5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmYzE5ZTM2Zjc0MWU4YmM3MjdjMGEzMzAxNzBiM2I1ZGI5MDM5OWVmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAyMzo1MToxNCAyMDA3ICswMjAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gYm9hcmQvbXBsL3ZjbWE5L3ZjbWE5LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkZTc0YjllZWFjY2NhZjBhNDJlNWVjYzlhZTc5YTg4ZjdhMzExMjk2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAxMyAyMToxNTozOSAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMTg5MzgxNWIwOTk5NDEwZDdhMzI3NTg5NjExYzdiMzhlOTUyOTllCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxMiAxNTo0OTozOSAyMDA3ICswMjAwCgogICAgR1AzIFNTQTogZW5hYmxlIFJUQwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODAwMjAxMjA0MWYxZmY5Zjk5N2E1NzI3YWJlNTAxNWY3MGNkMmU0NgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDkgMTM6NTg6MjQgMjAwNyArMDIwMAoKICAgIFthZHM1MTIxXSBFRVBST00gc3VwcG9ydCBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YjYyNGFkMjU0Yjk3ZTVhMjVkY2EyMzA0YTM5OGI2NGFlZWRhZmZlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBPY3QgNiAxODo1NTozNSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEluaXRpYWxpemUgYmlfZmxhc2gqIGluIGJvYXJkX2luaXRfcgoKICAgIFRoZSBBVFNUSzEwMDAtc3BlY2lmaWMgZmxhc2ggZHJpdmVyIGludGlhbGl6ZXMgYmlfZmxhc2hzdGFydCwKICAgIGJpX2ZsYXNoc2l6ZSBhbmQgYmlfZmxhc2hvZmZzZXQsIGJ1dCBvdGhlciBmbGFzaCBkcml2ZXJzLCBsaWtlIHRoZSBDRkkKICAgIGRyaXZlciwgZG9uJ3QuCgogICAgSW5pdGlhbGl6ZSB0aGVzZSBpbiBib2FyZF9pbml0X3IgaW5zdGVhZCBzbyB0aGF0IHRoaW5ncyB3aWxsIHN0aWxsIGJlCiAgICBzZXQgdXAgY29ycmVjdGx5IHdoZW4gd2Ugc3dpdGNoIHRvIHRoZSBDRkkgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJiMmE1ODdkNmQzMDc2Mzg3ZDIyYWM3NDBmNDQwNDRiZjQ2ZTJjYjgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgT2N0IDUgMTA6NDA6NTQgMjAwNyArMDIwMAoKICAgIHRxbTUyMDA6IEZpeCBDT05GSUdfQ01EX1BDSSB0eXBvIGluIGJvYXJkIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOTI4NjkxOTVlZjgyMTA3NThkMjE3NjIzMGMwYTM2ODk3YWZkNTBlZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBPY3QgNSAwOTo0NjowNiAyMDA3ICswMjAwCgogICAgQ001MjAwOiBGaXggbWlzc2luZyBudWxsLXRlcm1pbmF0aW9uIGluIGhvc3RuYW1lIG1hbmlwdWxhdGlvbiBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5YWRkOTg4NGIxZmRkYzM0Y2ExODZlMDBhMmY4NjhjY2Q1ZDAyZDg3CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVR1ZSBPY3QgMiAxOTowOTowMSAyMDA3ICswMjAwCgogICAgRml4IG1lbXRlc3QgYnJlYWthZ2UKCiAgICBDRkdfTUVNVEVTVF9TVEFSVCB1c2VzIHdlaXJkIG1hZ2ljIGludm9sdmluZyBnZCwgd2hpY2ggZmFpbHMgdG8KICAgIGNvbXBpbGUuIFVzZSBoYXJkY29kZWQgdmFsdWVzIGluc3RlYWQgKHdlIGFjdHVhbGx5IGtub3cgaG93IG11Y2ggUkFNCiAgICB3ZSBoYXZlIG9uIGJvYXJkLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3Mzg4MTVjMGNjNDRhYTMyOTA5N2Y4NjhkYzFlZmM0OWVkZTljNWJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIgMTE6NDQ6NDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODdjMTgzM2EzOWU5NDRkYjY2Mzg1Mjg2ZmQ1ZTI4ZjliM2ZjZGQ1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyIDExOjQ0OjE5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogUmVtb3ZlIHdhdGNoZG9nIGZvciBub3csIHNpbmNlIG5vdCBmdWxseSB0ZXN0ZWQgeWV0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkYjY0Nzg0MDYxYmZjMzRmNGJhNzBlZjFkMmZiZTcxMzNiNTU2NzAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE9jdCAxIDA5OjUxOjUwIDIwMDcgKzAyMDAKCiAgICBQcm9ncmFtIEVQTEQgdG8gZm9yY2UgZnVsbCBkdXBsZXggbW9kZSBmb3IgUEhZLgoKICAgIEVQTEQgZm9yY2VzIG1vZGVzIG9mIFBIWSBvcGVyYXRpb24uIEJ5IGRlZmF1bHQgZnVsbCBkdXBsZXggaXMgdHVybmVkIG9mZi4KICAgIFRoaXMgZml4IHR1cm5zIGl0IG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc4NWMxMzQ3N2I3N2RjZDJlNmM1MTI4ZmZmY2RiNGUxOTQzZjQ4MTgKQXV0aG9yOiBUaW1vIEtldG9sYSA8dGltby5rZXRvbGFAZXhlcnR1cy5maT4KRGF0ZToJTW9uIFNlcCAyNCAxNDo1MDozMiAyMDA3ICswMzAwCgogICAgQnVnZml4OiBVc2Ugb25seSBvbmUgUFREIGZvciBvbmUgZW5kcG9pbnQKCiAgICBPcmlnaW5hbCBpc3AxMTZ4LWhjZCBjb2RlIHByZXBhcmVkIG11bHRpcGxlIFBURHMgZm9yIGxvbmdlciB0aGFuIDE2CiAgICBieXRlIHRyYW5zZmVycyBmb3Igb25lIGVuZHBvaW50LiBUaGF0IGlzIHVubmVjZXNzYXJ5IGJlY2F1c2UgdGhlCiAgICBJU1AxMTZ4IGlzIGFibGUgdG8gc3BsaXQgbG9uZyBkYXRhIGZyb20gb25lIFBURCBpbnRvIG11bHRpcGxlCiAgICB0cmFuc2FjdGlvbnMgYmFzZWQgb24gdGhlIGJ1ZmZlciBzaXplIG9mIHRoZSBlbmRwb2ludC4gSXQgYWxzbyBjYXVzZWQKICAgIHNlcmlvdXMgcHJvYmxlbXMgaWYgdGhlIGVuZHBvaW50IE5BS2VkIHNvbWUgb2YgdGhlIHRyYW5zYWN0aW9ucy4gSW4KICAgIHRoYXQgY2FzZSBJU1AxMTZ4IHdvdWxkbid0IG5vdGljZSB0aGF0IHRoZSBvdGhlciBQVERzIHdlcmUgZm9yIHRoZSBzYW1lCiAgICBlbmRwb2ludCBhbmQgd291bGQgdHJ5IHRoZSBvdGhlciBQVERzIHBvc3NpYmx5IG91dCBvZiBvcmRlci4gVGhhdCB3b3VsZAogICAgYnJlYWsgdGhlIHdob2xlIHRyYW5zZmVyLgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgaXNwMTE2eF9zdWJtaXRfam9iIHRvIHVzZSBvbmUgUFREIGZvciBvbmUgdHJhbnNmZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltbyBLZXRvbGEgPHRpbW8ua2V0b2xhQGV4ZXJ0dXMuZmk+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg2ZWM4NmMwNDMyNmMzOTEzMTc4YTc2NzlhYTkxMGRlMDcxZGE3NWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgU2VwIDI3IDIzOjI3OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBvbiBDT05GSUdfTFBDMjI5MiBpbiBzZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDNlOTU0YmViNjE0YjViMTkwZDdmNGY0YzNiNjQxNDM3YTAxMzJlMzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTEgMTQ6MTI6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBDaGFuZ2UgR1BJTyA1OCB0byBkZWZhdWx0IHRvIGxvdyAod2F0Y2hkb2cgdGVzdCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQ4N2FkYmRjZjk1OTRiYjJlYjY4NjMyNWE2Zjk1NDBkYWQxYjcwYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMjYgMTY6MzU6NTQgMjAwNyAtMDUwMAoKICAgIDg1eHggaW8gb3V0IGZ1bmN0aW9ucyBuZWVkIHN5bmMgYWZ0ZXIgd3JpdGUuCgogICAgVGhpcyBmaXhlcyB0aGUgbWMxNDY4MTggcnRjX3JlYWQvd3JpdGUgZnVuY3Rpb25zIGZvciA4NXh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGQzOGVmZmM2ZTM1OWU2YjFiMGM3OGQ2NmU4YmMxYTRkYzE1YTJhZQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIFNlcCAyNSAxNTo0ODowNSAyMDA3IC0wNjAwCgogICAgRnBnYTogZml4IGluY29ycmVjdCB0ZXN0IG9mIENGR19GUEdBX1hJTElOWCBtYWNybwoKICAgIENGR19GUEdBX1hJTElOWCBpcyBhIGJpdCB2YWx1ZSB1c2VkIHRvIHRlc3QgYWdhaW5zdCB0aGUgdmFsdWUgaW4KICAgIENPTkZJR19GUEdBLiAgVGVzdGluZyBmb3IgYSB2YWx1ZSB3aWxsIGFsd2F5cyByZXR1cm4gVFJVRS4JSSBkb24ndAogICAgdGhpbmsgdGhhdCBpcyB0aGUgaW50ZW50aW9uIGluIHRoaXMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODUzNjQzZDhjZjJjYTgwY2IyZTI1YzUzYWQ1ZGM1ODBhYmFmZTE2NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDo0MTozMCAyMDA3ICswMjAwCgogICAgW0ZJWF0gY2hhbmdlIGNvbW1hbmQgaGFuZGxpbmcgYW5kIHJlbW92aW5nIGNvZGUgdmlvbGF0aW9uCgpjb21taXQgZjI0MDM1NjUwNzAzOGU1Y2U1NWU4YTI0Y2IyNjA3ZTllYWU2ZDEwYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDozNjowNiAyMDA3ICswMjAwCgogICAgW0ZJWF0gY2hhbmdlIHNldHMgb2YgY29tbWFuZHMKICAgIGJlY2F1c2UgY2hhbmdpbmcgb2YgY29tbWFuZCBoYW5kbGluZyBicmluZ3MKICAgIGNvbXBpbGF0aW9uIHByb2JsZW1zCgpjb21taXQgY2IxYmM2M2I3NWEyMzI1NzFlYjY5YWEyYzhhYTkxOTMyMTY1NTg0NQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDozMDo0MiAyMDA3ICswMjAwCgogICAgW0ZJWF0gRW1haWwgcmVwYXJhdGlvbiAmIENvcHlyaWdodAogICAgQm90aCBjb2RlcyBhcmUgd3JpdHRlbiBieSBteXNlbGYgd2l0aG91dCBhbnkKICAgIHN1cHBvcnQgZnJvbSBDVFUKCmNvbW1pdCAwNzMxY2JhZTZjMmZlYWI5M2IyNDRkODNmZDZhNDNmNWNjOWJmODUyCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjI1OjExIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBtYWNybyBuYW1lIGZvciBVYXJ0TGl0ZQogICAgYmVjYXVzZSBQb3dlclBDIDQwNSBjYW4gdXNlIFVhcnRMaXRlIGFzIGNvbnNvbGUKCmNvbW1pdCAxYzExMDBkMmZjZjQ2YjlkMTFkY2Y3OGQ2ZTVhZWE3NWUyZThiNzE2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjIxOjE5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBkZXNpZ24gd2l0aG91dCBpbnRlcnJ1cHQgY29udHJvbGxlcgogICAgUG9sbGluZyB0aW1lcgoKY29tbWl0IDA3MzE5MzNlYzhlYzQ1ZDAyYmE4OWI1MmRmNjczZDUyNjg3M2NkZGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTk6NDggMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlc29sdmUgcHJvYmxlbSB3aXRoIGNwdSB3aXRob3V0IGJhcnJlbCBzaGlmdGVyCgpjb21taXQgZGIxNGQ3Nzk5NWNlNTE1YjcyOGIxNzhiNjNmODJiYWJlNjBlM2Q1NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxODo0NiAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVwYWlyIGVtYWlsIGFkZHJlc3MKCmNvbW1pdCA0ODFkNDMyODYxODgwNGFkZDFmODE4YTZjOTYyOTYxMjFjZDA1MjhlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXBhaXIgTUZTTCBjb21tYW5kcwoKY29tbWl0IGI5MGMwNDVmMDM1YzNjYzliNWQyZWRhZWQ2MDQ4ZGZiNzRlNDA3NjMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MDg6MzcgMjAwNyArMDIwMAoKICAgIHN5bmNocm9uaXppdGlvbiB3aXRoIG1haW5saW5lCgpjb21taXQgNjZkY2FkM2E5YTUzZTA3NjZkOTBlMDA4NDEyM2JkODUyOTUyMmZiMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+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+CkRhdGU6CVR1ZSBNYXkgMTUgMDc6NTU6NDIgMjAwNyAtMDcwMAoKICAgIEZpeCBmb3IgY29tcGlsZSBvZiBKU0UgdGFyZ2V0CgogICAgVGhlIGF0dGFjaGVkIHBhdGNoIGZpeGVzIHRoZSBjb21waWxlIG9mIHRoZSBKU0UgYm9hcmQgaW4gdGhlCiAgICBkZW54IGdpdCBhcyBvZiAxNCBtYXkgMjAwNy4gSXQgaXMgYW4gZXh0cmVtZWx5IHNpbXBsZSBwYXRjaCwKICAgIGl0IGp1c3QgYWRkcyB0aGUgbWlzc2luZyBkZWZpbmUgb2YgQ0ZHX1NZU1RFTUFDRV9XSURUSC4KCiAgICAgRml4IHRvIGNvbXBpbGUgSlNFIGFnYWluc3QgMjAwNzA1MTQgZ2l0IG9mIHUtYm9vdAoKY29tbWl0IDYxOTM2NjY3ZTg2YTI1MGFlMTJmZDJkYzE4OWQzNTg4ZjBhNTllMGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTEgMTI6MDE6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG10Y3ByL21mY3ByIGFjY2VzcyBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQzYzQ4YmQ4NDYwNmM0MDI1YzhhN2M3MjYzZmRhNDY1ZDZlMjg0YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1heSAxMSAxMjowMTowNiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBTZXQgYmQtPmJpX3BjaV9idXNmcmVxIG9uIDQ0MEVQeC9HUnggdG9vCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdkOThiYTc3MGE3ZWFlZmEyOWNlOTI3ZjMxYTA5NTZkZjg1YmY2NTAKQXV0aG9yOiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWF5IDEwIDE2OjU1OjUyIDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIE1URCBhbmQgSkZGUzIgc3VwcG9ydCwgYWxzbyBhZGQgZGVmYXVsdCBwYXJ0aXRpb24KICAgIGRlZmluaXRpb24uCgpjb21taXQgNjVmYjZhNjc2ZTgyMWY5NTcwYTJhMzc2ZGMyMDRiZjYxMWNlNWY4MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0Mjo0NCAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBib2FyZCBkaXJlY3RvcnkgZm9yIFNNTjQyCgpjb21taXQgMTYwMTMxYmY5NjU3ODU0MTk2MjZkZjZjMzg4NzI5ZmUwYjU5Nzk5MgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0MTo1OCAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBmaWxlcyBmb3IgdGhlIFNNTjQyIGJvYXJkCgpjb21taXQgNWM2ZDJiNWE1MDBmOGM0OTY3MGRlODkxMDE1MGI3OGE0MWY3ODFmYwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0MDozNCAyMDA3ICswMTAwCgogICAgUmVtb3ZlIHRoZSBkZWxldGVkIGZpbGVzIGZvciB0aGUgU01ONDIgcGF0Y2gKCmNvbW1pdCBiMGQ4ZjViZjBkMjE1YWRjOTQyNGNiMjI4YjI0ODRkYmYwN2Y3NzYxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjM3OjU2IDIwMDcgKzAxMDAKCiAgICBOZXcgYm9hcmQgU01ONDIgYnJhbmNoCgpjb21taXQgMjlmM2JlMGNhZjA3OTljYTZiODlkZmQ5ODI0YzE1NjE5YTUwMDAwZgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMDoyNDozOCAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCBiODQyODliNTk1NzMxZTg4NTFkZjQ2ZTg5Mzg0NWNjMTMyMmM5YjliCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE0OjE3OjA3IDIwMDcgLTA1MDAKCiAgICA4NjQxaHBjbjogRml4IE1ha2VmaWxlIGFmdGVyIG1vdmluZyBwaXhpcyB0byBib2FyZC9mcmVlc2NhbGUuCgogICAgVGhlIE9CSlRSRUUgIT0gU1JDVFJFRSBidWlsZCBzY2VuYXJpbyB3YXMgYnJva2VuLgogICAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNjlmNjZjNmViZTgyYmJiZDFkYTc2NmJjNGVkYTQwZWM3ZWU1YWYxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWF5IDggMTU6NTc6NDMgMjAwNyArMDIwMAoKICAgIGFkZDogcmVhZGluZyBzcGVjaWFsIHB1cnBvc2UgcmVnaXN0ZXJzCgpjb21taXQgMWE1MGYxNjRiZWIwNjVmMzYwZmJkZGI3NjAyOTYwN2Q2YjA5OTY5OApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE0OjUyOjUyIDIwMDcgKzAyMDAKCiAgICBhZGQ6IE1pY3JvYmxhemUgVjUgZXhjZXB0aW9uIGhhbmRsaW5nCgpjb21taXQgYWI4NzRkNTA0N2U1ZDMwZGJjMWU1MTdmZjI2MDgzZWZmZmE5OGVjYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE0OjM5OjExIDIwMDcgKzAyMDAKCiAgICBhZGQ6IEZTTCBjb250cm9sIHJlYWQgYW5kIHdyaXRlCgpjb21taXQgZGUxZGUwMmE3Y2JmMDVlNmI2M2UwZDhmZmM2MjRmMTI0OTNmNmJhMwpBdXRob3I6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxMzowNTo0NCAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBzdXBwb3J0IGZvciBJMkMsIEVFUFJPTSBhbmQgUlRDLgoKY29tbWl0IGZhNWMyYmExMjNiMWJmODg0NTViZmMyMWRiNWU3ODZjYTA0NTAyOWQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMTA6MjM6NTYgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgQVRBIHN1cHBvcnQuIEFkZCBDRi1ib290aW5nIGNvbW1hbmRzIHRvIHRoZSBkZWZhdWx0CiAgICBlbnZpcm9ubWVudC4KCmNvbW1pdCAwNjI0MWQ1MGEzYWIxYjIwYTBiMDhiYWVlYWZmY2FhMjNhZTRiODM5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDA5OjM5OjEyIDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQ2hhbmdlIElQQiBjbG9jayBmcmVxdWVuY3kgZnJvbSA1ME1IeiB0byAxMDBNSHouIFRoaXMKICAgIGVsaW1pbmF0ZXMgbmV0d29ya2luZyBwcm9ibGVtcyBpbiBMaW51eCAodGltZW91dHMpLgoKY29tbWl0IDFmMTM2OWMzNGI2MjliZTk0NzAyNjg0ZDQxZDNmZGRmMGY2MTkzZTcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMDk6MjE6NTcgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBFbmFibGUgRmxhdCBEZXZpY2UgVHJlZSBzdXBwb3J0IGFuZCBtb2RpZnkgZGVmYXVsdCBlbnZpcm9ubWVudAogICAgdG8gYWxsb3cgYm9vdGluZyBvZiBGRFQtZXhwZWN0aW5nIGtlcm5lbHMuCgpjb21taXQgZmIwNWY2ZGEzNWVhMWMxNWM1NTNhYmU2ZjIzZjY1NmJmMThkYzVkYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDIzOjU4OjMxIDIwMDcgKzAyMDAKCiAgICBuZXc6IFVTRV9NU1JfSU5UUiBzdXBwb3J0Cgpjb21taXQgMDA4ODYxYTJmM2VmMmMwNjI3NDRkNzMzNzg3YzdlNTMwYTFiODc2MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBNYXkgNyAyMjozNjoxNSAyMDA3ICswMjAwCgogICAgW01QQzV4eHhdIFRoZXJlIGFyZSBuZXR3b3JraW5nIHByb2JsZW1zIG9uIHRoZSBNb3Rpb24tUFJPIGJvYXJkIHdpdGgKICAgIGN1cnJlbnQgUEhZIGluaXRhbGl6YXRpb24gY29kZSAodGZ0cCB0aW1lb3V0cyBhbGwgdGhlIHRpbWUpLiBUaGlzIGNvbW1pdAogICAgdGVtcG9yYXJpbHkgZGlzYWJsZXMgUEhZIGluaXRhbGl6YXRpb24gc2VxdWVuY2UgdG8gbWFrZSB0aGUgbmV0d29ya2luZwogICAgb3BlcmF0aW9uYWwsIHVudGlsIGEgZml4IGlzIGZvdW5kLgoKY29tbWl0IGFiY2E5MDE4NjljMzc2MGI2YzVmZWNiODI1ZGI2YzFkOTFhNzhhOTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMjI6MTA6MzYgMjAwNyArMDIwMAoKICAgIEdldCByaWQgb2YgZHVwbGljYXRlZCBmaWxlIChzZWUgaW5jbHVkZS9jb25maWdzL3NiYzg1NjAuaCBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjA3YjdiMmM5ZDk3NTJlMGY2NDc4YzMwYzI5YjcwODdmNmU2Y2JiNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNyAyMjowNzowOCAyMDA3ICswMjAwCgogICAgR2V0IHJpZCBvZiBkdXBsaWNhdGVkIGZpbGUgKHNlZSBkb2MvUkVBRE1FLlNCQzg1NjAgaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE3YmFjN2U5YjU3YmE5NDgwNTFiZWIxOWVjNWJlM2E3NWNlNzUzODMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTo0MzoxMCAyMDA3ICswMjAwCgogICAgZml4OiByZWFkIGFuZCB3cml0ZSBNU1IgLSByZXBhaXIgbnVtYmVyIG9mIHBhcmFtZXRlcnMKCmNvbW1pdCAxOTNiNGEzYmIzYWNhZGRmNzk4ZGE4ZGUwZGEwNWQ5NGJhODc3NGVlCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBNYXkgNyAxOTo0Mjo0OSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBwcGM0eHg6IEZpeCBDT05GSUdfU1lTX0NMS19GUkVRIGRlZmluaXRpb24gaW4gU2VxdW9pYSBjb25maWcgZmlsZQoKICAgIEEgJzMnIGdvdCBjdXQgb2ZmIGluIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBsYXN0IHBhdGNoIHRvIGF1dG9tYXRpY2FsbHkKICAgIGNoYW5nZSB0aGUgY2xvY2sgc3BlZWQgb2YgdGhlIHN5c3RlbSBjbG9jayBvbiBzZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5YmYxZmJhZDdmMTlkNWExMjBiZTliMWRhZjEzNmUwNTJmY2FiMzkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTozMzo1MSAyMDA3ICswMjAwCgogICAgbmV3OiBmc2wgaW50ZXJydXB0IHN1cHBvcnQKICAgIEZTTF9IYXNfZGF0YSBpcyBjb25uZWN0ZWQgdG8gSU5UQy4KCmNvbW1pdCA3OTIwMzJiYWE3ZDYyNWUzNGM5ODFhYjZkZjUyMTkxMWJkOGRjODYxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MzA6MTIgMjAwNyArMDIwMAoKICAgIGZpeDogaW50ZXJydXB0IGhhbmRsZXIKICAgIHJlbW92ZSBhc20gY29kZQoKY29tbWl0IGYzZjAwMWEzNDFlZjE4NWQwZjEzODQxYmU1YjVkYzMzOTVhYWNjMzEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOToyNTowOCAyMDA3ICswMjAwCgogICAgZml4OiByZW1vdmUgYXNtIGNvZGUKCmNvbW1pdCBmYjdjMmRiZWYwMmM5ZjZmOGQ3YjA0ZWM0YzJiZmI5MTQxOGI5YzAxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MTI6NDMgMjAwNyArMDIwMAoKICAgIGZpeDogY2xlYW4gaW50ZXJydXB0Cgpjb21taXQgNDJlZmVkNjEzMGM4ZmNmN2RhODgxMzg1YjU0MjcwNjVkMjgwMTc1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE3OjIyOjI1IDIwMDcgKzAyMDAKCiAgICBmaXg6IGludGVycnVwdCBoYW5kbGVyIGZvciBtdWx0aXBsZSBzb3VyY2VzCgpjb21taXQgNDhmYmQzYTRjZGFiYmViYzFkZWJkN2VlZDczYzAwYzJjYWY5MTRmNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE3OjExOjA5IDIwMDcgKzAyMDAKCiAgICBuZXc6IGFkZCB3cml0aW5nIHRvIG1zciByZWdpc3RlcgoKY29tbWl0IDNhNjE5ZGQ3YmVkMDNlOGI0ZDIyYTM5MTFmOTBmZDEyYWY1Mzc2YzIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMTY6NDM6NTYgMjAwNyArMDIwMAoKICAgIEZpeCBhbiBhbmNpZW50IENIQU5HRUxPRyBjb25mbGljdAoKY29tbWl0IGFjNGNkNTlkNTljOWJmM2Y4OWNiN2EzNDRhYmY4MTg0ZDY3OGY1NjIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MTI6MzAgMjAwNyArMDIwMAoKICAgIDV4eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhOWQ4N2UyNzA3ZGNiMjQ5ZjZiYjdmN2ZmN2UwMGFjZDhjZGE5ZmQyCkF1dGhvcjogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyOSAxNDowMTo1NCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIE1QQzUyMDBCIGZyb20gTVBDNTIwMCBpbiBib290IG1lc3NhZ2UKCiAgICBNUEM1MjAwQiBzeXN0ZW1zIGFyZSBpbmNvcnJlY3RseSByZXBvcnRlZCBhcyBNUEM1MjAwIGluIFUtQm9vdCBzdGFydC11cAogICAgbWVzc2FnZS4gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28gdmFyaWFudHMsIGFuZCBwcmludCBwcm9wZXIgQ1BVCiAgICBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0ZWM1YmQ1NWVkMWZmYTkxYTc3NGFmMjk4NzY5NjIxZjRmYmIxOGMxCkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglXZWQgQXByIDI1IDE2OjAxOjI2IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHNpbXBsaWZ5IHNpbGVudCBjb25zb2xlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNzU5OGE0M2YyYjQyMWE3MTNkODEzNWU5OGE0MmMzN2Q5ZWI5ZGYwCkF1dGhvcjogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNTozMDozOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBdm9pZCBhc3NpZ25pbmcgUENJIHJlc291cmNlcyBmcm9tIHplcm8gYWRkcmVzcwoKICAgIElmIGEgUENJIElERSBjYXJkIGhhcHBlbnMgdG8gZ2V0IGEgemVybyBhZGRyZXNzIGFzc2lnbmVkIHRvIGl0LCB0aGUgTGludXggSURFCiAgICBjb3JlIGNvbXBsYWlucyBhbmQgSURFIGRyaXZlcnMgZmFpbHMgdG8gd29yay4gIEFsc28sIGFzc2lnbmluZyB6ZXJvIHRvIGEgQkFSCiAgICB3YXMgaWxsZWdhbCBhY2NvcmRpbmcgdG8gUENJIDIuMSAodGhlIGxhdGVyIHJldmlzaW9ucyBzZWVtIHRvIGhhdmUgZXhjbHVkZWQgdGhlCiAgICBzZW50ZW5jZSBhYm91dCAiMCIgYmVpbmcgY29uc2lkZXJlZCBhbiBpbnZhbGlkIGFkZHJlc3MpIC0tIHNvLCB1c2UgYSByZWFzb25hYmxlCiAgICBzdGFydGluZyB2YWx1ZSBvZiAweDEwMDAgKHRoYXQncyB3aGF0IHRoZSBtb3N0IExpbnV4IGFyY2hzIGFyZSB1c2luZykuCgogICAgQWx0ZXJuYXRpdmVseSwgb25lIG1pZ2h0IGhhdmUgZml4ZWQgdGhlIGNhbGxzIHRvIHBjaV9zZXRfcmVnaW9uKCkgaW5kaXZpZHVhbGx5CiAgICAoc29tZSBjb2RlIGV2ZW4gc2VlbXMgdG8gaGF2ZSB0YWtlbiBjYXJlIG9mIHRoaXMgaXNzdWUpIGJ1dCB0aGF0IHdvdWxkIGhhdmUKICAgIGJlZW4gYSBsb3QgbW9yZSB3b3JrLiA6LSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZmZkNDUxYWZlYjA4ZTViZTdkZGFlNjgwNDg3ZWM5NjJiMmJjYTI1CkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTQ6MDA6MTEgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gc2V0ZW52KC4uLikgY2FuIGRlbGV0ZSBlbnZpcm9ubWVudGFsdmFyaWFibGVzCgogICAgdXBkYXRlIHNldGVudigpIGZ1bmN0aW9uIHNvIHRoYXQgZW50ZXJpbmcgYSBOVUxMIHZhbHVlIGZvciB0aGUKICAgIHZhcmlhYmxlJ3MgdmFsdWUgd2lsbCBkZWxldGUgdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWJkMGEwYWUwNWE0NDc2OWM0ZTI3NDU4YWQ0ZTlmMzQzODI1MDQ0MwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEFwciAyMyAxMzo1NDoyNCAyMDA3ICswMjAwCgogICAgW3BhdGNoXSB1c2UgdW5zaWduZWQgY2hhciBpbiBzbWM5MTExMSBkcml2ZXIgZm9yIG1hYwoKICAgIHRoZSB2X21hYyB2YXJpYWJsZSBpbiB0aGUgc21jOTExMTEgZHJpdmVyIGlzIGRlY2xhcmVkIGFzIGEgc2lnbmVkIGNoYXIgLi4uCiAgICB0aGlzIGNhdXNlcyBwcm9ibGVtcyB3aGVuIG9uZSBvZiB0aGUgYnl0ZXMgaW4gdGhlIE1BQyBpcyAic2lnbmVkIiBsaWtlIDB4RTAKICAgIGJlY2F1c2Ugd2hlbiBpdCBnZXRzIHByaW50ZWQgb3V0LCB5b3UgZ2V0IGEgZGlzcGxheSBsaWtlOgogICAgMHhGRkZGRkZFMCBhbmQgdGhhdCdzIG5vIGdvb2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmZjNTBmOWJiMTk0MzQzYzYzMDM1MTdhNTE3NzA4NDU3YTVlYjZiOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IE1heSA1IDE4OjU0OjQyIDIwMDcgKzAyMDAKCiAgICBuZXc6IEZTTCBhbmQgTVNSIHN1cHBvcnQgIzIKCmNvbW1pdCBmN2UyZTBlYjA2NjgxMzYzMDVmNzhiYjljMjFiZTc5YjQ4YTM0MjQ3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgTWF5IDUgMTg6Mjc6MTYgMjAwNyArMDIwMAoKICAgIG5ldzogRlNMIGFuZCBNU1Igc3VwcG9ydAoKY29tbWl0IDJmMTUyNzhjMmViOTExYzY2OGI0ZmU1NjIxMzBiNzhjZjU1NGQxMzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTg6MjM6MTEgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsa2UgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg4NWVjODliNjQ4YTg5OWEyZjMyMzkzZmQzZmZkOWY3MjM0YzQ0MDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTg6MDU6MDIgMjAwNyArMDIwMAoKICAgIEFkZCBTVFggR1AzIFNTQSBib2FyZCB0byBNQUtFQUxMIHNjcmlwdDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU0OTk2NDViM2ZlMTdhNTQ4YWY5ZGZjNDc5Y2E2ZTI0NTVmMTc5YTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTc6MTU6NTAgMjAwNyArMDIwMAoKICAgIE1ha2UgImZpbGUiIGNvbW1hbmQgaGFwcHkgd2l0aCBzb21lIGNvbmZpZy5tayBmaWxlczsgdXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGUzYjhjNzhiYzI0ODljMjdhZTAyMDk4NmVmMGVhY2E2ODQ4NjZjZWYKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjMyOjE0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IERldGVjdCBpZiB0aGUgc3lzY2xrIG9uIFNlcXVvaWEgaXMgMzMgb3IgMzMuMzMzIE1IegoKICAgIFRoZSBBTUNDIFNlY3F1b2lhIGJvYXJkIGhhcyBiZWVuIGNoYW5nZWQgaW4gYSBuZXcgcmV2aXNpb24gZnJvbSB1c2luZyBhCiAgICAzMy4wMDAgTUh6IGNsb2NrIHRvIGEgMzMuMzMzIE1IeiBzeXN0ZW0gY2xvY2suIEEgYml0IGluIHRoZSBDUExECiAgICBpbmRpY2F0ZXMgdGhlIGRpZmZlcmVuY2UuIFRoaXMgcGF0Y2ggcmVhZHMgdGhhdCBiaXQgYW5kIHVzZXMgdGhlIGNvcnJlY3QKICAgIGNsb2NrIHNwZWVkIGZvciB0aGUgYm9hcmQuIFRoaXMgY29kZSBpcyBiYWNrd2FyZCBjb21wYXRhYmxlIHdpbGwgYWxsCiAgICBwcmlvciBib2FyZHMuIEFsbCBwcmlvciBib2FyZHMgd2lsbCBiZSByZWFkIGFzIDMzLjAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNTQ0ZmY2NjU2ZmNhMjYzZWQxZWJlMzk4OTliNmQ5NWRhNjdjOGI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMDg6Mjk6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU2VxdW9pYTogUmVtb3ZlIGNwdS9wcGM0eHgvc3BlZWQuYyBmcm9tIE5BTkQgYm9vdGluZwoKICAgIFVzaW5nIGNwdS9wcGM0eHgvc3BlZWQuYyB0byBjYWxjdWxhdGUgdGhlIGJ1cyBmcmVxdWVuY3kgaXMgdG9vIGJpZwogICAgZm9yIHRoZSA0ayBOQU5EIGJvb3QgaW1hZ2Ugc28gZGVmaW5lIGJ1c19mcmVxdWVuY3kgdG8gMTMzTUh6IGhlcmUKICAgIHdoaWNoIGlzIHNhdmUgZm9yIHRoZSByZWZyZXNoIGNvdW50ZXIgc2V0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJmNTUwYWI5NzY0MDUzMDBmNWIwN2JmMjg5MDgwMDg0MGQwYWEwNWYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MTI6MzAgMjAwNyArMDIwMAoKICAgIDV4eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhNzk4ODY1OTA1OTNiYTFkNjY3Yzg0MGNhYTQ5NDBjNjE2MzlmMThmCkF1dGhvcjogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA3OjA0OjQyIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBXcm9uZyBjYWxjdWxhdGlvbiBvZiBwYWdlIG51bWJlciBpbiBuYW5kX2Jsb2NrX2JhZCgpCgogICAgSW4gY2FzZSB0aGF0IHRoZXJlIGlzIG5vIG1lbW9yeSBiYXNlZCBiYWQgYmxvY2sgdGFibGUgYXZhaWxhYmxlIHRoZQogICAgZnVuY3Rpb24gbmFuZF9ibG9ja19jaGVja2JhZCgpIGluIGRyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMgd2lsbCBjYWxsCiAgICBuYW5kX2Jsb2NrX2JhZCgpIGRpcmVjdGx5LiBXaGVuIHBhcmFtZXRlciAnZ2V0Y2hpcCcgaXMgc2V0IHRvIHplcm8sCiAgICBuYW5kX2Jsb2NrX2JhZCgpIHdpbGwgbm90IHJpZ2h0IHNoaWZ0IHRoZSBvZmZzZXQgdG8gY2FsY3VsYXRlIHRoZQogICAgY29ycmVjdCBwYWdlIG51bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk4NzdkN2RjZDFlZWJlNjFhYTVkOGI4ZmZlOWMwNDhlYTQyNmU2ZjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDQgMTA6MDI6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBpbml0cmQgbGVuZ3RoIGNvcnJ1cHRpb24gaW4gYm9vdG0gY29tbWFuZC4KCiAgICBXaGVuIHVzaW5nIEZEVCBJbWFnZXMsIHRoZSBsZW5ndGggb2YgYW4gaW5pdGFsIHJhbWRpc2sgd2FzCiAgICBvdmVyd3JpdHRlbiAoYnVnIGludHJvZHVjZWQgYnkgY29tbWl0IDg3YTQ0OWM4LCAyMiBBdWcgMjAwNikuCgogICAgUGF0Y2hlcyBieSBUaW11ciBUYWJpICYgSm9obnMgRGFuaWVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDY4YWFiNjYwYmMzOTEyYjkzMGJlNTU0MGU2YjNmM2ZkNmFkM2M5NgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMyAxOTo0Mzo1MiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IHRyaXZpYWwgZXJyb3IgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0YTg5ZDZjZTg1ODRiOWZjNjRmNGU4NWRhOWVjYWMzY2ZjMmMyYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMyAxNjozNDo0MSAyMDA3ICswMjAwCgogICAgVXBkYXRlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZm9yIFNUWCBHUDNTU0EgYm9hcmQ6CgogICAgRW5hYmxlIGh1c2ggc2hlbGwsIGVudmlyb25tZW50IGluIGZsYXNoIHJhdGhlciBpbiBFRVBST00sCiAgICBtb3JlIHVzZXItZnJpZW5kbHkgZGVmYXVsdCBlbnZpcm9ubWVudCwgZXRjLgogICAgVGhlIHNpbXBsZSBFRVBST00gZW52aXJvbm1lbnQgY2FuIGJlIHNlbGVjdGVkIGVhc2lseSBpbiB0aGUgYm9hcmQKICAgIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmM2ZmIxOTlkYzU3NTZmYzcyZjQ5ZDFmNGRlMTA1ZTA4OTA0OWQ2NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjQgMTQ6Mzc6NDkgMjAwNyArMDIwMAoKICAgIENsZWFudXAgU1RYIEdQM1NTQSBjb2RlOyBmaXggYnVpbGQgYW5kIGNvbXBpbGUgcHJvYmxlbXMuCgpjb21taXQgMzUxNzFkYzA0ZTAyOGVjYWNjMjNhZDkxNmE2NjI5NTQ3MjU1NWRiZgpBdXRob3I6IERhbiBNYWxlayA8ZGFuQGVtYmVkZGVkYWxsZXkuY29tPgpEYXRlOglGcmkgSmFuIDUgMDk6MTU6MzQgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTVFggR1AzU1NBIChzdHhzc2EpIEJvYXJkCgogICAgU2lnbmVkLW9mZi1ieSBEYW4gTWFsZWssIDxkYW5AZW1iZWRkZWRhbGxleS5jb20+Cgpjb21taXQgZjIxMzRmOGU5ZWIwMDZiZGNkNzI5ZTg5ZjMwOWMwN2IyZmE0NTE4MApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWF5IDIgMTM6MzE6NTMgMjAwNyArMDIwMAoKICAgIG1hY2I6IERvbid0IHJlc3RhcnQgYXV0b25lZ290aWF0aW9uIGlmIHdlIGFscmVhZHkgaGF2ZSBsaW5rCgogICAgUmV3b3JrIG1hY2JfcGh5X2luaXQgc28gdGhhdCBpdCBkb2Vzbid0IGF0dGVtcHQgdG8gcmUtbmVnb3RpYXRlIGlmIHRoZQogICAgbGluayBpcyBhbHJlYWR5IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA0ZmNiNWQzOGJjOTA3NzljZDlhNzEwZDYwNzAyMDc1OTg2ZjBlMjkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyIDEzOjIyOjM4IDIwMDcgKzAyMDAKCiAgICBtYWNiOiBJbnRyb2R1Y2UgYSBmZXcgYmFycmllcnMgd2hlbiBkZWFsaW5nIHdpdGggRE1BIGRlc2NyaXB0b3JzCgogICAgVGhlcmUgd2VyZSBhIGZldyB0aGVvcmV0aWNhbCBwb3NzaWJpbGl0aWVzIHRoYXQgdGhlIGNvbXBpbGVyIG1pZ2h0CiAgICBvcHRpbWl6ZSBhd2F5IERNQSBkZXNjcmlwdG9yIHJlYWRzIGFuZC9vciB3cml0ZXMgYW5kIHRodXMgY2F1c2UKICAgIHN5bmNocm9uaXphdGlvbiBwcm9ibGVtcyB3aXRoIHRoZSBoYXJkd2FyZS4gSW5zZXJ0IGJhcnJpZXJzIHdoZXJlCiAgICB3ZSBkZXBlbmQgb24gcmVhZHMvd3JpdGVzIGFjdHVhbGx5IGhpdHRpbmcgbWVtb3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZmYTYyMWEwZDEyYTFjY2Q4MWM5MzZjNTY3Zjg5MTdhMjEzNzg3YTgKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBGZWIgMjQgMDE6MDg6MTMgMjAwNyAtMDYwMAoKICAgIENsZWFuZWQgdXAgc29tZSA4NXh4IFBDSSBidWdzCgogICAgKiBDbGVhbmVkIHVwIHRoZSBDRFMgUENJIENvbmZpZyBUYWJsZXMgYW5kIGFkZGVkIE5VTEwgZW50cmllcyB0bwogICAgICB0aGUgZW5kCiAgICAqIEZpeGVkIFBDSWUgTEFXQkFSIGFzc2lnbmVtdCB0byB1c2UgdGhlIGNwdS1yZWxhdGl2ZSBhZGRyZXNzCiAgICAqIEZpeGVkIDg1eHggUENJIGNvZGUgdG8gYXNzaWduIHBvd2FyIHJlZ2lvbiBzaXplcyBiYXNlZCBvbiB0aGUKICAgICAgY29uZmlnIHZhbHVlcyAocmF0aGVyIHRoYW4gaGFyZC1jb2RpbmcgdGhlbSkKICAgICogRml4ZWQgdGhlIDg1NDggQ0RTIFBDSTIgSU8gdG8gb25jZSBhZ2FpbiBoYXZlIDAgYXMgdGhlIGJhc2UgYWRkcmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzQzMTA1OTg4ZmM0NGQ1YjBkMzAzODhjNzkwNjA3ODM1YWFlN2E2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjU0OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIDg1NjggTURTIGJvYXJkCgogICAgVGhpcyBpbmNsdWRlZCBzb21lIGNoYW5nZXMgdG8gY29tbW9uIGZpbGVzOgogICAgKiBBZGQgODU2OCBwcm9jZXNzb3IgU1ZSIHRvIHZhcmlvdXMgcGxhY2VzCiAgICAqIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBxZSBidXMtZnJlcXVlbmN5IHZhbHVlIGluIHRoZSBkdHMKICAgICogQWRkIHRoZSA4NTY4TURTIHRhcmdldCB0byB0aGUgTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWYxYzJiODRiZjI3Yzg1NjViYWRkYzgyZDFhYmI5MzcwMGQxMGUyZQpBdXRob3I6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDozNDo0OCAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRyZWF0aW5nIHVua25vd24gUEhZcyBhcyBnZW5lcmljIFBIWXMuCgogICAgV2hlbiBicmluZ2luZyB1cCB1LWJvb3Qgb24gbmV3IGJvYXJkcywgUEhZIHN1cHBvcnQgc29tZXRpbWVzIGdldHMKICAgIG5lZ2xlY3RlZC4JTW9zdCBQSFlzIGRvbid0IHJlYWxseSBuZWVkIGFueSBzcGVjaWFsIHN1cHBvcnQsCiAgICB0aG91Z2guICBCeSBhZGRpbmcgYSBnZW5lcmljIGVudHJ5IHRoYXQgYWx3YXlzIG1hdGNoZXMgaWYgbm90aGluZwogICAgZWxzZSBkb2VzLCB3ZSBjYW4gcHJvdmlkZSBzdXBwb3J0IGZvciAidW5zdXBwb3J0ZWQiIFBIWXMgZm9yIHRoZQogICAgdHNlYy4KCiAgICBUaGUgZ2VuZXJpYyBQSFkgZHJpdmVyIHN1cHBvcnRzIG1vc3QgUEhZcywgaW5jbHVkaW5nIGdpZ2FiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3NWFmOWJmZDhmZmYwNDk5ZWZkYmI5MDYwMWNlYzVhMmFmZWYxMTcKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgNyAxNToyODowNCAyMDA3IC0wNjAwCgogICAgQ29uZGl0aW9uYWxpemUgODY0MSBSZXYxLjAgTUNNIHdvcmthcm91bmRzCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjQ3MDJiN2ZjOGY4ZGYzOWQzMWFkZDc3MGRmNmUzNzJmOWU5Y2UzCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxMzo1OTo1MCAyMDA3IC0wNTAwCgogICAgRml4IG1lbW9yeSBpbml0aWFsaXphdGlvbiBvbiBNUEM4MzQ5RS1tSVRYCgogICAgRGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYIGFuZCBNUEM4MzQ5RS1tSVRYLUdQLgogICAgVGhpcyBhbGxvd3MgZGRyLT5zZHJhbV9jbGtfY250bCB0byBiZSBwcm9wZXJseSBpbml0aWFsaXplZC4gIFRoaXMgaXMgbmVjZXNzYXJ5CiAgICBvbiBzb21lIElUWCBib2FyZHMsIG5vdGFibHkgdGhvc2Ugd2l0aCBhIHJldmlzaW9uIDMuMSBDUFUuCgogICAgQWxzbyBjaGFuZ2Ugc3BkX3NkcmFtKCkgaW4gY3B1L21wYzgzeHgvc3BkX3NkcmFtLmMgdG8gbm90IHdyaXRlIGFueXRoaW5nIGludG8KICAgIGRkci0+c2RyYW1fY2xrX2NudGwgaWYgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTCBpcyBub3QgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IE1pY2hhZWwgQmVuZWRpY3QgPE1CZW5lZGljdEB0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU0YjJkNDM0YWU5ZDAxNzg3OTM2ZjM0ZmUxNzU5Y2YzZDc2MjRhZTMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDMwIDE1OjI2OjIxIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiByZXBsYWNlIGVsYWJvcmF0ZSBib290dGltZSB2ZXJib3NpdHkgd2l0aCAnY2xvY2tzJyBjb21tYW5kCgogICAgYW5kIGZpeCBDUFU6IHRvIGFsaWduIHdpdGggQm9hcmQ6IGRpc3BsYXkgdGV4dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxYWI4MjY2OWQ5NTI1OTk4YzM0ZTgwMmExMmNhZDY2MjcyM2YyMmEKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMTYgMTM6MDI6NTMgMjAwNyAtMDUwMAoKICAgIFJld3JvdGUgcGljb3NfdG9fY2xrKCkgdG8gYXZvaWQgcm91bmRpbmcgZXJyb3JzLgogICAgQ2xhcmlmaWVkIHRoYXQgY29udmVyc2lvbiBpcyB0byBEUkFNIGNsb2NrcyByYXRoZXIgdGhhbiBwbGF0Zm9ybSBjbG9ja3MuCiAgICBNYWRlIGZ1bmN0aW9uIHN0YXRpYyB0byBzcGRfc2RyYW0uYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiMzk1MDFkMjg3NTRlNzI3MjZjZTdmYjAyMzEwZTU2ZGJkZjExNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MTM6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQmFtYm9vOiBVc2UgY3VycmVudCBOQU5EIGRyaXZlciBhbmQgKm5vdCogdGhlIGxlZ2FjeSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODY0YWE2YTZhNDY2ZmNiOTJiZjMyYjFkN2RiYTc5Y2Q3MDliNTJjOQpBdXRob3I6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MDE6NTQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBNUEM1MjAwQiBmcm9tIE1QQzUyMDAgaW4gYm9vdCBtZXNzYWdlCgogICAgTVBDNTIwMEIgc3lzdGVtcyBhcmUgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgTVBDNTIwMCBpbiBVLUJvb3Qgc3RhcnQtdXAKICAgIG1lc3NhZ2UuIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdHdvIHZhcmlhbnRzLCBhbmQgcHJpbnQgcHJvcGVyIENQVQogICAgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWM1ZDMyNDI5MzVjZjM1NDNhZjAxMTQyNjI3NDk0NDM0ODM0Y2Y5OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMTI6MzQ6MzggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1pbm9yIGZpeHVwcyBmb3IgODMxM3JkYiBpbnRyb2R1Y3Rpb24KCmNvbW1pdCBhZGE0ZDQwMDkxZjZlZDRhNGYwMDQwZTA4ZDIwZGIyMTk2N2U0YTY3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglXZWQgQXByIDI1IDE2OjAxOjI2IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHNpbXBsaWZ5IHNpbGVudCBjb25zb2xlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDQ4NzZhMzgwZjU3NTZmNTc0MTJjYWY3NGMxZDZkYzIwMWRkNzk2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgQXByIDI0IDIzOjAxOjAyIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIE1URCBwYXJ0aXRpb24gc3VwcG9ydCwgSkZGUzIgc3VwcG9ydAoKY29tbWl0IDM3ZWQ2Y2RkNDE1OTE5NWJmYWQ2OGQ4YTIzN2Y2YWRkYThmNDgyY2IKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEFwciAyNCAxNDowMzo0NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBzZXR1cCA0NDBFUHgvR1J4IFpNSUkvUkdNSUkgYnJpZGdlIGRlcGVuZGluZyBvbiBQRkMgcmVnaXN0ZXIgY29udGVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA2NmVkNmNjYTNmMzQwZjdhOGEwNmQ5MjcyYWUyZWY4ZTk2ZjAyNzNkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjM3OjQ3IDIwMDcgLTA1MDAKCiAgICBSZXdvcmtlZCA4NXh4IHNwZWVkIGRldGVjdGlvbiBjb2RlCgogICAgQ2hhbmdlZCB0aGUgY29kZSB0byByZWFkIHRoZSByZWdpc3RlcnMgYW5kIGNhbGN1bGF0ZSB0aGUgY2xvY2sKICAgIHJhdGVzLCByYXRoZXIgdGhhbiB1c2luZyBhICJzd2l0Y2giIHN0YXRlbWVudC4KCiAgICBJZGVhIGZyb20gQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODFmNDgxY2E3MDhlZDZhNTZiZjljNDEwZTMxOTFkYmFkNTgxYzU2NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjoyNDoyOCAyMDA3IC0wNTAwCgogICAgRW5hYmxlIDg1NDQgc3VwcG9ydAoKICAgICogQWRkIHN1cHBvcnQgdG8gdGhlIE1ha2VmaWxlCiAgICAqIEFkZCA4NTQ0IGNvbmZpZ3VyYXRpb24gc3VwcG9ydCB0byB0aGUgdHNlYyBkcml2ZXIKICAgICogQWRkIDg1NDQgU1ZSIG51bWJlcnMgdG8gcHJvY2Vzc29yLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZDhjM2EyMDk2ZWFmZjhkN2RlODlkNDVlOWFmNGQ0YjBkNDg2OGZlCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDIzIDE3OjEyOjI1IDIwMDcgLTA2MDAKCiAgICBTdXBwb3J0IDFHIHNpemUgb24gODU0OAoKICAgIGU1MDB2MiBhbmQgbmV3ZXIgY29yZXMgc3VwcG9ydCAxRyBwYWdlIHNpemVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVjZWY2MTJjYzYwMWQyZDFjODkwZmJiZDdjZGM5NjA5YTE4OWE0NgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNzoxMToxNiAyMDA3IC0wNjAwCgogICAgQ2hhbmdlZCBCT09LRV9QQUdFU1pfbkdCIHRvIEJPT0tFX1BBR0VTWl9uRwoKICAgIFRoZSBvdGhlciBwYWdlc3ogY29uc3RhbnRzIHVzZSBvbmUgbGV0dGVyIHRvIHNwZWNpZnkgb3JkZXIgb2YKICAgIG1hZ25pdHVkZS4JQWxzbyBjaGFuZ2UgdGhlIG9uZSByZWZlcmVuY2UgdG8gaXQgaW4gbXBjODU0OGNkcy9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWY5YTMxOGNlYTE0MjcyZWRkMTBkNjM3MzllMmQzMjZjOTBmNDMwZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNjoyODo0NiAyMDA3IC0wNjAwCgogICAgT25seSBzZXQgZGRyaW9vdmNyIGZvciA4NTQ4IHJldjEuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MzQzZGJmODViYzAzMDMzZjIxMDJkOGU4NTQzNTY3YzJjMWFkMmQyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgRmViIDI0IDAxOjE2OjQ1IDIwMDcgLTA2MDAKCiAgICBUd2VhayBERFIgRUNDIGVycm9yIGNvdW50ZXIKCiAgICBFbmFibGUgc2luZ2xlLWJpdCBlcnJvciBjb3VudGVyIHdoZW4gbWVtb3J5IHdhcyBjbGVhcmVkIGJ5IGRkciBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODVlN2M3YTQ1ZTNkZDljN2NlM2U3MjIzNTJiYTYwZjhkZjFhN2E0YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMTIgMTM6MzQ6NTUgMjAwNyAtMDYwMAoKICAgIDg1eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzYjgxYjQ4ZWVjMGFkMjQ5ZWM5N2E0YWUxNmMzNmZhMmUwMTRmZjQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDE6NDQ6NDQgMjAwNyAtMDUwMAoKICAgIFNvbWUgODV4eCBjcHUgY2xlYW51cHMKCiAgICAqIENsZWFuZWQgdXAgdGhlIFRTUltXSVNdIGNsZWFyaW5nCiAgICAqIENsZWFuZWQgdXAgRE1BIGluaXRpYWxpemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE1MWQ1ZDk5MmVhYjhjNDk3YjI0YzgxNmM3M2RjMWFkOGJmZmI0ZWIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDE6MzI6MjIgMjAwNyAtMDUwMAoKICAgIEFkZCBjcHUgc3VwcG9ydCBmb3IgdGhlIDg1NDQKCiAgICBSZWNvZ25pemUgbmV3IFNWUiB2YWx1ZXMsIGFuZCBhZGQgYSBmZXcgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjVkODNkN2Y0YWM2NTcyNzE4MmQ4ZGRhZjdiYTQyZmE3NGNmNjVhZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMTEgMTY6NTE6MDIgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgYmFzaWMgcG9ydCBib2FyZCBmaWxlcy4KCiAgICBBZGQgYm9hcmQgcG9ydCB1bmRlciBuZXcgYm9hcmQvZnJlZXNjYWxlIGRpcmVjdG9yeQogICAgc3RydWN0dXJlIGFuZCByZXVzZSBleGlzdGluZyBQSVhJUyBGUEdBIHN1cHBvcnQgdGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGNkZTRiMDBmYzczOTNiODlmMzc5ZDgzYTlkNDM2ZGNiMTMzNGJmYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMTEgMTY6NTA6NTcgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgbWFpbiBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzYyZGQ4MzA3N2FjMDRjMDI5NmJjYTNlODI0ZWMyZmIzZDQ0ZDlkNgpBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBEZWMgMjcgMjI6MDc6MTUgMjAwNiArMDMwMAoKICAgIEZpeCBQQ0kgSS9PIHNwYWNlIG1hcHBpbmcgb24gRnJlZXNjYWxlIE1QQzg1eDBBRFMKCiAgICBUaGUgUENJIEkvTyBzcGFjZSBtYXBwaW5nIGZvciBGcmVlc2NhbGUgTVBDODU0MEFEUyBib2FyZCB3YXMgYnJva2VuIGJ5IGNvbW1pdAogICAgNTJjN2E2OGI4ZDU4N2ViY2Y1YTZiMDUxYjU4YjNkM2ZmYTM3N2RkYyB3aGljaCBmYWlsZWQgdG8gdXBkYXRlIHRoZSAjZGVmaW5lJ3MKICAgIGRlc2NyaWJpbmcgdGhlIGxvY2FsIGFkZHJlc3Mgd2luZG93IHVzZWQgZm9yIHRoZSBQQ0kgSS9PIHNwYWNlIGFjY2Vzc2VzIC0tIGZpeAogICAgdGhpcyBhbmQgY2Fycnkgb3ZlciB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgaW50byB0aGUgTVBDODU2MEFEUyBjb2RlIHNpbmNlIHRoZQogICAgUENJIEkvTyBzcGFjZSBtYXBwaW5nIHdhcyBhbHNvIGJyb2tlbiBmb3IgdGhpcyBib2FyZCAoYnkgdGhlIGVhcmxpZXIgY29tbWl0CiAgICAwODc0NTQ2MDllNDcyOTU0NDNhZjc5M2EyODJjZGRjZDkxYTVmNDljKS4JQWRkIHRoZSBjb21tZW50cyBjbGFyaWZ5aW5nIGhvdwogICAgdGhlIFBDSSBJL08gc3BhY2UgbXVzdCBiZSBtYXBwZWQgdG8gYWxsIHRoZSBNUEM4NXh4IGJvYXJkIGNvbmZpZy4gaGVhZGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgoKICAgICBib2FyZC9tcGM4NTQwYWRzL2luaXQuUwkgIHwgICAgNCArKy0tCiAgICAgYm9hcmQvbXBjODU2MGFkcy9pbml0LlMJICB8ICAgIDQgKystLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQwQURTLmggfCAgICA1ICsrLS0tCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaCB8ICAgIDIgKy0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0OENEUy5oIHwgICAgMiArLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmggfCAgICA4ICsrKystLS0tCiAgICAgNiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmNvbW1pdCA5NjYyOWNiYWJkYjcyN2Q0YTVlNjI1NDJkZWVmYzAxZDQ5OGRiNmRjCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyA1IDE2OjQyOjMwIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCBlNTAwIHYyIGNvcmUgcmVzZXQgYnVnCgogICAgVGhlIGZvbGxvd2luZyBwYXRjaCBmaXhlcyB0aGUgZTUwMCB2MiBjb3JlIHJlc2V0IGJ1Zy4KICAgIEZvciBlNTAwIHYyIGNvcmUsIGEgbmV3IHJlc2V0IGNvbnRyb2wgcmVnaXN0ZXIgaXMgYWRkZWQgdG8gcmVzZXQgdGhlCiAgICBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzMjQ3YTVhY2Q1ODAzMmU2Y2YzM2Y1MjViYzM5MjNiNDY3YmFjODgKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDIwIDExOjAxOjAwIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IHYyOiBSZW1vdmUgdGhlIGZpeGVkIFRMQiBhbmQgTEFXIGVudHJ5bnVibWVyCgogICAgUmVtb3ZlIHRoZSBmaXhlZCBUTEIgYW5kIExBVyBlbnRyeSBudWJtZXIuIFVzZSBhY3R1YWxseSBUTEIgYW5kIExBVwogICAgZW50cnkgbnVtYmVyIHRvIGNvbnRyb2wgdGhlIGxvb3AuICBUaGlzIGNhbiByZWR1Y2UgdGhlIHBvdGVudGlhbCByaXNrCiAgICBmb3IgdGhlIDg1eHggcHJvY2Vzc29yIGluY3JlYXNpbmcgaXRzIFRMQiBhZG4gTEFXIGVudHJ5IG51bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FydGhvdXQgRWR3YXJkIDxzd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYjE5MzRiYTEyZmQ0MDhmY2MzYjhiZDlmNGIwNDg2NGM0MmE0MmJmCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxOCAxNzowMTowNCAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggdGhlIDg1eHhjZHMgdHNlYyBidWcKCiAgICBGaXggdGhlIDg1eHhjZHMgdHNlYyBidWcuCiAgICBXaGVuIGVuYWJsZSBQQ0ksIHRzZWMubyBzaG91bGQgYmUgYWRkZWQgdG8gdS1ib290LmxkcyB0byBtYWtlIHRzZWMgd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzMzN2IyMzdmZmM0YWFmMWI5NDY3MDI0ZmU0NzJhODgwZDg1MjU5OApBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMTUgMTQ6NDM6MzEgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IENQVTIgZXJyYXRhIG9uIE1QQzg1NDhDRFMgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFwcGx5IHdvcmthcm91bmQgb2YgQ1BVMiBlcnJhdGEgb24gTVBDODU0OENEUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OkVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzliMThjNGYzZTBiNmQwZGMwMGY0ZTY4YmFkMmRhMzc2NmM4NWYwOQpBdXRob3I6IGVib255LnpodUBmcmVlc2NhbGUuY29tIDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxOCAxNjoyNToxNSAyMDA2ICswODAwCgogICAgdS1ib290OiBEaXNhYmxlcyBNUEM4NTQ4Q0RTIDJUX1RJTUlORyBmb3IgRERSIGJ5IGRlZmF1bHQKCiAgICBUaGlzIHBhdGNoIGRpc2FibGVzIE1QQzg1NDhDRFMgMlRfVElNSU5HIGZvciBERFIgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OkVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDFmYjdlMGYxZWM5YjkxYmRhZTI1NjViYWI1ZjJlM2VlMTUwMzljNwpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMTQgMTQ6MTQ6NTUgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRW5hYmxlIFBDSSBmdW5jdGlvbiBhbmQgYWRkIFBFWCAmIHJhcGlkaW8gbWVtb3J5IG1hcCBvbiBNUEM4NTQ4Q0RTIGJvYXJkCgogICAgRW5hYmxlIFBDSSBmdW5jdGlvbiBhbmQgYWRkIFBFWCAmIHJhcGlkaW8gbWVtb3J5IG1hcCBvbiBNUEM4NTQ4Q0RTCiAgICBib2FyZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NmI4YTA1NDMyZjM0NmYzNjQ5MzUzNWM4NTMyMGI3MGVjOWM3YzFiCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6NTQ6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBNUEM4MzEzRVJEQiBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5ZWEzYjZlYWZlNjA2Mjg1YWU0ZDVjMzc4MDI2MTUzZGRlNTMyMDAKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoyMSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIGdlbmVyaWMgUENJIHNldHVwIGNvZGUuCgogICAgQm9hcmQgY29kZSBjYW4gbm93IHJlcXVlc3QgdGhlIGdlbmVyaWMgc2V0dXAgY29kZSByYXRoZXIgdGhhbiBoYXZpbmcgdG8KICAgIGNvcHktYW5kLXBhc3RlIGl0IGZvciB0aGVtc2VsdmVzLiAgQm9hcmRzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNlIHRoaXMKICAgIG9uY2UgdGhleSdyZSB0ZXN0ZWQgd2l0aCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3Yzk4ZTUxOTNlOTNkZjZiOWI2NTE4NTFkNTRiNjM4YTYxZWJiMGVhCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzF4IHN1cHBvcnQgdG8gc3BlZWQuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjI1MzI4M2EzMmQ5MWUwNjg0NGQ3Zjg3ZjliMzNmNGY0ZmJjZThmCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzF4IHN1cHBvcnQgdG8gZ2xvYmFsX2RhdGEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1ZTdlZjg5N2U1NDU5MWU2MTVmYzFiNDU4Yjc0YzI4NmZlMWZiMDYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoxNiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQ2hhbmdlIFBWUl84M3h4IHRvIFBWUl9FMzAwQzEtMywgYW5kIHVwZGF0ZSBjaGVja2NwdSgpLgoKICAgIFJhdGhlciB0aGFuIG1pc2xlYWRpbmdseSBkZWZpbmUgUFZSXzgzeHggYXMgdGhlIHNwZWNpZmljIHR5cGUgb2YgODN4eAogICAgYmVpbmcgYnVpbHQgZm9yLCB0aGUgUFZSIG9mIGVhY2ggY29yZSByZXZpc2lvbiBpcyBkZWZpbmVkLiBjaGVja2NwdSgpIG5vdwogICAgcHJpbnRzIHRoZSBjb3JlIHRoYXQgaXQgZGV0ZWN0cywgcmF0aGVyIHRoYW4gYWJvcnRpbmcgaWYgaXQgZG9lc24ndCBmaW5kCiAgICB3aGF0IGl0IHRoaW5rcyBpdCB3YW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMzViMGM0OTUwZDg0Y2Y5ZTNhOWUzMmI5MTYxMzU5NTZkMWFjNjM2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IFJlY29nbml6ZSBTUFIgdmFsdWVzIGZvciBNUEM4MzExIGFuZCBNUEM4MzEzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4N2M1N2IyMDFiNDU3MmQxNmYxYjY0Mjk5OGZhYTAwYzk5MTJiMTYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozMTo1NSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBNUEM4MzF4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmYzRjNzFhMTQzYmU4NjY2ZDcwODAzZmIyNWFlNjAzNzljOTU2MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjMgMTU6Mzk6NTkgMjAwNyArMDIwMAoKICAgIEZpeCBmaWxlIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzgyNTc5ODhhYmZlNzRkNDU5Y2EyYWQ3NDhiMTA5Y2EwNGU0ZWZlMQpBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTU6MzA6MzkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQXZvaWQgYXNzaWduaW5nIFBDSSByZXNvdXJjZXMgZnJvbSB6ZXJvIGFkZHJlc3MKCiAgICBJZiBhIFBDSSBJREUgY2FyZCBoYXBwZW5zIHRvIGdldCBhIHplcm8gYWRkcmVzcyBhc3NpZ25lZCB0byBpdCwgdGhlIExpbnV4IElERQogICAgY29yZSBjb21wbGFpbnMgYW5kIElERSBkcml2ZXJzIGZhaWxzIHRvIHdvcmsuICBBbHNvLCBhc3NpZ25pbmcgemVybyB0byBhIEJBUgogICAgd2FzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIFBDSSAyLjEgKHRoZSBsYXRlciByZXZpc2lvbnMgc2VlbSB0byBoYXZlIGV4Y2x1ZGVkIHRoZQogICAgc2VudGVuY2UgYWJvdXQgIjAiIGJlaW5nIGNvbnNpZGVyZWQgYW4gaW52YWxpZCBhZGRyZXNzKSAtLSBzbywgdXNlIGEgcmVhc29uYWJsZQogICAgc3RhcnRpbmcgdmFsdWUgb2YgMHgxMDAwICh0aGF0J3Mgd2hhdCB0aGUgbW9zdCBMaW51eCBhcmNocyBhcmUgdXNpbmcpLgoKICAgIEFsdGVybmF0aXZlbHksIG9uZSBtaWdodCBoYXZlIGZpeGVkIHRoZSBjYWxscyB0byBwY2lfc2V0X3JlZ2lvbigpIGluZGl2aWR1YWxseQogICAgKHNvbWUgY29kZSBldmVuIHNlZW1zIHRvIGhhdmUgdGFrZW4gY2FyZSBvZiB0aGlzIGlzc3VlKSBidXQgdGhhdCB3b3VsZCBoYXZlCiAgICBiZWVuIGEgbG90IG1vcmUgd29yay4gOi0pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWZiOTAzYTJlYjk0MzZiYWE5MjcwY2NjMGMyNzA4MmQ4NjQ5N2Q4OQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gQXByIDIzIDE0OjAwOjExIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHNldGVudiguLi4pIGNhbiBkZWxldGUgZW52aXJvbm1lbnRhbHZhcmlhYmxlcwoKICAgIHVwZGF0ZSBzZXRlbnYoKSBmdW5jdGlvbiBzbyB0aGF0IGVudGVyaW5nIGEgTlVMTCB2YWx1ZSBmb3IgdGhlCiAgICB2YXJpYWJsZSdzIHZhbHVlIHdpbGwgZGVsZXRlIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZjEwNGU1Y2FhNzQ3ZDU2OGVmZjI2YjM2OTU2NWFmNTdjMmZmYTYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBBcHIgMjMgMTM6NTQ6MjQgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gdXNlIHVuc2lnbmVkIGNoYXIgaW4gc21jOTExMTEgZHJpdmVyIGZvciBtYWMKCiAgICB0aGUgdl9tYWMgdmFyaWFibGUgaW4gdGhlIHNtYzkxMTExIGRyaXZlciBpcyBkZWNsYXJlZCBhcyBhIHNpZ25lZCBjaGFyIC4uLgogICAgdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGluIHRoZSBNQUMgaXMgInNpZ25lZCIgbGlrZSAweEUwCiAgICBiZWNhdXNlIHdoZW4gaXQgZ2V0cyBwcmludGVkIG91dCwgeW91IGdldCBhIGRpc3BsYXkgbGlrZToKICAgIDB4RkZGRkZGRTAgYW5kIHRoYXQncyBubyBnb29kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ5OGMwODg1YWQ2MTdmY2NmMjFlN2MyNmVmOGNiNzI4ZmJmYjI0NTkKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTM6MTA6NTIgMjAwNyArMDIwMAoKICAgIFVTQjogKEFub3RoZXIpIGRlbGF5IGZvciBjcmFwcHkgVVNCIGtleXMuCgogICAgU29tZSBVU0Iga2V5cyBhcmUgc2xvdyBpbiBnaXZpbmcgYmFjayBhbiBhbnN3ZXIgd2hlbiB0aGUgUm9vdCBIVUIKICAgIGVuYWJsZXMgcG93ZXIgbGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgMzIzYmZhOGY0MzZkYzNiYzU3MTg3YzliMTQ4OGJjMzE0NmZmMTUyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyMyAxMjowMDoyMiAyMDA3ICswMjAwCgogICAgUmVtb3ZlIEJPQVJETElCUyB1c2FnZSBjb21wbGV0ZWx5CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMyNTU2NDQzODQwZjEyNzE3MGU0YmFhOGJkZDViNTY3MDM5ZjZjMzYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBBcHIgMjEgMjE6MDc6MjIgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3lzdGVtQUNFIHN1cHBvcnQgZm9yIE1pY3JvYmxhemUKCmNvbW1pdCAwNjQzNjMxYWExMDM2Y2Q3NDZiZjVkMTVmNWEzNGJjN2JjMDFlYTRmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIxOjAyOjQwIDIwMDcgKzAyMDAKCiAgICAxNmJpdCByZWFkL3dyaXRlIGxpdHRsZSBlbmRpYW4KCmNvbW1pdCA5ZDFkNmEzNGQyNmM1OTMzYmMwOTdjZTczYzkzNDhmOTU1NzNjZGQ0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIwOjUzOjMxIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgTUw0MDEgcGFyYW1ldGVycyAtIFhpbGlueCBCU1AKCmNvbW1pdCAyZTM0M2I5YTU3ZjMyZTFiZDA4YzM1Yzk5NzY5MTAzMzNmYjRlMTNkCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyOCAwNTozNzoyOSAyMDA3IC0wNjAwCgogICAgbXBjODY0MWhwY246IEZpeCBMQVcgYW5kIFRMQiBzZXR1cCB0byB1c2UgdGhlIElPX1BIWVMgI2RlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OWNiNDczOTFlZWJlZjg1YWNhZGIzZjY5NjFlZjZjNTVjYWNlNmFjCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxOSAxMDo0MjozNyAyMDA3ICswODAwCgogICAgRW5hYmxlIExBV3MgZm9yIE1QQzg2NDEgUENJLUV4Mi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDc4NTFjZTFlMWYxNDA2NjViNTIwMDI2YWJmMTA0Mjk2OGIxMTAyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoxMjoyNiAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDsgV3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIGZ0cF9jcHVfc2V0dXAoKQogICAgc2hvdWxkIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MsIGlmIHRoZXkKICAgIGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkYmRmMjhiOGJkODU1YTg1MzBkYzMyOTJlNDk4MjU3NWExOTcwNjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjExOjM4IDIwMDcgLTA1MDAKCiAgICBtcGM4Nnh4OiBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIG1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0ZGE1Zjc2NzViYmI0MjdjNDY5ZTNmNDUwMDZlMDI3YjZlMjFkYjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDIwIDE3OjQzOjI4IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OTIzNTY1ZGIxMmFmMzRmZDVlMDJkMzU0ZWU2NWE4Yzc4YWM0NjBmCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjAgMTI6MDE6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBicmVha2FnZSBvZiBOQzY1MCBib2FyZCB3aXRoIHJlc3BlY3QgdG8gbmFuZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDM5ZjIzY2Q5MDk0NzYzOWFjMjc4YTE4ZmYyNzdlYzc4NmI1YWMxNjcKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxMToxMzoxNiAyMDA3ICswMjAwCgogICAgW1JGQyBQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IGZpeCBPRl9UQkNMSyAodGltZWJhc2UtZnJlcXVlbmN5KSBjYWxjdWxhdGlvbgoKICAgIEcyIGNvcmUgcmVmZXJlbmNlIG1hbnVhbCBzYXlzIGRlY3JlbWVudGVyIGFuZCB0aW1lIGJhc2UKICAgIGFyZSBkZWNyZWFzaW5nL2luY3JlYXNpbmcgb25jZSBldmVyeSA0IGJ1cyBjbG9jayBjeWNsZXMuCiAgICBMZXRzIGZpeCBpdCwgc28gdGltZSBpbiBMaW51eCB3b24ndCBydW4gdHdpY2UgYXMgZmFzdAoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3NjUxZjhiZGJiYTAzYmIwYjRmMjQxZTJkMmM0Y2I2NWIyMzBiZDU2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVGh1IEFwciAxOSAyMzoxNDozOSAyMDA3IC0wNDAwCgogICAgRml4IHNlcmlvdXMgcG9pbnRlciBidWcgd2l0aCBib290bSBhbmQgcmVzZXJ2ZSBtYXAuCgogICAgV2hhdCB3YXMgc3VwcG9zZSB0byBiZSBhIHN0YWNrIHZhcmlhYmxlIHdhcyBkZWNsYXJlZCBhcyBhIHBvaW50ZXIsCiAgICAgIG92ZXJ3cml0aW5nIHJhbmRvbSBtZW1vcnkuCiAgICBBbHNvIG1vdmVkIHRoZSBsaWJmZHQuYSByZXF1aXJlbWVudCBpbnRvIHRoZSBtYWluIE1ha2VmaWxlLiAgVGhhdCBpcwogICAgICBUaGUgVS1Cb290IFdheS4KCmNvbW1pdCBkMjE2ODYyNjM1NzRlOTVjYjNlOWU5YjA0OTZmOTY4YjFiODk3ZmRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXByIDE5IDA5OjUzOjUyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjaGlwIHNlbGVjdCB0aW1pbmcgZm9yIFN5c0FDRSBhY2Nlc3Mgb24gQU1DQyBLYXRtYWkKCiAgICBQcmV2aW91cyB2ZXJzaW9ucyB1c2VkIGZ1bGwgd2FpdCBzdGF0ZXMgZm9yIHRoZSBjaGlwIHNlbGVjdCAjMSB3aGljaAogICAgaXMgY29ubmVjdGVkIHRvIHRoZSBYaWxpbml4IFN5c3RlbUFDRSBjb250cm9sbGVyIG9uIHRoZSBBTUNDIEthdG1haQogICAgZXZhbHVhdGlvbiBib2FyZC4gVGhpcyBsZWFkcyB0byByZWFsbHkgc2xvdyBhY2Nlc3MgYW5kIHRoZXJlZm9yZSBsb3cKICAgIHBlcmZvcm1hbmNlLiBUaGlzIHBhdGNoIG5vdyBzZXRzIHVwIHRoZSBjaGlwIHNlbGVjdCBhIGxvdCBmYXN0ZXIKICAgIHJlc3VsdGluZyBpbiBtdWNoIGJldHRlciByZWFkL3dyaXRlIHBlcmZvcm1hbmNlIG9mIHRoZSBMaW51eCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM3ODM3ODI4ZDg5MDg0ODc5YmVlMmYyYjhjN2M2OGQ0Njk1OTQwZGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjQ5OjI5IDIwMDcgKzAyMDAKCiAgICBDbGVuYXVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZDA5NGM2Mzc5ZTJlZjhhNGQwY2ViNTY0MGIyNGNiMGM4ZDA0NDQ5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzoyMDo1OCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmEyNmVjNDczMmVmZDdhMzA4ZDBiYmM5NzcxNGMxZDc1ZWYxMTczYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6MDc6MjYgMjAwNyArMDIwMAoKICAgIENsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWdlbmQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVmNmM3MzJhZmZlYTk2NDc3NjJkMjdhNDYxN2EyYWU2NGM1MmRjZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE2OjE3OjQ2IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgYWQ0ZWI1NTU2NzFkOTdmOTZkYzU2ZWFiNTUxMDNiMWY4Njg3NGIwMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTQ6MzA6MzkgMjAwNyArMDIwMAoKICAgIE1DQzIwMCBib2FyZDogcmVtb3ZlIHdhcm5pbmcgd2hpY2ggaXMgb2Jzb2xldGUgYWZ0ZXIgUFNvQyBmaXJtd2FyZSBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzNzQ3YTNmMDEwYjJiMTQ0MmRlYzNlODcxYzY5Nzg4YjYwMTdhYWFlCkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CVdlZCBBcHIgMTggMTI6MTE6MDUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IGRvY3VtZW50IHdha2V1cCBmcm9tIGxvdy1wb3dlciBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+Cgpjb21taXQgZTY3MzIyNmZmOWQ2YWE5MWI0N2NlYWM3NGI4YzEzNzcwYjA2YmIzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxMjowNzo0NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQWNhZGlhIHRvIG5vdCBzZXR1cCBQTEwgd2hlbiBib290aW5nIHZpYSBib290c3RyYXAgRUVQUk9NCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkwZTZmNDFjZjA5ZmM5OGY2Y2NiNTEwZTE4M2Q1M2FiODU0NmNmMmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTI6MDU6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG91dHB1dCBmb3IgYm9vdHJvbSBsb2NhdGlvbiB0byA0MDVFWiBwb3J0cwoKICAgIE5vdyA0MDVFWiBwb3J0cyBhbHNvIHNob3cgdXBvbiBib290dXAgZnJvbSB3aGljaCBib290IGRldmljZQogICAgdGhleSBhcmUgY29uZmlndXJlZCB0byBib290OgoKICAgIFUtQm9vdCAxLjIuMC1nZDM4MzJlOGYtZGlydHkgKEFwciAxOCAyMDA3IC0gMDc6NDc6MDUpCgogICAgQ1BVOiAgIEFNQ0MgUG93ZXJQQyA0MDVFWiBSZXYuIEEgYXQgMTk5Ljk5OSBNSHogKFBMQj0xMzMsIE9QQj02NiwgRUJDPTY2IE1IeikKCSAgIEJvb3RzdHJhcCBPcHRpb24gRSAtIEJvb3QgUk9NIExvY2F0aW9uIEVCQyAoMzIgYml0cykKCSAgIDE2IGtCIEktQ2FjaGUgMTYga0IgRC1DYWNoZQogICAgQm9hcmQ6IEFjYWRpYSAtIEFNQ0MgUFBDNDA1RVogRXZhbHVhdGlvbiBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YzAwZGZiMGJmODljOGMyM2U4YWY1YjViZGY0OWNmNjZkNzY5Zjg1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEFwciAxNyAxMzozMDozMyAyMDA3ICswMTAwCgogICAgTW92ZSBwcGVhcnNlIHRvIEFSTSBib2FyZCBsaXN0CiAgICBBZGQgS29uc3RhbnRpbiBLbGV0c2Noa2UgZm9yIHNjYjkzMjguCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgoKY29tbWl0IGQzODMyZThmZTFiMjE0ZWM2MjQyNGVhYzM2Y2ZkYTlmYzU2ZDIxYjMKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDowMDoxMyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBpY2VjdWJlL2xpdGU1MjAwYjogd2FrZXVwIGZyb20gbG93LXBvd2VyIHN1cHBvcnQKCiAgICBVLUJvb3QgcGFydCBvZiBMaXRlNTIwMGIgbG93IHBvd2VyIG1vZGUgc3VwcG9ydC4KICAgIFB1dHMgU0RSQU0gb3V0IG9mIHNlbGYtcmVmcmVzaCBhbmQgdHJhbnNmZXJzIGNvbnRyb2wgdG8KICAgIGFkZHJlc3Mgc2F2ZWQgYXQgcGh5c2ljYWwgMHgwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmMzVhNTNmYzdiMGM3OWZjZmU3YmRjMDExNjNjNGIzNGFhYmExNDYwCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU3VuIEFwciAxNSAxMzo1NDoyNiAyMDA3IC0wNDAwCgogICAgRml4IHRoZSBmdF9jcHVfc2V0dXAoKSBwcm9wZXJ0eSBzZXR0aW5ncy4KCiAgICBVc2UgInNldHRlciIgZnVuY3Rpb25zIGluc3RlYWQgb2YgZmxhZ3MsIGNsZWFuZXIgYW5kIG1vcmUgZmxleGlibGUuCiAgICBJdCBhbHNvIGZpeGVzIHRoZSBwcm9ibGVtIG5vdGVkIGJ5IFRpbXVyIFRhYmkgdGhhdCB0aGUgZXRoZXJuZXQgTUFDCiAgICBhZGRyZXNzZXMgd2VyZSBhbGwgYmVpbmcgc2V0IGluY29ycmVjdGx5IHRvIHRoZSBzYW1lIE1BQyBhZGRyZXNzLgoKY29tbWl0IGMyOGFiYjljNjE0ZjY1Y2UyMDk2Y2M0YTY2ZmM4ODZjNzdkMGU1YTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgQXByIDE0IDIyOjUxOjI0IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIHRoZSBib290bSBjb21tYW5kIGZvciBDT05GSUdfT0ZfTElCRkRUCgogICAgSW4gYm9vdG0sIGNyZWF0ZSB0aGUgIi9jaG9zZW4iIG5vZGUgb25seSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QKICAgICAgKGJldHRlciBtYXRjaGVzIHRoZSBwcmV2aW91cyBiZWhhdmlvcikuCiAgICBVcGRhdGUgZm9yIHByb3BlciByZXNlcnZlZCBtZW1vcnkgbWFwIGhhbmRsaW5nIGZvciBpbml0cmQuCgpjb21taXQgM2Y5ZjA4Y2Y5MWM4YTY5NDlhNWQ3OGExOGJkM2Q4ZGY3Yjg2ZDg4OApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBBcHIgMTQgMjI6NDY6NDEgMjAwNyAtMDQwMAoKICAgIEFkZCBzb21lIHV0aWxpdGllcyB0byBtYW5pcHVsYXRlIHRoZSByZXNlcnZlZCBtZW1vcnkgbWFwLgoKY29tbWl0IDgwNDhjZGQ1NmYwNGE3NTZlZWVhNDk1MWY0MDJiZjVjYzMzNzg1ZGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDE0IDIxOjE2OjU0IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgOGU2ODc1MTgzY2RjYTkxYzEzNDQwOGQxMTlkNGFiY2Q0OGVmNjg1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjU2OjQ2IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIE1NQyBzdXBwb3J0CgogICAgU2V0IHVwIHRoZSBwb3J0bXV4IGZvciB0aGUgTU1DIGludGVyZmFjZSBhbmQgZW5hYmxlIHRoZSBNTUMgZHJpdmVyCiAgICBhbG9uZyB3aXRoIHN1cHBvcnQgZm9yIERPUyBwYXJ0aXRpb25zLCBleHQyIGFuZCBGQVQgZmlsZXN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZmMyNmM5N2JiNmRmNDFiNGE5NTY2MmMzNDA1NGZlOTEyMzg3YmYzOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSmFuIDIwIDEwOjAzOjUzIDIwMDYgKzAxMDAKCiAgICBBdG1lbCBNQ0kgZHJpdmVyCgogICAgRHJpdmVyIGZvciB0aGUgQXRtZWwgTUNJIGNvbnRyb2xsZXIgKE1NQyBpbnRlcmZhY2UpIGZvciBBVDMyQVAgQ1BVcy4KCiAgICBUaGUgQVQ5MSBBUk0tYmFzZWQgQ1BVcyB1c2UgYmFzaWNhbGx5IHRoZSBzYW1lIGhhcmR3YXJlLCBzbyBpdCBzaG91bGQKICAgIGJlIHBvc3NpYmxlIHRvIHNoYXJlIHRoaXMgZHJpdmVyLCBidXQgbm8gZWZmb3J0IGhhcyBiZWVuIG1hZGUgc28gZmFyLgoKICAgIEhhcmR3YXJlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBBVDMyQVA3MDAwIGRhdGEgc2hlZXQsCiAgICB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL2RhdGFzaGVldHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwNWZkYWIxZWY2YTEwZDA0OWE1MDAyMWE4NmYxMjI2ZjQ0NGQ5YjlmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTg6NTU6MzcgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBBZGQgY2xrIGFuZCBncGlvIGluZnJhc3RydWN0dXJlIGZvciBtbWNpCgogICAgSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIG1tY2kgcGlucywgYXMgd2VsbCBhcwogICAgZnVuY3Rpb25zIGZvciBnZXR0aW5nIHRoZSBjbG9jayByYXRlIG9mIHRoZSBtbWNpIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2ZhYzNmNjllOWYwNWM1ZTUzMjY2ODE5NzZjMzVkMTI5MzI0YzRkZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjUzOjU2IDIwMDYgKzAxMDAKCiAgICBFbmFibGUgcGFydGl0aW9uIHN1cHBvcnQgd2l0aCBNTUMKCiAgICBJbmNsdWRlIGltcGxlbWVudGF0aW9ucyBvZiBpbml0X3BhcnQoKSBhbmQgZ2V0X3BhcnRpdGlvbl9pbmZvKCkgd2hlbgogICAgQ09ORklHX01NQyBpcyBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWEyNGY0NzdhMWVkNWJiMGY3NDM3N2M5ODVkNzU0ZWJiZmE0NDg3MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE3OjE0OjMwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIG5ldHdvcmtpbmcKCiAgICBJbXBsZW1lbnQgTUFDQiBpbml0aWFsaXphdGlvbiBmb3IgQVZSMzIgYW5kIEFUU1RLMTAwMCwgYW5kIHR1cm4KICAgIGV2ZXJ5dGhpbmcgb24sIGluY2x1ZGluZyB0aGUgTUFDQiBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNWMxZmUxZmZmZmQxNzUwYTdlNDdlNWEyZTJjZDYwMGMwMGU0ZjAwOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSmFuIDIwIDEwOjAzOjM0IDIwMDYgKzAxMDAKCiAgICBBdG1lbCBNQUNCIGV0aGVybmV0IGRyaXZlcgoKICAgIERyaXZlciBmb3IgdGhlIEF0bWVsIE1BQ0Igb24tY2hpcCBldGhlcm5ldCBjb250cm9sbGVyLgoKICAgIFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZCBvbiB0aGUgQVRTVEsxMDAwIGJvYXJkIHdpdGggYSBBVDMyQVA3MDAwCiAgICBDUFUuIEl0IHNob3VsZCBwcm9iYWJseSB3b3JrIG9uIEFUOTFTQU05MjZ4IGFzIHdlbGwgd2l0aCBzb21lIG1pbm9yCiAgICBtb2RpZmljYXRpb25zLgoKICAgIEhhcmR3YXJlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBBVDMyQVA3MDAwIGRhdGEgc2hlZXQsCiAgICB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL2RhdGFzaGVldHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiNGVjOWMyZDQzZDg5NDcyOWJiNjMzYmZkYmRmYTk1YTk2MmMxNTU2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTY6NTY6MTQgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBBZGQgY2xrIGFuZCBncGlvIGluZnJhc3RydWN0dXJlIGZvciBtYWNiMCBhbmQgbWFjYjEKCiAgICBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgbWFjYjAgYW5kIG1hY2IxIHBpbnMsIGFzCiAgICB3ZWxsIGFzIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgY2xvY2sgcmF0ZSBvZiB0aGUgdmFyaW91cwogICAgYnVzc2VzIHRoZSBtYWNiIGV0aGVybmV0IGNvbnRyb2xsZXJzIGFyZSBjb25uZWN0ZWQgdG8uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDVhY2I5NWIxNmEwYTc0YzY0MzUyNDM0MmMzNDM3ZTc2NTQyNmQwNQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE1OjM5OjE1IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogSW1wbGVtZW50IHNpbXBsZSBETUEgbWVtb3J5IGFsbG9jYXRvcgoKICAgIEltcGxlbWVudCBkbWFfYWxsb2NfY29oZXJlbnQoKSB3aGljaCByZXR1cm5zIGNhY2hlLWFsaWduZWQKICAgIHVuY2FjaGVhYmxlIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5MTk3NWIwZmVhNzczYzllNjgxZmVhOGNmMzM0OTY2OWYyNzY4NWVlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTU6NDY6MDIgMjAwNiArMDEwMAoKICAgIEltcG9ydCA8bGludXgvbWlpLmg+IGZyb20gdGhlIExpbnV4IGtlcm5lbAoKICAgIEluc3RlYWQgb2YgY3JlYXRpbmcgeWV0IGFub3RoZXIgc2V0IG9mIE1JSSByZWdpc3RlciBkZWZpbml0aW9ucwogICAgaW4gdGhlIG1hY2IgZHJpdmVyLCBoZXJlJ3MgYSBjb21wbGV0ZSBzZXQgb2YgZGVmaW5pdGlvbnMgZm9yIGV2ZXJ5b25lCiAgICB0byB1c2UuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMWI4MDRiMjI5NTU2YTRkODYyZGE5M2MwZWM5NGU3OTQxOTM2NGIyYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWFyIDIxIDE5OjQ3OjM2IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogSW5jbHVkZSBtb3JlIGNvbW1hbmRzIGZvciBBVFNUSzEwMDAKCiAgICBJbmNsdWRlIHRoZSBpbWksIGltbHMgYW5kIGpmZnMgY29tbWFuZHMgc2V0cyBieSBkZWZhdWx0IG9uIEFUU1RLMTAwMC4KICAgIEFsc28gZGVmaW5lIENPTkZJR19CT09UQVJHUyB0byBzb21ldGhpbmcgbW9yZSB1c2VmdWwsIGRlZmluZQogICAgQ09ORklHX0JPT1RDT01NQU5EIGFuZCBlbmFibGUgYXV0b2Jvb3QgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5YzBkZWI1YWUzZWEwMTg5ZjJlMDhhYzI5ZWYxMzE2ZjFmYjg1NDhkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXIgMjEgMTk6NDQ6NDggMjAwNyArMDEwMAoKICAgIEFWUjMyOiBQcm92aWRlIGEgZGVmaW5pdGlvbiBvZiBzdHJ1Y3Qgc3RhdAoKICAgIENvcHkgdGhlIGRlZmluaXRpb24gb2Ygc3RydWN0IHN0YXQgZnJvbSB0aGUgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDEyZjA5OWMwODE2N2E3YTUxYWVlZTYyM2JjMTZkYWZkMDg0MTI3MWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNDo0NjowNiAyMDA2ICswMTAwCgogICAgQVZSMzI6IFVzZSBpbml0ZHJhbSgpIGluc3RlYWQgb2YgYm9hcmRfaW5pdF9tZW1vcmllcygpCgogICAgQ29uZm9ybSB0byB0aGUgInN0YW5kYXJkIiBpbnRlcmZhY2UgYW5kIHVzZSBpbml0ZHJhbSgpIGluc3RlYWQgb2YKICAgIGJvYXJkX2luaXRfbWVtb3JpZXMoKSBvbiBBVlIzMi4gVGhpcyBlbmFibGVzIHVzIHRvIGdldCByaWQgb2YgdGhlCiAgICBzZHJhbV9zaXplIG1lbWJlciBvZiB0aGUgZ2xvYmFsX2RhdGEgc3RydWN0IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMWY0ZjIxMjFjMjY4NTE4MmViODdmYTlhOWI3OTlkMTkxNzM4N2ExYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gTm92IDIwIDE1OjUzOjEwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogUmVsb2NhdGUgdS1ib290IHRvIFNEUkFNCgogICAgUmVsb2NhdGUgdGhlIHUtYm9vdCBpbWFnZSBpbnRvIFNEUkFNIGxpa2UgZXZlcnlvbmUgZWxzZSBkb2VzLiBUaGlzCiAgICBtZWFucyB0aGF0IHdlIGNhbiBoYW5kbGUgbXVjaCBsYXJnZXIgLmRhdGEgYW5kIC5ic3MgdGhhbiB3ZSB1c2VkIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGRmNTQ4ZDNjM2UyYmJjNDAyNTg3MTMxNjc4NTlmZmMyY2U5OWE5MDAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIE5vdiAxOSAxODowNjo1MyAyMDA2ICswMTAwCgogICAgQVZSMzI6IFJlc291cmNlIG1hbmFnZW1lbnQgcmV3cml0ZQoKICAgIFJld3JpdGUgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgY29kZSAoaS5lLiBJL08gbWVtb3J5LCBjbG9jayBnYXRpbmcsCiAgICBncGlvKSBzbyBpdCBkb2Vzbid0IGRlcGVuZCBvbiBhbnkgZ2xvYmFsIHN0YXRlLiBUaGlzIGlzIG5lY2Vzc2FyeQogICAgYmVjYXVzZSB0aGlzIGNvZGUgaXMgaGVhdmlseSB1c2VkIGJlZm9yZSByZWxvY2F0aW9uIHRvIFJBTSwgc28gd2UKICAgIGNhbid0IHdyaXRlIHRvIGFueSBnbG9iYWwgdmFyaWFibGVzLgoKICAgIEFzIGFuIGFkZGVkIGJvbnVzLCB0aGlzIG1ha2VzIHUtYm9vdCdzIG1lbW9yeSBmb290cHJpbnQgYSBiaXQgc21hbGxlciwKICAgIGFsdGhvdWdoIHNvbWUgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBsZWZ0IG91dDsgYWxsIGNsb2NrcyBhcmUgZW5hYmxlZAogICAgYWxsIHRoZSB0aW1lLCBhbmQgdGhlcmUncyBubyBjaGVja2luZyBmb3IgZ3BpbyBsaW5lIGNvbmZsaWN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwM2QxZTEzNjU3OTZjZDE1ZDE3MjZlOGE1MWZkOGI1YmU1MGIyZmU5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTg6MDE6MTMgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBDbGVhbiB1cCBtZW1vcnktbWFwLmggZm9yIGF0MzJhcDcwMDAKCiAgICBDb252ZXJ0IHNwYWNlcyB0byB0YWJzIChtdXN0IGhhdmUgbWlzc2VkIHRoaXMgb25lIGxhc3QgdGltZSBhcm91bmQpLAogICAgc29ydCB0aGUgZW50cmllcyBieSBhZGRyZXNzIGFuZCBncm91cCB0aGVtIHRvZ2V0aGVyIGJ5IGJ1cwogICAgY29ubmVjdGl2aXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDI4YzY5OWVmNjlmNGI2Y2RmMjUyZTQ3NDdiN2I1OTAwMjhhODg5ODEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzozMjozMSAyMDA2ICswMTAwCgogICAgQVZSMzI6IEJ1aWxkIHBvc2l0aW9uLWluZGVwZW5kZW50IHUtYm9vdAoKICAgIEFkZCAtZlBJQyAtbW5vLWluaXQtZ290IHRvIHRoZSBhdnIzMi1zcGVjaWZpYyBDRkxBR1MgdG8gbWFrZSB1LWJvb3QKICAgIHBvc2l0aW9uIGluZGVwZW5kZW50LiBUaGlzIHdpbGwgbWFrZSByZWxvY2F0aW9uIGEgbG90IGVhc2llci4KCiAgICAtbW5vLWluaXQtZ290IG1lYW5zIHRoYXQgZ2NjIHNob3VsZG4ndCBlbWl0IGNvZGUgdG8gbG9hZCB0aGUgR09UCiAgICBhZGRyZXNzIGludG8gcjYgaW4gZXZlcnkgZnVuY3Rpb24gcHJvbG9ndWUuIFdlIGRvIGl0IG9uY2UgYW5kIGZvcgogICAgYWxsIGluIHRoZSBlYXJseSBzdGFydHVwIGFzc2VtYmx5IGNvZGUsIHNvIGVuYWJsaW5nIHRoaXMgb3B0aW9uCiAgICBtYWtlcyB1LWJvb3QgYSBiaXQgZmFzdGVyIGFuZCBzbWFsbGVyLgoKICAgIFRoZSBhc3NlbWJseSBwYXJ0cyBoYXZlIGFsd2F5cyBiZWVuIHBvc2l0aW9uLWluZGVwZW5kZW50LCBzbyBubyBjb2RlCiAgICBjaGFuZ2VzIHNob3VsZCBiZSBuZWNlc3NhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNTM3NGIzNmRlOTFkMDA2ZDFkZjk1MzYyNTlmYTlmNjZiMDFhYTNhYQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjI0OjMxIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogVXNlIGF2cjMyLWxpbnV4LSBjcm9zcy1jb21waWxhdGlvbiBwcmVmaXggYnkgZGVmYXVsdAoKICAgIEl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB3aGljaCB0b29sY2hhaW4geW91IHVzZSB0byBjb21waWxlIHUtYm9vdCwKICAgIGJ1dCB0aGUgYXZyMzItbGludXggb25lIGlzIHByb2JhYmx5IHdoYXQgbW9zdCBwZW9wbGUgaGF2ZSBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzg0MWJlZWRkZWJlY2UwMDM5ZTcyNGZiMjdmNGQxYTM5ZWUxYzZiNgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjE1OjMwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogU3BsaXQgc3RhcnRfdV9ib290IGludG8gYm9hcmRfaW5pdF9mIGFuZCBib2FyZF9pbml0X3IKCiAgICBTcGxpdCB0aGUgYXZyMzIgaW5pdGlhbGl6YXRpb24gY29kZSBpbnRvIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZQogICAgcmVsb2NhdGlvbiwgYm9hcmRfaW5pdF9mIGFuZCBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciByZWxvY2F0aW9uLAogICAgYm9hcmRfaW5pdF9yLiBGb3Igbm93LCBib2FyZF9pbml0X2Ygc2ltcGx5IGNhbGxzIGJvYXJkX2luaXRfcgogICAgYXQgdGhlIGVuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzNzQwMzAwNWNmZTZiYjEzOTY0ZDQ1MGY2YTQ4YTBiMGYyZjcwMTdlCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgQXByIDE0IDA1OjI2OjQ4IDIwMDcgKzAyMDAKCiAgICBbRml4XQlTZXQgdGhlIExFRCBzdGF0dXMgcmVnaXN0ZXIgb24gdGhlIFVDMTAxIGZvciB0aGUgTFhUOTcxIFBIWS4KCSAgICBjbGVhciB0aGUgRGlzcGxheSBhZnRlciByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA3ODgyNzUxYzc4YjdlY2FiZmQ0OWIwZWZmOGRlMjc2NjFjNzFmMTZjCkF1dGhvcjogRGVuaXMgUGV0ZXIgPGQucGV0ZXJAbXBsLmNoPgpEYXRlOglGcmkgQXByIDEzIDA5OjEzOjMzIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCBidWdzIGluIGNtZF9pZGUuYyBhbmQgY21kX3Njc2kuYwoKICAgIEZpeCBidWcgaW50cm9kdWNlZCBieSAiRml4IGdldF9wYXJ0aXRpb25faW5mbygpIHBhcmFtZXRlciBlcnJvciBpbiBhbGwKICAgIG90aGVyIGNhbGxzIiBmcm9tIDIwMDUtMDMtMDQgaW4gY21kX2lkZS5jIGFuZCBjbWRfc2NzaS5jLCB3aGljaCBwcmV2ZW50ZWQKICAgIHRvIHVzZSBkaXNrYm9vdCBvciBzY3NpYm9vdCBmb3JtIGFub3RoZXIgZGV2aWNlIHRoYW4gMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZW5pcyBQZXRlciA8ZC5wZXRlckBtcGwuY2g+Cgpjb21taXQgMGI5NDUwNGQyMmU3MGY1MzdjMTdhMGQzOGM4N2VkYjZlMzcwOTc3ZApBdXRob3I6IEdyZWcgTG9wcCA8bG9wcEBwb2JveC5jb20+CkRhdGU6CUZyaSBBcHIgMTMgMDg6MDI6MjQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gRml4IHVzZSBvZiAidm9pZCAqIiBmb3IgYmxvY2sgZGV2IHJlYWQvd3JpdGUgYnVmZmVyIHBvaW50ZXJzCgogICAgU2lnbmVkLW9mLWJ5OiBHcmVnIExvcHAgPGxvcHBAcG9ib3guY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2ZmJmMjYxZjhkZjI5NGU1ODljZmFkZWJlYmU1NDY4ZTNjMGYyOWU5CkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgOSAxOTowODoyNSAyMDA3ICswODAwCgogICAgRml4IHR3byBidWdzIGZvciBNUEM4M3h4IEREUjIgY29udHJvbGxlciBTUEQgSW5pdAoKICAgIFRoZXJlIGFyZSBhIGZldyBidWdzIGluIHRoZSBjcHUvbXBjODN4eC9zcGRfc2RyYW0uYwogICAgdGhlIGZpcnN0IGJ1ZyBpcyB0aGF0IHRoZSBwaWNvc190b19jbGsgcm91dGluZSBpbnRyb2R1Y2VzIGEgaHVnZQogICAgcm91bmRpbmcgZXJyb3IgaW4gODN4eC4KICAgIHRoZSBzZWNvbmQgYnVnIGlzIHRoYXQgdGhlIG1vZGUgcmVnaXN0ZXIgd3JpdGUgcmVjb3ZlcnkgZmllbGQgaXMKICAgIHRXUi0xLCBub3QgdFdSID4+IDEuCgpjb21taXQgMmFkM2FiYTAxZDM3YjcyZTdjOTU3YjA3ZTEwMmZjY2Q2NGZlNmQxMwpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglUaHUgQXByIDEyIDE0OjE1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpMmMgZGl2aXNvciBjYWxjdWxhcmlvbiBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBmaXhlcyBjaGFuZ2VzIHRoZSBpMmNfaW5pdCguLi4pIGZ1bmN0aW9uIHRvIHVzZSB0aGUgZnVuY3Rpb24KICAgIGdldF9PUEJfZnJlcSgpIHJhdGhlciB0aGFuIGNhbGN1bGF0aW5nIHRoZSBPUEIgc3BlZWQgYnkKICAgIHN5c0luZm8uZnJlcVBMQi9zeXNJbmZvLnBsbE9wYkRpdi4gVGhlIGdldF9PUEJfZnJlcSgpIGZ1bmN0aW9uIGlzCiAgICBzcGVjaWZpYyBwZXIgcHJvY2Vzc29yLiBUaGUgcHJpb3IgbWV0aG9kIHdhcyBub3QgYW5kIHNvIHdhcyBjYWxjdWxhdGluZwogICAgdGhlIHdyb25nIHNwZWVkIGZvciBzb21lIFBQQzR4eCBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZjOWJhOTE5Mzc1ZGI5NzdhYWFkOTE0NmJmMzIwYzdhZmQwN2FlN2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDExIDE3OjI1OjAxIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MTA1NmRkOTg2M2U2YTFiYzM2M2FmYmJlMTc3NWM1OGNkOTY3NDE4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxMSAxNzoyMjo1NSAyMDA3ICswMjAwCgogICAgVXBkYXRlIGZvciBTQzMgYm9hcmQKCiAgICAqIE1ha2UgSURFIHRpbWVvdXQgY29uZmlndXJhYmxlIHRocm91Z2ggaWRlX3Jlc2V0X3RpbWVvdXQgdmFyaWFibGUuCiAgICAqIFVzZSBOZXdsaW5lIGFzICJwYXNzd29yZCIgc3RyaW5nCiAgICAqIFVzZSBqdXN0IGEgc2luZ2xlIHBhcnRpdGlvbiBpbiBOQU5EIGZsYXNoCgpjb21taXQgM2Q5OGI4NTgwMGM4MGRjNjgyMjdjOGYxMGJmNWM5MzQ1NmQ2ZDA1NApBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMjIgMTI6Mzc6MzAgMjAwNyAtMDYwMAoKICAgIEFkZCBQSVhJUyBGUEdBIHN1cHBvcnQgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIE1vdmUgdGhlIDg2NDFIUENOJ3MgUElYSVMgY29kZSB0byB0aGUgbmV3IGRpcmVjdG9yeQogICAgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi8gYXMgaXQgd2lsbCBiZSBzaGFyZWQgYnkKICAgIGZ1dHVyZSBib2FyZHMgbm90IGluIHRoZSBzYW1lIHByb2Nlc3NvciBmYW1pbHkuCgogICAgV3JpdGUgYSAicGl4aXNfcmVzZXQiIGNvbW1hbmQgdGhhdCB1dGlsaXplcyB0aGUgRlBHQQogICAgcmVzZXQgc2VxdWVuY2VyIHRvIHN1cHBvcnQgYWx0ZXJuYXRlIHNvZnQtcmVzZXQgb3B0aW9ucwogICAgc3VjaCBhcyB1c2luZyB0aGUgImFsdGVybmF0ZSIgZmxhc2ggYmFuaywgZW5hYmxpbmcKICAgIHRoZSB3YXRjaCBkb2csIG9yIGNob29zaW5nIGRpZmZlcmVudCBDUFUgZnJlcXVlbmNpZXMuCgogICAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwaXhpc19yZXNldCB0byBSRUFETUUubXBjODY0MWhwY24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRkYmJkNDBjNTgzNDliNjRmNDNmZDMzZGJiNWNhMGFkYjY3ZDY0MgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgNiAxNDoxOTo0MyAyMDA3IC0wNDAwCgogICAgTW92ZWQgZmR0IGNvbW1hbmQgc3VwcG9ydCBjb2RlIHRvIGZkdF9zdXBwb3J0LmMKCiAgICAuLi5pbiBwcmVwYXJhdGlvbiBmb3IgaW1wcm92aW5nIHRoZSBib290bSBjb21tYW5kJ3MgaGFuZGxpbmcgb2YgZmR0IGJsb2JzLgogICAgQWxzbyBjbGVhbmVkIHVwIHNvbWUgY29kaW5nIHNsb3BwaW5lc3MuCgpjb21taXQgNjY3OWY5Mjk5NTM0ZTQ4OGExNzFhOWJiOGY5YmI4OTFkZTI0N2FhYgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgNiAxNDoxNzoxNCAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBNYWtlIGZkdF9jaGVja19oZWFkZXIoKSBwdWJsaWMKCiAgICBDaGFuZ2VkIF9mZHRfY2hlY2tfaGVhZGVyKCkgdG8gZmR0X2NoZWNrX2hlYWRlcigpIGFuZCBtYWRlIGl0IHBhcnQgb2YKICAgIHRoZSBpbnRlcmZhY2UgLSBpdCBpcyBhIHVzZWZ1bCByb3V0aW5lLgoKICAgIEFsc28gZGlkIHNvbWUgYXN0aGV0aWNzIGNsZWFudXAgdG8gdGhlIGluY2x1ZGUgZmlsZXMgKGhlYWRlcnMpLgoKY29tbWl0IGMwNzA3Y2U2NTY3NzY1MGI1Y2VhYjA1MDBlZTUwYWU1MTY4YWZlZjIKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzQ6MDYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEtpbGwgb2ZmIGEgYnVuY2ggb2YgY29tbW9uIGxvY2FsIHByb3RvdHlwZXMKCmNvbW1pdCA3YjdlMzBhYTY0YmI2NjU3YTFiZmQzMmZkYmRiZmViNTYxZTZhNDhkCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMzOjA0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggZHluYW1pYyBDUExCIGdlbmVyYXRpb24gaXNzdWUKCmNvbW1pdCAwNDQ1ZTNhMjY0MjUxZDc1YjFiZTQ1ZWY3MTNjNzA3MjZhMjk1MmYwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMxOjQ3IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5pb3IgY2xlYW51cAoKY29tbWl0IDE1NWZkNzY2NTczOTgxMDkwZTYzOGI0OTNkNTg1NzU2MjE1MTg2MmUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzE6MTggMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBjb3B5cmlnaHQgYW5kIHVwZGF0ZSBsaWNlbnNlCgpjb21taXQgOWZkNDM3YmJkNzVkMjgyZjg5OWUxZGE1MGJlMjBhMmJmMzg0NTBiYwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMDoyNSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTM3IEVNQUMgZHJpdmVyIGluaXRpYWxpemF0aW9uCgpjb21taXQgODg5MjU2ZTg2MDRlMGM2OGRiMWQ4NjZkNzIwODk0ZGZmZWRlOWRmNgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyOTo1NSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY2FsbCByZWFsIHRoZSBzeXN0ZW0gc3luY2hyb25pemUgaW5zdHJ1Y3Rpb24KCmNvbW1pdCBlMGRmMWM5MjFiNzg4Mjg5NTY0ZTRjMWVlNzEyMGE2YTljZDNhYjA1CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI5OjE3IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSByZW1vdmUgYXNtL3BhZ2UuaCBhcyB3ZSBkbyBub3QgYWN0dWFsbHkgdXNlL3dhbnQgYW55IG9mIHRoZXNlIGRlZmluaXRpb25zIG5vciBkb2VzIGFueSBvdGhlciBhcmNoIGluY2x1ZGUgaXQKCmNvbW1pdCBkZmVlYWIyY2Q2ODBkZjA0N2U2OGU3MjNiMjQ2YWRmNmYzM2JiNTU2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI4OjM0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXTogZml4IGZsYXNoIHVuYWxpZ25lZCBjb3B5IGlzc3VlCgpjb21taXQgNDQzZmViNzQwNTg0ZTQwNmVmYTIwM2FmOTA5ZmUyOTI2NjA4ZThkNQpBdXRob3I6IElnb3IgTWFybmF0IDxtYXJueUByYW1ibGVyLnJ1PgpEYXRlOglXZWQgTWFyIDIxIDA5OjU1OjAxIDIwMDcgKzAzMDAKCiAgICBVcGRhdGUgdXNhZ2Ugb2YgJ25jJyBpbiBSRUFETUUuTmV0Q29uc29sZQoKICAgIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IHVzYWdlIG9mIE5ldENvbnNvbGUgb24gc3lzdGVtcyB3aGVyZSB0aGUgLWwgYW5kIC1wCiAgICBzd2l0Y2hlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTWFybmF0IDxtYXJueUByYW1ibGVyLnJ1PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMzFjOThhODgyMjgwMjFiMzE0Yzg5ZWJiODEwNGZiNjQ3M2RhNDQ3MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgNCAwMjowOTozMCAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgOTRhYmQ3YzA1ODNlYmUwMWU3OTliMjVmNDUxMjAxZGVlYWFiNTUwZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgNCAwMTo0OToxNSAyMDA3ICswMjAwCgogICAgTWlub3IgY2xlYW51cC4KCmNvbW1pdCA4MjJhZjM1MWFkMmJhYmM3ZDk5MDMzMzYxYTVmY2FjZDMwZjZiYzc4CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglUdWUgQXByIDMgMTQ6Mjc6MTggMjAwNyArMDIwMAoKICAgIFN1cHBvcnQgZm9yIHRoZSBQaGlsaXBzIElTUDExNnggSENEIChIb3N0IENvbnRyb2xsZXIgRHJpdmVyKQoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KCmNvbW1pdCBlZGY1ODUxYmU2YzE3YzAzMWQ0ZjcxZGQ1YjBhMTIwNDBiN2M1MGM4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAzIDE0OjI3OjA4IDIwMDcgKzAyMDAKCiAgICBVU0I6IGNsZWFudXAgbW9uYWhhbnMgdXNiIHN1cHBvcnQuIFJlbW92ZSBkZWFkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBhNjVjNTc2OGU1NTM3NTMwYmQxNzgwYWYzZDNmZGRjMzExM2ExNjNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIgMTA6MDk6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIFN5c0FDRSBhZGRyZXNzIG9uIEthdG1haQoKICAgIFdpdGggdGhpcyBuZXcgYmFzZSBhZGRyZXNzIG9mIHRoZSBYaWxpbnggU3lzdGVtQUNFIGNvbnRyb2xsZXIKICAgIHRoZSBMaW51eCBkcml2ZXIgd2lsbCBiZSBlYXNpZXIgdG8gYWRhcHQsIHNpbmNlIGl0IGNhbiBub3cgYmUKICAgIG1hcHBlZCB2aWEgdGhlICJub3JtYWwiIGlvcmVtYXAoKSBjYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZWEwM2M0ZThjM2EyMWNlNDNkM2ZhZjQ4YTZlNmQ0NzRjOGJkZjczCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxNDozMDo1MyAyMDA3IC0wNDAwCgogICAgRml4IHNvbWUgbWlub3Igd2hpdGVzcGFjZSB2aW9sYXRpb25zLgoKY29tbWl0IDIxM2JmOGM4MjJkZThlZWNhZjY5ODYwNjg0NDY5Y2RhYmEyZTllNmEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjIzOjUxIDIwMDcgLTA0MDAKCiAgICBBZGQgYSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgKGZkdCkgY29tbWFuZCAoMiBvZiAyKQoKICAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGV4aXN0aW5nIGNvZGUgdG8gc3VwcG9ydCB0aGUgbmV3IGZkdCBjb21tYW5kLgoKY29tbWl0IDc4MWUwOWVlNmUzZTNlMzkyYWIzNjJjMWYwZWYxMDY4YWRjNzZlM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjIyOjEwIDIwMDcgLTA0MDAKCiAgICBBZGQgYSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgKGZkdCkgY29tbWFuZCAoMSBvZiAyKQoKICAgIFRoZSBmZHQgY29tbWFuZCB1c2VzIERhdmlkIEdpYnNvbidzIGxpYmZkdCBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgYXMgd2VsbAogICAgYXMgcHJpbnQgdGhlIGZsYXR0ZW5lZCBkZXZpY2UgdHJlZS4gIFRoaXMgcGF0Y2ggaXMgdGhlIG5ldyBjb21tYW5kLAogICAgdGhlIHNlY29uZCBwYXJ0IGlzIHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBleGlzdGluZyBjb2RlLgoKY29tbWl0IDNhZjBkNTg3ZDkzZTBiZTVmOTZlMWIzMGZhNDFlNjYyZjhiMDgwM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjEzOjQzIDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEVuaGFuY2VkIGFuZCBwdWJsaXNoZWQgZmR0X25leHRfdGFnKCkKCiAgICBFbmhhbmNlZCB0aGUgZm9ybWVybHkgcHJpdmF0ZSBmdW5jdGlvbiBfZmR0X25leHRfdGFnKCkgdG8gYWxsb3cgc3RlcHBpbmcKICAgICAgdGhyb3VnaCB0aGUgdHJlZSwgdXNlZCB0byBwcm9kdWNlIGEgaHVtYW4tcmVhZGFibGUgZHVtcCwgYW5kIG1hZGUKICAgICAgaXQgcGFydCBvZiB0aGUgcHVibGlzaGVkIGludGVyZmFjZS4KICAgIEFsc28gYWRkZWQgc29tZSBjb21tZW50cy4KCmNvbW1pdCBmYTNhNzRjZWM3M2RmZDA2YTVhZTM1YTlhMzM2ODIwMDI3M2FhYTcxCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjowNTozOSAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBDdXN0b21pemF0aW9ucyBmb3IgdXNlIGJ5IHUtYm9vdC4KCiAgICBDaGFuZ2VzIHRvIERhdmlkIEdpYnNvbidzIG9yaWdpbmFsIHNvdXJjZSB0byBmaXQgaW50byB1LWJvb3QncwogICAgZW52aXJvbm1lbnQuICBObyBmdW5jdGlvbmFsaXR5IGNoYW5nZXMuCgpjb21taXQgMzU3NDgxNzdjNjRhNGE4M2EwMDA1N2U5M2JiMzNlNDAyNzhhMmE5NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MDA6NTYgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogSW1wb3J0IGxpYmZkdCBzb3VyY2UgKDIgb2YgMikKCiAgICBUaGlzIGFkZHMgdGhlIGFwcGxpY2FibGUgbGliZmR0IHNvdXJjZSBmaWxlcyAodW5tb2RpZmllZCkgYW5kIGEgUkVBRE1FCiAgICB0byBleHBsYWluIHdoZXJlIHRoZSBzb3VyY2UgY2FtZSBmcm9tLgoKY29tbWl0IDdjZDVkYTBmZTg3N2U3MTcxYTRjZGQ0NDg4MGJjZTc4MzEzMjg3MWEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDExOjU5OjU5IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEltcG9ydCBsaWJmZHQgc291cmNlICgxIG9mIDIpCgogICAgVGhpcyBhZGRzIHRoZSBhcHBsaWNhYmxlIGxpYmZkdCBzb3VyY2UgZmlsZXMgKHVubW9kaWZpZWQpIGFuZCBhIFJFQURNRQogICAgdG8gZXhwbGFpbiB3aGVyZSB0aGUgc291cmNlIGNhbWUgZnJvbS4KCmNvbW1pdCBkYTZlYmMxYmMwODJjYmUzYjZiYmRlMDc5Y2FmZTA5ZjdlYmJhZDRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDEzOjE2OjIzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLYXRtYWkgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBOb3cgdGhlIEREUjIgZnJlcXVlbmN5IGlzIGFsc28gMipQTEIgZnJlcXVlbmN5IHdoZW4gMTY2TUh6IFBMQgogICAgaXMgc2VsZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhYmVlNzU2YTY1MzI5ODY3Mjk0NzdjM2NjMWVhMTZlZjg1MTdhZDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMTM6MTU6MDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0eF9zcGRfZGRyMiBjb2RlICg0NDBTUC80NDBTUGUpCgogICAgQWRkaXRpb25hbCBSQU0gaW5mb3JtYXRpb24gaXMgbm93IHByaW50ZWQgdXBvbiBwb3dlcnVwLCBsaWtlCiAgICBERFIyIGZyZXF1ZW5jeSBhbmQgQ0FTIGxhdGVuY3kuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYwNzIzODAzNDMxYWM3NWNhZDA4NTY5MDc4OWU0MzNkNWFiOTE3NGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMDg6NDg6MzYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIFl1Y2NhIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgRUNDCgogICAgV2l0aCB0aGUgdXBkYXRlZCA0NHggRERSMiBkcml2ZXIgdGhlIFl1Y2NhIGJvYXJkIG5vdyBzdXBwb3J0cwogICAgRUNDIGdlbmVyYXRpb24gYW5kIGNoZWNraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTBlNTczMGM2NzRiMjBkNzA4Yjc4M2EyYzVmZmQ3MjA4ZjgzODczCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ3OjM0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCAiYm9vdHN0cmFwIiBjb21tYW5kIGZvciBLYXRtYWkgYm9hcmQKCiAgICBUaGUgYm9hcmQgc3BlY2lmaWMgImJvb3RzdHJhcCIgY29tbWFuZCBpcyBub3cgZml4ZWQgYW5kIGNhbgogICAgYmUgdXNlZCBmb3IgdGhlIEFNQ0MgS2F0bWFpIGJvYXJkIHRvIGNvbmZpZ3VyZSBkaWZmZXJlbnQKICAgIENQVS9QTEIvT1BCIGZyZXF1ZW5jaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NGY1NDcwM2MzYTc3NmVjMjNlNDI3Y2EyYTE2ZTBhNzlhNWQ1MGMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ2OjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgYXV0byBjYWxpYnJhdGlvbiByb3V0aW5lLiBUaGlzIGRyaXZlciBub3cgcnVucwogICAgbW9yZSByZWxpYWJsZSB3aXRoIHRoZSB0ZXN0ZWQgbW9kdWxlcy4gSXQncyBhbHNvIHRlc3RlZCB3aXRoCiAgICAxNjdNSHogUExCIGZyZXF1ZW5jeSAoNjY3TUh6IEREUjIgZnJlcXVlbmN5KSBvbiB0aGUgS2F0bWFpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDJjZDA5N2JlMWU3YWZmZTgyZjQyYWIzZGEyMjA5NTlhNjk5ZTY0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDMwIDIyOjUyOjA5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIENsZWFuIGluY2x1ZGUgZGVwZW5kZW5jZQoKY29tbWl0IDZmOTM0MjEwZmIyOTNmZGUyY2ZiNDI1MWM2ZDk2ZmRjNThiNmE5MDYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMzAgMjI6NDI6NDUgMjAwNyArMDIwMAoKICAgIFtDTEVBTl0gUmVtb3ZlIGluZWZmaWNpZW50IFN1emFrdSBjb2RlCgpjb21taXQgNDMwZjFiMGY5YTY3MGMyZjEzZWFhNTJlNjZhMTBkYjk2ZGQzNjQ3ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyOCAxNTowMzoxNiAyMDA3ICswMjAwCgogICAgTWVyZ2Ugc29tZSBBTUNDIG1ha2UgdGFyZ2V0cyB0byBrZWVwIHRoZSB0b3AtbGV2ZWwgTWFrZWZpbGUgc21hbGxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzc1YzlkODQzMDdhOWYxY2JlMWZmMGM0ZDg5MzdlZTNhOTY0NzVlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI4IDE0OjUyOjEyIDIwMDcgKzAyMDAKCiAgICBpMmM6IEVuYWJsZSAib2xkIiBpMmMgY29tbWFuZHMgZXZlbiB3aGVuIENPTkZJR19JMkNfQ01EX1RSRUUgaXMgZGVmaW5lZAoKICAgIFRoZSAib2xkIiBpMmMgY29tbWFuZHMgKGlwcm9iZSwgaW1kLi4uKSBhcmUgbm93IGNvbXBpbGVkIGluIGFnYWluLAogICAgZXZlbiB3aGVuIHRoZSBpMmMgY29tbWFuZCB0cmVlIGlzIGVuYWJsZWQgdmlhIHRoZSBDT05GSUdfSTJDX0NNRF9UUkVFCiAgICBjb25maWcgb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZGEwNDhhZGY0NGJlYTVlM2I5NDA4MGQwMjkwM2MyZTNmZTdhYTRhCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWFyIDI3IDAwOjMyOjE2IDIwMDcgKzAyMDAKCiAgICBQQVRDSDogUmVzb2x2ZSBHUEwgbGljZW5zZSBwcm9ibGVtCgpjb21taXQgYWUwMGJiNGIyOTQ0ZGM2NGE0ODVlZDcyYTE5NzU0YjExYWY3YzIyMwpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIE1hciAyNiAxMjowMzozNiAyMDA3ICswMjAwCgogICAgUFhBOiBweGEyN3ggVVNCIE9IQ0kgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGFlNzlmNjA2NzdjMjA4MzI2NTM1NjQ3ZGNiZDVjM2VjNDBkYmNiMGIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWFyIDI2IDExOjIxOjA1IDIwMDcgKzAyMDAKCiAgICBVU0I6IHJlbW92ZSB0aGUgUzNDMjRYMF9tZXJnZSAjZGVmaW5lLCB3aGljaCB3YXMgaW50cm9kdWNlZCB3aGlsZQogICAgbWVyZ2luZyBPSENJIGRyaXZlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxNzk4MDQ5NTIyZjU5NDAxM2FlYTI5NDU3ZDQ2Nzk0Mjk4YzZhZTE1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxyb290QG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1hciAyNiAwMTozOTowNyAyMDA3ICswMjAwCgogICAgU3VwcG9ydCBmb3IgWFVQVjJQIGJvYXJkCiAgICBSZXNldCBzdXBwb3J0CiAgICBCU1AgYXV0b2NvbmZpZyBzdXBwb3J0Cgpjb21taXQgMGQ5NzRkNTI5NzM0OTUwNGEyZGRmYTA5MzE0YmU1NzNiNWRmMzIwYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo1NzowOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgNHh4IEdQSU8gZnVuY3Rpb25zCgogICAgVGhpcyBwYXRjaCBhZGRzIHNvbWUgNHh4IEdQSU8gZnVuY3Rpb25zLiBJdCBhbHNvIG1vdmVzIHNvbWUgb2YgdGhlCiAgICBjb21tb24gY29kZSBhbmQgZGVmaW5lcyBpbnRvIGEgY29tbW9uIDR4eCBHUElPIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZGI2MzM2NThiYmYzNjZhYjBjOGRhZDdhMDcyN2UxZmIyYWU2YjExCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjU1OjU4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFNtYWxsIFNlcXVvaWEgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzY2I4NmYzZTQwZDJhODAzNTYxNzc0MzRhOTlmNzViYzhiYWE5Y2FmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjQ1OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFuIHVwIDQwRVovQWNhZGlhIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGNsZWFucyB1cCBhbGwgdGhlIG9wZW4gaXNzdWUgb2YgdGhlIHByZWxpbWluYXJ5CiAgICBBY2FkaWEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmViMWRmODM1MTkxZDhjZTRiODFkNWFmNDBmYThlMGZiZTc4ZTk5NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgMTIgMTE6MDI6MjAgMjAwNiAtMDYwMAoKICAgIEZpeCA4NjQxSFBDTiBwcm9ibGVtIHdpdGggbGQgdmVyc2lvbiAyLjE2CgogICAgKERvdCBvdXRzaWRlIHNlY3Rpb25zIHByb2JsZW0pLgoKICAgIFRoaXMgZml4IGlzIGluIHRoZSBzcGlyaXQgb2YgODA3ZDVkNzMxOTMzMGUzMzZhYjM0YTU2MjNjNWUwZDczYjg3ZDU0MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5NjRhNGRkMGQ0ZWY1YTAzN2ZlYmFlYmYxYWE0OTRiMWE3Mjk5MWMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzU6NTUgMjAwNiAtMDYwMAoKICAgIFNldCBSZXYgMi54IDg2eHggUElDIGluIG1peGVkIG1vZGUuCgogICAgUHJldmVudCBmYWxzZSBpbnRlcnJ1cHQgZnJvbSBoYW5naW5nIExpbnV4IGFzIE1TUltFRV0gaXMgc2V0CiAgICB0byBlbmFibGUgaW50ZXJydXB0cyBieSBjaGFuZ2luZyB0aGUgUElDIG91dCBvZiB0aGUgZGVmYXVsdAogICAgcGFzcyB0aHJvdWdoIG1vZGUgaW50byBtaXhlZCBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVhNThhNzNjZWIwYTQwNTljNDJlZjY0Y2VkYmMxYTQ1ZTBhYWEwMGUKQXV0aG9yOiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzI6MzUgMjAwNiAtMDYwMAoKICAgIEFkZCBmbGFzaCBjbWQgZnVuY3Rpb24gdG8gODY0MUhQQ04gcmFtYm9vdAoKICAgIEFsc28gZml4ZXMgc29tZSBjb21tbWFuZCBmb3IgODY0MSBIUENOIHJhbWJvb3QgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyY2NjZWFjYzA0YjAwOWQ5MjNhZmI3YzI2MTg5YmEyZjhhMmE1ZDQ2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjM0OjE0IDIwMDYgLTA2MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgODY0MSBSZXYgMiBzaWxpY29uLgoKICAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgSSBhbSB1bmFibGUgdG8gZ2V0IHRvIHRoZSBwcm9tcHQgb24gcmV2IDIgc2lsaWNvbi4KICAgIE9ubHkgc2V0IGRkcmlvb3ZjciBmb3IgcmV2MS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQ8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0YmE0NjRiOTkwMDFmOGJkMWM0NTZhMWU5ZDU5NzI2MjUyZjcwN2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDIyIDAwOjEzOjEyIDIwMDcgKzAxMDAKCiAgICBDb2RlIGNsZWFudXAgLyByZS1pbnNlcnQgcHJldmlvdXMgQ29weXJpZ2h0IGVudHJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYThkZmUwODM1OWExYjY2MzQxOGIyZmFhMWRhMWQ3YmNlMzRkMzAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAyMzoyNjoxNSAyMDA3ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZTY2MTVlY2Y0ZWFmNGRkNTI2OTY5MzRhZWQ4ZjVjNjQ3NGNmZDI4NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxNDo1NDoyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggZmlsZSBtb2RlIG9mIGluY2x1ZGUvY29uZmlncy9hY2FkaWEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNWY0NjE0YzkzNTBkOTMzM2U1NzUxMDBmYjI1MGFhYjc3NGQwMjU4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxNDo0MTo0NiAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogZml4IHNtYWxsIGNsb2NrIHJvdXRpbmcgYnVnCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxNmMwY2MxYzgyMDgxYTQ5M2FiODdjNTE5ODBiMjgzMzZjZTFiY2U4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDEzOjM5OjU3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBBTUNDIEFjYWRpYSAoNDA1RVopIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbmV3IEFNQ0MgQWNhZGlhIGV2YWwgYm9hcmQuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIEFjYWRpYS80MDVFWiBzdXBwb3J0IGlzIHN0aWxsIGluIGEgYmV0YSBzdGFnZS4KICAgIFN0aWxsIGxvdCdzIG9mIGNsZWFudXAgbmVlZGVkIGJ1dCB3ZSBuZWVkIGEgcHJlbGltaW5hcnkgcmVsZWFzZSBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwMWJkMjE4YjAwYWY3MzQ5OTMzMWExYTcwMTYyNWE4NTJjZDI4NmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTM6Mzg6NTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEFNQ0MgUFBDNDA1RVogc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbmV3IEFNQ0MgNDA1RVogUFBDLiBJdCBpcyBpbgogICAgcHJlcGFyYXRpb24gZm9yIHRoZSBBTUNDIEFjYWRpYSBib2FyZCBzdXBwb3J0LgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBBY2FkaWEvNDA1RVogc3VwcG9ydCBpcyBzdGlsbCBpbiBhIGJldGEgc3RhZ2UuCiAgICBTdGlsbCBsb3QncyBvZiBjbGVhbnVwIG5lZWRlZCBidXQgd2UgbmVlZCBhIHByZWxpbWluYXJ5IHJlbGVhc2Ugbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwN2U4MmNiMmUyODRhODkzZGY2NjkzZjJhMTMzN2FiMmM0N2JmNmExCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDA4OjQ1OjE3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFRRTTgyNzI6IGRvbnQgY2hhbmdlIHRoZSBiaXRzIGdpdmVuIGZyb20gdGhlIEhSQ1cKCQkgICAgIGZvciB0aGUgU0lVTUNSIGFuZCBCQ1IgUmVnaXN0ZXIuCgkJICAgICBGaXggdGhlIGNhbGN1bGF0aW9uIGZvciB0aGUgRUVwcm9tIFNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2NTQ1ODk4NzNkYmFmY2YxMDRkZmYxMzNjZTBkMDNhNDUwNmU5Y2MzCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVHVlIE1hciAyMCAxODoxNjoyNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTYxIEVaS0lUIGJvYXJkIHN1cHBvcnQKCmNvbW1pdCBhNjE1NGZkMWNmZDAyMGY2ZGE4NTI3ZTAzNjViMTAyMGExMWE3MWQwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAyMjo1NTo1OCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWlub3IgY2xlYW51cAoKY29tbWl0IDM4OWI2YmI1MGY3NDViZjUwMzhjZTAzMDMwMGQ4YTg1MTJlOTZmNzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDE5IDEzOjEwOjA4IDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGVkIFBPU1QgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZTcwOWJiYjI2MzZiNTY3MGE4ZjJiNTc1ZTEzOGViMWY1NTc3M2Y2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAwMToyNjoxMSAyMDA3ICswODAwCgogICAgW1BBVENIXSBBZGQgZmxhc2ggY2hpcCBNMjlXMzIwRVQvQiBzdXBwb3J0Cgpjb21taXQgMjZiZjdkZWNhMzY0YTViMzNmMzllOGYxNGRkZDNmNDA4MTM0NTAxNQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMDE6MjQ6NTIgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjUzNyBzdGFtcCBib2FyZCBzdXBwb3J0Cgpjb21taXQgODQyM2U1ZTMxYTcyMzVkMDVhNDgyNjI3MzE1ZmIxMWQ0OWMxN2JkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAxNiAyMToxMTo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVc2UgZHluYW1pYyBTRFJBTSBUTEIgc2V0dXAgb24gQU1DQyBFYm9ueSBldmFsIGJvYXJkCgogICAgRGVmaW5lIENPTkZJR19QUk9HX1NEUkFNX1RMQiBzbyB0aGF0IHRoZSBUTEIgZW50cmllcyBmb3IgdGhlCiAgICBERFIgbWVtb3J5IGFyZSBkeW5hbWljYWxseSBwcm9ncmFtbWVkIG1hdGNoaW5nIHRoZSB0b3RhbCBzaXplCiAgICBvZiB0aGUgZXF1aXBwZWQgbWVtb3J5IChESU1NIG1vZHVsZXMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NmQxNDY2ZjkxOGI4ODFjZGEyZDI1OTI1NDc2MWU3Mzg4NTA5M2MyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBNYXIgMTMgMTM6Mzg6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gcmVuYW1lZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAnYWRkY29uJyB0byAnYWRkY29ucycgZm9yIFBDSTQwNQoJICAgIGJvYXJkcyBpbiB0ZXJtcyBvZiB1bmlmaWNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhNzA5MGI5OTNkM2Q0ZDIyMjFhYzNmMzNlNmNiMWQxYjJjY2M2YmYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMyAxNjowNTo1NSAyMDA3ICswMTAwCgogICAgTWFrZSBTQzMgYm9hcmQgYnVpbGQgd2l0aCAnbWFrZSBPPSc7IHVzZSAnYWRkY29ucycgY29uc2lzdGVudGx5CiAgICAoU0MzIGFuZCBKdXBpdGVyIHVzZWQgdG8gdXNlICdhZGRjb24nIGluc3RlYWQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgd2RAZGVueC5kZQoKY29tbWl0IDg1MDJlMzBhMjhlNDkyYzc1NmVhMmQ3ZGYwYWNlMDI2Mzg4ZmNlNGIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTMgMDk6NDA6NTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gdXBkYXRlIGJvYXJkIGNvbmZpZyBmb3IganVwaXRlciBCb2FyZDoKCSAgICBhZGRlZCBIdXNoIFNoZWxsLAoJCSAgQ09ORklHX0NNRExJTkVfRURJVElORywKCQkgIENGR19FTlZfQUREUl9SRURVTkQgYWN0aXZhdGVkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMGQ5M2RlMTE0NDkzOTBhNTk4NGIwMjM2YzM2MTJlNTBmNmRiYjdlOApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMTI6MTE6NTUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbm9yIGNsZWFudXAKCmNvbW1pdCBiZmE1NzU0YTU4NDc3YWM5MTdkMjE1MjdjZDBmMDc5ZDg3Y2YxODhlCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAwMTo0MjowNiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IEJVSUxEX0RJUiBvcHRpb24gb2YgTUFLRUFMTCBidWlsZGluZyBpc3N1ZQoKY29tbWl0IDg0NDBiYjE0NTgxYTI5NDM3NWMzNGI5MWI0MjUxMmY5NzUzZDExMzAKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDAwOjI1OjE0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjb2RlIGNsZWFudXAKCmNvbW1pdCBjZmM2NzExNmE3MDZmZDE4YjhmNmE5YzExYTE2NzUzYzU2MjZkNjg5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gTWFyIDExIDEzOjQ4OjI0IDIwMDcgKzAxMDAKCiAgICBbTWljcm9ibGF6ZV1bUEFUQ0hdIHBhcnQgMgogICAgdGltZXIgc3VwcG9ydAogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc3VwcG9ydAogICAgZmxhc2ggc3VwcG9ydAogICAgZXRoZXJuZXQgc3VwcG9ydAogICAgY2FjaGUgc3VwcG9ydAogICAgYm9hcmQgaW5mb3JtYXRpb24gc3VwcG9ydAogICAgZW52IHN1cHBvcnQKICAgIGJvb3RpbmcgaW1hZ2Ugc3VwcG9ydAoKICAgIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggTUw0MDEKCmNvbW1pdCA3NjMxNmEzMThkZTkxZjYxODRlN2MyMmExMGUwMmQyNzVhZGUyNDQxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gTWFyIDExIDEzOjQyOjU4IDIwMDcgKzAxMDAKCiAgICBbTWljcm9ibGF6ZV1bUEFUQ0hdCiAgICB0aW1lciBzdXBwb3J0CiAgICBpbnRlcnJ1cHQgY29udHJvbGxlciBzdXBwb3J0CiAgICBmbGFzaCBzdXBwb3J0CiAgICBldGhlcm5ldCBzdXBwb3J0CiAgICBjYWNoZSBzdXBwb3J0CiAgICBib2FyZCBpbmZvcm1hdGlvbiBzdXBwb3J0CiAgICBlbnYgc3VwcG9ydAogICAgYm9vdGluZyBpbWFnZSBzdXBwb3J0CgogICAgYWRkaW5nIHN1cHBvcnQgZm9yIFhpbGlueCBNTDQwMQoKY29tbWl0IDhkYjEzZDYzMTU3ODExYzgzOWQxNWEzMTNkOWYyZDJmNWZkMTBhZjMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDEwIDIzOjQ5OjI5IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjb2RlIGNsZWFudXAKCmNvbW1pdCBlZjI2YTA4ZmVmOTI4YjdiYzExYWUyYzEwOWU2MzhkYzNhMDE2ZDkxCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIE1hciA5IDEzOjQwOjU2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENILTIvMl0gQ29tbW9uIGZpbGVzIGNoYW5nZWQgdG8gc3VwcG9ydCBiZjUzMyBwbGF0Zm9ybQoKY29tbWl0IDNmMDYwNmFkMGI1NjM5ZjdmMjI4NDhmZTViNDU3NGU3NTRkMDQ3MGYKQXV0aG9yOiBBdWJyZXkuTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglGcmkgTWFyIDkgMTM6Mzg6NDQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1QQVRDSC0xLzJdOiBSZW1vdmUgb2Jzb2xldGUgYmxhY2tmaW4gcG9ydCBhbmQgYWRkIGJmNTMzIHBsYXRmb3JtIHN1cHBvcnQKCmNvbW1pdCA5OTI0MjNhYjQzYzJiY2Y2YjcwNDg1M2JkMDBhZjc3NDUwOTE1ZTIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjM6MDA6MDggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGZpbGUgbW9kZSBvZiBzZXF1b2lhLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWI5MmY2MTM1NTY4MDBmNzQ4MzY2NmRiMDlkOWEyMzdhZDkxMWQ0YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjI6NTI6NTEgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNsZWFudXAuCgpjb21taXQgOGNlMTZmNTVjN2I5NzUyYWYzZDhiZWQ4NDUyMWFlYzUzMzdlMmRlMQpBdXRob3I6IEpvaG4gT3RrZW4gam9obkBzb2Z0YWR2YW5jZXMuY29tIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+CkRhdGU6CVRodSBNYXIgOCAwOTozOTo0OCAyMDA3IC0wNjAwCgogICAgcHBjNHh4OiBDbGVhciBTZXF1b2lhL1JhaW5pZXIgc2VjdXJpdHkgZW5naW5lIHJlc2V0IGJpdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIE90a2VuIGpvaG5Ac29mdGFkdmFuY2VzLmNvbSA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgoKY29tbWl0IDY1MGEzMzBkZDI1MzkxMzBjOGMzMjQ3OTFlMmY5Zjc1YWVkNzlkNGUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjI2OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogYWRkIHNvbWUgbW9yZSBTUEQgZWVwcm9tIGRlY29kaW5nIGZvciBERFIyIG1vZHVsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkOWZjNzAzMjQ2ODQwYzRiMjY4ZGViZjQ4YzMzNGJhNTVjNTk3ZGMwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyNTo0NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IGRpc2FibGUgZmxhdCBpMmMgY29tbWFuZHMgd2hlbiBDT05GSUdfSTJDX0NNRF9UUkVFIGlzIGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjZWQ1YjkwMjkwNDMzOTczNDhjZGM4OGUwY2ZjZDZiMWY2MjkyNTBiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyMzoxMSAyMDA3ICswMTAwCgogICAgW1BBVENIXSA0eHg6IGFsbG93IENPTkZJR19JMkNfQ01EX1RSRUUgd2l0aG91dCBDT05GSUdfSTJDX01VTFRJX0JVUwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGQ4YThlYTVjNDc2ZDM3MDA2ZmM3Zjg1YjdmOTAzMTQyNzk1YzhiMTQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjIwOjMyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIG1pc3NpbmcgZGVmYXVsdCBDRkdfU1BEX0JVU19OVU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmOWZjNmE1ODUyYTYzMzU4NDA4ODJmYTIxMTE5MjUwMTBlZWExYWJlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBNYXIgNyAxNTozMjowMSAyMDA3ICswMTAwCgogICAgZml4ZWQgZXRoZXJuZXQgcGh5IGNvbmZpZ3VyYXRpb24gZm9yIHBsdTQwNSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDc2OTEwNGM5MzU2NTk0ZGViMjA5MmUyMDRhMzljMDViMzMyMDJkNmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIxOjQ5OjI3IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjbGVhbnVwCgpjb21taXQgMDBjZGI0Y2U1ZTFiNDIyNDhlN2U2NTIyYWQwZGEzNDIxYjk4OGFmYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDEwOjEzOjE2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIEx1YW4gNDQwU1AgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEFNQ0MgTHVhbiBub3cgdXNlcyB0aGUgY29tbW9uIDQ0MFNQKGUpIEREUiBTUEQgY29kZSBmb3IgRERSCiAgICBpbml0aXRpYWxpeml0aW9uLiBUaGlzIGluY2x1ZGVzIEREUiBhdXRvIGNhbGlicmF0aW9uIGFuZCBzdXBwb3J0CiAgICBmb3IgZGlmZmVyZW50IERJTU0gbW9kdWxlcywgaW5zdGVhZCBvZiB0aGUgZml4ZWQgc2V0dXAgdXNlZCBpbgogICAgdGhlIGVhcmxpZXIgdmVyc2lvbi4KCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyB0aGUgY2FjaGUgaW4gRkxBU0ggZm9yIHRoZSBzdGFydHVwCiAgICBwaGFzZSBvZiBVLUJvb3QgKHdoaWxlIHJ1bm5pbmcgZnJvbSBGTEFTSCkuIEFmdGVyIHJlbG9jYXRpbmcgdG8KICAgIFNEUkFNIHRoZSBjYWNoZSBpcyBkaXNhYmxlZCBhZ2Fpbi4gVGhpcyB3aWxsIHNwZWVkIHVwIHRoZSBib290CiAgICBwcm9jZXNzLCBlc3BlY2lhbGx5IHRoZSBTRFJBTSBzZXR1cCwgc2luY2UgdGhlcmUgYXJlIHNvbWUgbG9vcHMKICAgIGZvciBtZW1vcnkgdGVzdGluZyAoYXV0byBjYWxpYnJhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJmNWRmNDczNTE5MTBhMjkzNmM3NzQxY2YxMTE4NTU4MjkyMDA5NDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDoxMDoxOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBZdWNjYSA0NDBTUGUgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEFNQ0MgWXVjY2Egbm93IHVzZXMgdGhlIGNvbW1vbiA0NDBTUChlKSBERFIgU1BEIGNvZGUgZm9yIEREUgogICAgaW5pdGl0aWFsaXppdGlvbi4gVGhpcyBpbmNsdWRlcyBERFIgYXV0byBjYWxpYnJhdGlvbiBhbmQgc3VwcG9ydAogICAgZm9yIGRpZmZlcmVudCBESU1NIG1vZHVsZXMsIGluc3RlYWQgb2YgdGhlIGZpeGVkIHNldHVwIHVzZWQgaW4KICAgIHRoZSBlYXJsaWVyIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI3MjFhNjhhOWVhOTFmMWU0OTQ2NDljZTY4YjI1NzcyNjFmNTc4ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDowNzoxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBTbWFsbCBBTUNDIEthdG1haSA0NDBTUGUgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmMjk0NDk3NDc5YjFkY2E2ZGQ4NjMxOGIyYTkxMmY3MmZlZGUwZGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDowNjowOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDQwU1AvNDQwU1BlIEREUiBTUEQgc2V0dXAgY29kZSB0byBzdXBwb3J0IDQ0MFNQCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzODUzMTc4YmQzNmJjYTZmMGY4ZjEzMzE0NzY2MjBjODRhNTg3ZmMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDcgMTI6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIG5ldCAtIFN1cHBvcnQgcGluZyByZXBseSB3aGVuIHByb2Nlc3NpbmcgbmV0LWxvb3AKCiAgICBBZGQgSUNNUF9FQ0hPX1JFUVVFU1QgcGFja2V0IHN1cHBvcnQgYnkgcmVzcG9uZGluZyB3aXRoIGEgSUNNUF9FQ0hPX1JFUExZLgoKICAgIFRoaXMgcGVybWl0cyB0aGUgcGluZyBjb21tYW5kIHRvIHRlc3QgdGhlIHBoeSBpbnRlcmZhY2Ugd2hlbiB0aGUgcGh5CiAgICBpcyBwdXQgaW4gbG9vcGJhY2sgbW9kZSAodHlwaWNhbGx5IGJ5IHNldHRpbmcgcmVnaXN0ZXIgMCBiaXQgMTQpLgoKICAgIEl0IGFsc28gYWxsb3dzIHRoZSBwb3J0IHRvIHJlc3BvbmQgdG8gYW4gZXh0ZXJuYWwgcGluZyB3aGVuIHUtYm9vdCBpcwogICAgcHJvY2Vzc2luZyBzb21lIG90aGVyIG5ldCBjb21tYW5kIChzdWNoIGFzIHRmdHApLiAgVGhpcyBpcyB1c2VmdWwgd2hlbgogICAgdGZ0cCBhcHBlYXJzIHRvIGhhbmcuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGZhMWFlZjE1YmNkNDc3MzY2ODdiZTFhZjU0NDUwNmU5MGZiYTU0NWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjo0MzowMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVc2UgZHluYW1pYyBTRFJBTSBUTEIgc2V0dXAgb24gQU1DQyBPY290ZWEgZXZhbCBib2FyZAoKICAgIERlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgc28gdGhhdCB0aGUgVExCIGVudHJpZXMgZm9yIHRoZQogICAgRERSIG1lbW9yeSBhcmUgZHluYW1pY2FsbHkgcHJvZ3JhbW1lZCBtYXRjaGluZyB0aGUgdG90YWwgc2l6ZQogICAgb2YgdGhlIGVxdWlwcGVkIG1lbW9yeSAoRElNTSBtb2R1bGVzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTJlYmU2OTY4MTg5MzllMmI5NzQ2MjhiZTljOTIxZWEzZmU5ZGUxMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjM5OjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBBTUNDIDQ0eCBTUEQgU0RSQU0gaW5pdCBjb2RlIHRvIHN1cHBvcnQgMiBESU1NJ3MKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB0aGF0IG9jY3VycyB3aGVuIDIgRElNTSdzIGFyZQogICAgdXNlZC4gVGhpcyBwcm9ibGVtIHdhcyBmaXJzdCBzcG90dGVkIGFuZCBmaXhlZCBieSBHZXJhbGQgSmFja3NvbgogICAgPGdlcmFsZC5qYWNrc29uQHJlYW9uaXhzZWN1cml0eS5jb20+IGJ1dCB0aGlzIHBhdGNoIGZpeGVzIHRoZQogICAgcHJvYmxlbSBpbiBhIGxpdHRsZSBtb3JlIGNsZXZlciB3YXkuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgdGhlIG5pY2UgZnVuY3Rpb25hbGl0eSB0byBkeW5hbWljYWxseQogICAgY3JlYXRlIHRoZSBUTEIgZW50cmllcyBmb3IgdGhlIFNEUkFNICh0bGIuYykuIFNvIHdlIHNob3VsZAogICAgbmV2ZXIgcnVuIGludG8gc3VjaCBwcm9ibGVtcyB3aXRoIHdyb25nICh0b28gc2hvcnQpIFRMQgogICAgaW5pdGlhbGl6YXRpb24gYWdhaW4gb24gdGhlc2UgcGxhdGZvcm1zLgoKICAgIEFzIHRoaXMgZmVhdHVyZSBpcyBuZXcgdG8gdGhlICJvbGQiIDQ0eCBTUEQgRERSIGRyaXZlciwgaXQKICAgIGhhcyB0byBiZSBlbmFibGVkIHZpYSB0aGUgQ09ORklHX1BST0dfU0RSQU1fVExCIGRlZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzkyMTg0MzM5ODM0MTdiOWRmMDg3OTc2YTc5ZTNmODBkZDVlODNkNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjozMzo0NCAyMDA3ICswMTAwCgogICAgVUMxMDE6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDhkN2UyNzMyMjIxYmMyZDY0ZGYxNGY3MDBjNjRjMjNlMGE0YzNkY2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjE5OjQ2IDIwMDcgKzAxMDAKCiAgICBITUkxMDAxOiBmaXggYnVpbGQgZXJyb3IsIGNsZWFudXAgY29tcGlsZXIgd2FybmluZ3MuCgpjb21taXQgYWQ1YmI0NTFhZGU1NTJjNDRiZWY5MTE5ZDkwNzkyOWViYzJjMTI2ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMTg6MDg6NDMgMjAwNyArMDEwMAoKICAgIFJlc3RydWN0dXJlIFBPU1QgZGlyZWN0b3J5IHRvIHN1cHBvcnQgb2Ygb3RoZXIgQ1BVcywgYm9hcmRzLCBldGMuCgpjb21taXQgYTUyODRlZmQxMjU5Njc2NzViMmU5YzZlZjdiOTU4MzIyNjhhZDM2MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMTg6MDE6NDcgMjAwNyArMDEwMAoKICAgIEZpeCBIT1NUQVJDSCBoYW5kbGluZy4KICAgIFBhdGNoIGJ5IE1pa2UgRnJ5c2luZ2VyLCBNYXIgMDUgMjAwNwoKY29tbWl0IDA3YjdiMDAzN2FhYzUxMDI5Mzk5MTdkN2NiZTU2MWI1YzBkNWFhNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNiAwNzo0NzowNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTcGVlZCBvcHRpbWl6YXRpb24gb2YgQU1DQyBTZXF1b2lhL1JhaW5pZXIgRERSMiBzZXR1cAoKICAgIEFzIHByb3ZpZGVkIGJ5IHRoZSBBTUNDIGFwcGxpY2F0aW9ucyB0ZWFtLCB0aGlzIHBhdGNoIG9wdGltaXplcyB0aGUKICAgIEREUjIgc2V0dXAgZm9yIDE2Nk1IeiBidXMgc3BlZWQuIFRoZSB2YWx1ZXMgcHJvdmlkZWQgYXJlIGFsc28gc2F2ZQogICAgdG8gdXNlIG9uIGEgIm5vcm1hbCIgMTMzTUh6IFBMQiBidXMgc3lzdGVtLiBPbmx5IHRoZSByZWZyZXNoIGNvdW50ZXIKICAgIHNldHVwIGhhcyB0byBiZSBhZGp1c3RlZCBhcyBkb25lIGluIHRoaXMgcGF0Y2guCgogICAgRm9yIHRoaXMgdGhlIE5BTkQgYm9vdGluZyB2ZXJzaW9uIGhhZCB0byBpbmNsdWRlIHRoZSAic3BlZWQuYyIgZmlsZQogICAgZnJvbSB0aGUgY3B1L3BwYzR4eCBkaXJlY3RvcnkuIFdpdGggdGhpcyBhZGRpdGlvbiB0aGUgTkFORCBTUEwgaW1hZ2UKICAgIHdpbGwganVzdCBmaXQgaW50byB0aGUgNGtieXRlcyBvZiBwcm9ncmFtIHNwYWNlLiBnY2MgdmVyc2lvbiA0LnggYXMKICAgIHByb3ZpZGVkIHdpdGggRUxESyA0LnggaXMgbmVlZGVkIHRvIGdlbmVyYXRlIHRoaXMgb3B0aW1pemVkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0N2QzYzNlZWQwZGExZDE1MDVlZWNhYmUwYjBmYWI5NmY5NTZlNjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE1hciA0IDAxOjM2OjA1IDIwMDcgKzAxMDAKCiAgICBTb21lIGNvZGUgY2xlYW51cC4KCmNvbW1pdCA3ODFlMDI2YzhhYTZmN2U5ZWI1ZjBlNzJjYzRkMjA5NzEyMTliMTQ4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyOCAwMDowMjowNCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmdF9nZXRfcHJvcCcgd2FybmluZ3MKCiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIGM1YmYxM2IwMjI4NGMzMjA0YTcyMzU2NmE5YmFiNzAwZTUwNTk2NTkgY29tbWl0KQoKY29tbWl0IDRmZWFiNGRlN2JmYzJjYjJmZWQzNmFkNzZmOTNjM2E2OTY1OWJiYWYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDI3IDIzOjUxOjQyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggY29uZmlnIG9mIEFyYml0ZXIsIFN5c3RlbSBQcmlvcml0eSwgYW5kIENsb2NrIE1vZGUKCiAgICBUaGUgY29uZmlnIHZhbHVlIGZvcjoKICAgICogQ0ZHX0FDUl9QSVBFX0RFUAogICAgKiBDRkdfQUNSX1JQVENOVAogICAgKiBDRkdfU1BDUl9UU0VDMUVQCiAgICAqIENGR19TUENSX1RTRUMyRVAKICAgICogQ0ZHX1NDQ1JfVFNFQzFDTQogICAgKiBDRkdfU0NDUl9UU0VDMkNNCgogICAgV2VyZSBub3QgYmVpbmcgdXNlZCB3aGVuIHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyCgogICAgQWRkZWQ6CiAgICAqIENGR19TQ0NSX1VTQk1QSENNCiAgICAqIENGR19TQ0NSX1VTQkRSQ00KICAgICogQ0ZHX1NDQ1JfUENJQ00KICAgICogQ0ZHX1NDQ1JfRU5DQ00KCiAgICBUbyBhbGxvdyBmdWxsIGNvbmZpZyBvZiB0aGUgU0NDUi4KCiAgICBBbHNvIHJlbW92ZWQgcmFuZG9tIENGR19TQ0NSIHNldHRpbmdzIGluIE1QQzgzNDlFTURTLCBUUU04MzR4LCBhbmQgc2JjODM0OQogICAgdGhhdCB3ZXJlIGp1c3QgYm9ndXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkNTFiM2NmMzcxY2Q0NDEwMzA0NjBlZjE5ZDM2YjI5MjRjMzYxYjFhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEZlYiAyMiAyMDowNjo1NyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogdXBkYXRlIFtsb2NhbC1dbWFjLWFkZHJlc3MgcHJvcGVydGllcyBvbiBVRUMgYmFzZWQgZGV2aWNlcwoKICAgIDgzNjAgYW5kIDgzMnggd2VyZW4ndCB1cGRhdGluZyB0aGVpciBbbG9jYWwtXW1hYy1hZGRyZXNzCiAgICBwcm9wZXJ0aWVzLiBUaGlzIHBhdGNoIGZpeGVzIHRoYXQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MWY0ZjkxMmFjYmU2MDc3NmM1ZTAwZGYxZWM5NDA5NGNlNjcyOTU3CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAxMyAxMDo0MTo0MiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogd3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIHRoaXMgcGF0Y2gKICAgIHVwZGF0ZXMgZnRwX2NwdV9zZXR1cCgpIHRvIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBpZiBpdCBleGlzdHMuCiAgICBUaGlzIGZ1bmN0aW9uIGFscmVhZHkgdXBkYXRlcyBsb2NhbC1tYWMtYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyZDcxYTcxZjU3ZmQ1ZDM4YjI3YWMzODQ4ZTUwZDc5MDM2MGE1OTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDI3IDE4OjQxOjA4IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgY29tbWFuZCBsaW5lIGVkaXRpbmcgYnkgZGVmYXVsdAoKY29tbWl0IDNmYzBiZDE1OTEwM2I1MzZlMWM1NGM2ZjQ0NTdhMDliM2FiYTY2Y2EKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE0IDE5OjUwOjUzIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBEaXNhYmxlIEcxVFhDTEssIEcyVFhDTEsgaC93IGJ1ZmZlcnMKCiAgICBEaXNhYmxlIEcxVFhDTEssIEcyVFhDTEsgaC93IGJ1ZmZlcnMuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIGEgbmV0d29ya2luZyB0aW1lb3V0IGlzc3VlIHdpdGggTVBDODM2MEVBIChSZXYuMikgUEJzLgoKICAgIFZlcmlmaWVkIG9uIFJldi4gMS4xLCBSZXYuIDEuMiwgYW5kIFJldi4gMi4wIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRW1pbGlhbiBNZWR2ZSA8RW1pbGlhbi5NZWR2ZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2MTg1M2NmMjQ3MmUwYjhiY2JkMTMxNDYxYTkzZDFjNDlmZjBjMWYKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNzoxNyAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIEREUjIgY29udHJvbGxlciBmaXhlZC9TUEQgSW5pdCBmb3IgTVBDODN4eAoKICAgIFRoZSBjb2RlIHN1cHBseSBmaXhlZCBhbmQgU1BEIGluaXRpYWxpemF0aW9uIGZvciBNUEM4M3h4IEREUjIgQ29udHJvbGxlci4KICAgIGl0IHBhc3MgRERSL0REUjIgY29tcGxpYW5jZSB0ZXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvIDxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIxMTBmNDBiZDE4MGM2YjU2MDI3NjU4OWJlZWRmNzUzZTk3YzQ2Y2UKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNzowNiAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBjcHUgc3BlY2lmaWMgY29kZSBmb3IgTVBDODM2MEUgcmV2Mi4wIE1EUwoKICAgIE1QQzgzNjBFIHJldjIuMCBoYXZlIG5ldyBzcHJpZHIsYW5kIFBWUiB2YWx1ZSwKICAgIFRoZSBNRFMgYm9hcmQgZm9yIE1QQzgzNjBFIHJldjIuMCBoYXMgMzJNIGJ5dGVzIEZsYXNoIGFuZCAyNTZNIEREUjIgRElNTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvIDxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkMTcyYzBmMGQ4NTk5OGEyNTZhOTViNzQ1OWE1NDAzYTMwMzgwZWQKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNjo0NCAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBjcHUgYW5kIGJvYXJkIHNwZWNpZmljIGNvZGUgZm9yIE1QQzgzNDlFIHJldjMuMSBNRFMKCiAgICBNUEM4MzQ5RSByZXYzLjEgaGF2ZSBuZXcgc3ByaWRyLGFuZCBQVlIgdmFsdWUsCiAgICBUaGUgTURTIGJvYXJkIGZvciBNUEM4MzQ5RSByZXYzLjEgaGFzIDMyTSBieXRlcyBGbGFzaCBhbmQgMjU2TSBERFIyIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibzxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY2ZjVmNzA5ZTVjOGU0NTY0YzRkZmVlY2ZkZjIyNzkyNDRmOWM4M2IKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxqb2FraW0udGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJV2VkIEphbiAzMSAxMTowNDoxOSAyMDA3ICswMTAwCgogICAgbXBjODN4eDogRml4IGVtcHR5IGkyYyByZWFkcy93cml0ZXMgaW4gZnNsX2kyYy5jCgogICAgRml4IGVtcHR5IGkyYyByZWFkcy93cml0ZXMsIGkyY193cml0ZSgweDUwLCAweDAwLCAwLCBOVUxMLCAwKQogICAgd2hpY2ggaXMgdXNlZCB0byBzZSBpZiBhbiBzbGF2ZSB3aWxsIEFDSyBhZnRlciByZWNlaXZpbmcgaXRzIGFkZHJlc3MuCgogICAgQ29ycmVjdCBpMmMgcHJvYmluZyB0byB1c2UgdGhpcyBtZXRob2QgYXMgdGhlIG9sZCBtZXRob2QgY291bGQgdXBzZXQKICAgIGEgc2xhdmUgYXMgaXQgd3JvdGUgYSBkYXRhIGJ5dGUgdG8gaXQuCgogICAgQWRkIGEgc21hbGwgZGVsYXkgaW4gaTJjX2luaXQoKSB0byBsZXQgdGhlIGNvbnRyb2xsZXIKICAgIHNodXRkb3duIGFueSBvbmdvaW5nIEkyQyBhY3Rpdml0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCA3YTc4ZjE0OGQ2YTcyOThlNGZmYWNlNjgwZGM3ZWFjZDg3N2IxYWJhCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMSAxNTo1NDoyOSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYLUdQCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYLUdQLCBhIHN0cmlwcGVkLWRvd24gdmVyc2lvbiBvZiB0aGUKICAgIE1QQzgzNDlFLW1JVFguICBCb251cyBmZWF0dXJlcyBpbmNsdWRlIHN1cHBvcnQgZm9yIGxvdy1ib290IChCTVMgYml0IGluCiAgICBIUkNXIGlzIDApIGZvciB0aGUgSVRYIGFuZCBhIFJFQURNRSBmb3IgdGhlIElUWCBhbmQgdGhlIElUWC1HUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhYjE2ODA3YWRhZDM1MGY2MTgwMjQzNTBjNjk1MDE2NWMyNDdjNzIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMxIDE1OjU0OjIwIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBEZWxldGUgc2RyYW1faW5pdCgpIGZvciBNUEM4MzQ5RS1tSVRYCgogICAgVGhlcmUgaXMgbm8gU0RSQU0gb24gYW55IG9mIHRoZSA4MzQ5IElUWCB2YXJpYW50cywgc28gZnVuY3Rpb24gc2RyYW1faW5pdCgpCiAgICBuZXZlciBkb2VzIGFueXRoaW5nLiAgVGhpcyBwYXRjaCBkZWxldGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTg3Yzg1NmViNDExYjkzNjU5MzdkMGQ0YjljMjFlNDZhZGJlMWMxNApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTkgMTA6NDM6MjYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgTEFXMS8zIGJ1ZwoKICAgIFRoZSBwYXRjaCBzb2x2ZXMgdGhlIGFsaWdubWVudCBwcm9ibGVtIG9mIHRoZSBsb2NhbCBidXMgYWNjZXNzIHdpbmRvd3MgdG8KICAgIHJlbmRlciBhY2Nlc3NpYmxlIHRoZSBtZW1vcnkgYmFuayBhbmQgUEhZIHJlZ2lzdGVycyBvZiBVUEMgMSAoc3RhcnRpbmcgYXQKICAgIDB4ZjgwMSAwMDAwKS4gV2hhdCB3ZSBhY3R1YWxseSBkaWQgd2FzIHRvIGFkanVzdCB0aGUgc2l6ZXMgb2YgdGhlIGJ1cwogICAgYWNjZXNzIHdpbmRvd3Mgc28gdGhhdCB0aGUgYmFzZSBhZGRyZXNzIGFsaWdubWVudCByZXF1aXJlbWVudCB3b3VsZCBiZSBtZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQ2hlcmVqaSBNYXJpYW4gPG1hcmlhbi5jaGVyZWppQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmlkaXNoIFNobG9taSA8Z3JpZGlzaEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2M0YjM5N2RjZTIzNmE3MzE4YjMwNDY2N2JmODllNTlkMDhiMTdjCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNTozMSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZG9uJ3QgaGFuZyBpZiB3YXRjaGRvZyBjb25maWd1cmVkIG9uIDgzNjAsIDgzMngKCiAgICBkb24ndCBoYW5nIGlmIHdhdGNoZG9nIGNvbmZpZ3VyZWQgb24gODM2MCwgODMyeAoKICAgIFRoZSB3YXRjaGRvZyBwcm9ncmFtbWluZyBtb2RlbCBpcyB0aGUgc2FtZSBhY3Jvc3MgYWxsIDgzeHggZGV2aWNlczsKICAgIG1ha2UgdGhlIGNvZGUgcmVmbGVjdCB0aGF0LgoKY29tbWl0IGI3MDA0NzQ3ODU3MGUzNzFjZTcyMjNiZTM0MmNlOThhZmVhMGY3ZDYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjIxIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIGxvY2FsLW1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKICAgIHByb3RlY3QgbWVtY3B5IHRvIGJhZCBhZGRyZXNzIGlmIGEgbG9jYWwtbWFjLWFkZHJlc3MgaXMgbWlzc2luZyBmcm9tIGR0Cgpjb21taXQgNjc1MmVkMDg4Yzc1YzI2YTg5YjcwYzQ2YjczMjZhNGNkNjAxNWYyOQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MDQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IG1ha2UgODM2MCBkZWZhdWx0IGVudmlyb25tZW50IGZkdCBiZSA4MzYwIChub3QgODM0OSkKCiAgICBtYWtlIDgzNjAgZGVmYXVsdCBlbnZpcm9ubWVudCBmZHQgYmUgODM2MCAobm90IDgzNDkpCgpjb21taXQgYTI4ODk5YzkxMDAyNGEwMjI2MzMxZGYwNzIwN2IxMDM4YzMwMGM5MwpBdXRob3I6IEVtaWxpYW4gTWVkdmUgPEVtaWxpYW4uTWVkdmVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNDo1MCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRml4IGFsdGVybmF0aW5nIHR4IGVycm9yIC8gdHggYnVmZmVyIG5vdCByZWFkeSBidWcgaW4gUUUgVUVDCgogICAgVGhlIHByb2JsZW0gaXMgbm90IGdjYzQgYnV0IHRoZSBjb2RlIGl0c2VsZi4gVGhlIEJEX1NUQVRVUygpIG1hY3JvIGNhbid0CiAgICBiZSB1c2VkIGZvciBidXN5LXdhaXRpbmcgc2luY2UgaXQgc3RyaXBzIHRoZSAndm9sYXRpbGUnIHByb3BlcnR5IGZyb20KICAgIHRoZSBiZCB2YXJpYWJsZS4gZ2NjMyB3YXMgd29ya2luZyBieSBwdXJlIGx1Y2suCgogICAgVGhpcyBpcyBhIGZvbGxvdyBvbiBwYXRjaCB0byAiRml4IHRoZSBVRUMgZHJpdmVyIGJ1ZyBvZiBRRSIKCmNvbW1pdCAzZTc4YTMxY2ZlM2QzMDIyZjQ2ZjY3ZWI4OGUxMjgxZDVjYzJlYjg5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEphbiAzMCAxNDowODozMCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogUmVwbGFjZSBDT05GSUdfTVBDODM0OSBhbmQgdXNlIENPTkZJR19NUEM4MzRYIGluc3RlYWQKCiAgICBUaGUgY29kZSB0aGF0IGlzIGlmZGVmJ2Qgd2l0aCBDT05GSUdfTVBDODM0OSBpcyBhY3R1YWxseSBhcHBsaWNhYmxlIHRvIGFsbAogICAgTVBDODM0WCBjbGFzcyBwcm9jZXNzb3JzLiAgQ2hhbmdlIHRoZSBwcm90ZWN0aW9ucyBmcm9tIENPTkZJR19NUEM4MzQ5IHRvCiAgICBDT05GSUdfTVBDODM0WCBzbyB0aGV5IGFyZSBtb3JlIGdlbmVyaWMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhZTI0NmRjNmMxOTM3YzI5MTAxNGVhZGQ5MGI2ZDQ4YzQzOGM3Y2IwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAyNSAxMzo0MDo1NSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogYWRkIE1QQzgzMlhFTURTIGFuZCBzYmM4MzQ5IHRvIE1BS0VBTEwKCmNvbW1pdCA0ZGVjZDg0ZThmMDQyNzljNWNmZmY3ZjhlOTA3NDY1ZWY4ZDhhM2ZiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyNCAxNzoxODozNyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogc29ydCBNYWtlZmlsZSB0YXJnZXRzCgogICAgcmVvcmRlcmVkIHRhcmdldHMgYWxwaGFiZXRpY2FsbHkKCmNvbW1pdCA5MWUyNTc2OTc3MWMxMTY0ZWQ2M2ZmY2EwYWRkNDlmOTM0YWUzMzQzCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVR1ZSBKYW4gMTYgMTE6Mzg6MTQgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IFUtQm9vdCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyIFNCQzgzNDkKCiAgICBJJ3ZlIHJlZG9uZSB0aGUgU0JDODM0OSBzdXBwb3J0IHRvIG1hdGNoIGdpdC1jdXJyZW50LCB3aGljaAogICAgaW5jb3Jwb3JhdGVzIGFsbCB0aGUgTVBDODM0eCB1cGRhdGVzIGZyb20gRnJlZXNjYWxlIHNpbmNlIHRoZSAxLjEuNgogICAgcmVsZWFzZSwgIGluY2x1ZGluZyB0aGUgRERSIGNoYW5nZXMuCgogICAgSSd2ZSBrZXB0IGFsbCB0aGUgU0JDODM0OSBmaWxlcyBhcyBwYXJhbGxlbCBhcyBwb3NzaWJsZSB0byB0aGUKICAgIE1QQzgzNDlFTURTIG9uZXMgZm9yIGVhc2Ugb2YgbWFpbnRlbmFuY2UgYW5kIHRvIGFsbG93IGZvciBlYXN5CiAgICBpbnNwZWN0aW9uIG9mIHdoYXQgd2FzIGNoYW5nZWQgdG8gc3VwcG9ydCB0aGlzIGJvYXJkLiAgSGVuY2UgdGhlIFNCQzgzNDkKICAgIFUtQm9vdCBoYXMgRkRUIHN1cHBvcnQgYW5kIGV2ZXJ5dGhpbmcgZWxzZSB0aGF0IHRoZSBNUEM4MzQ5RU1EUyBoYXMuCgogICAgRm9ydHVuYXRlbHkgdGhlIEZyZWVzY2FsZSB1cGRhdGVzIGFkZGVkIHN1cHBvcnQgZm9yIGJvYXJkcyB1c2luZyBDUzAsCiAgICBidXQgSSBoYWQgdG8gY2hhbmdlIHNwZF9zZHJhbS5jIHRvIGFsbG93IGZvciBib2FyZCBzcGVjaWZpYyBzZXR0aW5ncyBmb3IKICAgIHRoZSBzZHJhbV9jbGtfY250bCAoaXQgaXMvd2FzIGhhcmQgY29kZWQgdG8gemVybywgYW5kIHRoYXQgcmVtYWlucyB0aGUKICAgIGRlZmF1bHQgaWYgdGhlIGJvYXJkIGRvZXNuJ3Qgc3BlY2lmeSBhIHZhbHVlLikKCiAgICBIb3BlZnVsbHkgdGhpcyBzaG91bGQgYmUgbWVyZ2VhYmxlIGFzLWlzIGFuZCByZXF1aXJlIG5vIHdoaXRlc3BhY2UKICAgIGNsZWFudXBzIG9yIHNpbWlsYXIsIGJ1dCBpZiBzb21ldGhpbmcgZG9lc24ndCBtZWFzdXJlIHVwIHRoZW4gbGV0IG1lCiAgICBrbm93IGFuZCBJJ2xsIGZpeCBpdC4KCiAgICBUaGFua3MsCiAgICBQYXVsLgoKY29tbWl0IDA1MDMxZGI0NTZhYjIyN2YzZTM3NTJmMzdiOWI4MTJiNjViYjgzYWQKQXV0aG9yOiBTYW0gU29uZyA8c2Ftc29uZ3NodUB5YWhvby5jb20uY24+CkRhdGU6CVRodSBEZWMgMTQgMTk6MDM6MjEgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBhIHJlZHVuZGFudCBzZW1pY29sb24gaW4gbXBjODM0OWl0eC5jCgogICAgQSByZWR1bmRhbnQgc2VtaWNvbG9uIGV4aXN0ZWQgaW4gbXBjODM0OWl0eC5jCiAgICBzaG91bGQgYmUgcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU29uZyA8c2Ftc29uZ3NodUB5YWhvby5jb20uY24+Cgpjb21taXQgZjM1ZjM1ODI0MWM1NDliZTNmNzVjZmUyZWFhNjQyOTE0Mjc1YjdiYQpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z2VyYWxkLnZhbmJhcmVuQGNvbWNhc3QubmV0PgpEYXRlOglXZWQgRGVjIDYgMjE6MjM6NTUgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IFB1dCB0aGUgdmVyc2lvbiAoYW5kIG1hZ2ljKSBhZnRlciB0aGUgSFJDVy4KCiAgICBQdXQgdGhlIHZlcnNpb24gKGFuZCBtYWdpYykgYWZ0ZXIgdGhlIEhSQ1cuICBUaGlzIHB1dHMgaXQgaW4gYSBmaXhlZAogICAgbG9jYXRpb24gaW4gZmxhc2gsIG5vdCBhdCB0aGUgc3RhcnQgb2YgZmxhc2ggYnV0IGFzIGNsb3NlIGFzIHdlIGNhbiBnZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVycnkgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDQ4YWVjZDk2OTE3MWE2ZTk5YTU1ZmFlMDQ5MzM4NTc3ODdmOWE1YmQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxNDo1MSAyMDA2ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBNUEM4MzJYRU1EUyBib2FyZCByZWFkbWUKCiAgICBBZGQgdGhlIE1QQzgzMlhFTURTIGJvYXJkIHJlYWRtZQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjRjM2FjYTNmMTM1OGIxMTNkMzIxNWFkYjU0MzNiMTU2ZTk5ZjcyYgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjEzOjE1IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzMlhFTURTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBEVUFSVCwgRVRIMy80IGFuZCBQQ0kgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA4MDMxM2MzMjMyMmUxNWFiNWExOGViODk2YTI1Mjg1OGM1NzI4NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjExOjU4IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBzdHJlYW1saW5lIHRoZSA4M3h4IGltbXIgaGVhZCBmaWxlCgogICAgRm9yIGJldHRlciBmb3JtYXQgYW5kIHN0eWxlLCBJIHN0cmVhbWxpbmVkIHRoZSA4M3h4IGhlYWQgZmlsZXMsCiAgICBpbmNsdWRpbmcgaW1tYXBfODN4eC5oIGFuZCBtcGM4M3h4LmguIEluIHRoZSBvbGQgaGVhZCBmaWxlcywgMSkKICAgIGR1cGxpY2F0ZWQgbWFjcm8gZGVmaW5pdGlvbiBhcHBlYXIgaW4gdGhlIGJvdGggZmlsZXM7IDIpIHRoZSBzdHJ1Y3R1cmUKICAgIG9mIFFFIGltbXIgaXMgZHVwbGljYXRlZCBpbiB0aGUgaW1tYXBfODN4eC5oIGFuZCBpbW1hcF9xZS5oOyAzKSBUaGUKICAgIG1hY3JvIGRlZmluaXRpb24gcHV0IGluc2lkZSB0aGUgZWFjaCBzdHJ1Y3R1cmUuIFNvLCBJIGNsZWFuZWQgdXAgdGhlCiAgICBzdHJ1Y3R1cmUgb2YgUUUgaW1tciBmcm9tIGltbWFwXzgzeHguaCwgZGVsZXRlZCB0aGUgZHVwbGljYXRlZCBzdHVmZiBhbmQKICAgIG1vdmVkIHRoZSBtYWNybyBkZWZpbml0aW9uIHRvIG1wYzgzeHguaCwgSnVzdCBsaWtlIE1QQzgyNjAuCgogICAgQ0hBTkdFTE9HCgogICAgKnN0cmVhbWxpbmUgdGhlIDgzeHggaW1tciBoZWFkIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZDAyNDkyZjQzZGI1NDA4ZjVhYjlmODIzYjBiYTU3OTZlMjhlZjAKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgNiAxMTozODoxNyAyMDA2ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBVRUMgZHJpdmVyIGJ1ZyBvZiBRRQoKICAgIFRoZSBwYXRjaCBwcmV2ZW50cyB0aGUgR0NDIHRvb2wgY2hhaW4gZnJvbSBzdHJpcGluZyB1c2VmdWwgY29kZSBmb3IKICAgIG9wdGltaXphdGlvbi4gSXQgd2lsbCBtYWtlIFVFQyBldGhlcm5ldCBkcml2ZXIgd29ya2FibGUsIE90aGVyd2lzZSB0aGUKICAgIFVFQyB3aWxsIGZhaWwgaW4gdHggd2hlbiB5b3UgYXJlIHVzaW5nIGdjYzQueC4gYnV0IHRoZSBkcml2ZXIgY2FuIHdvcmsKICAgIHdoZW4gdXNpbmcgZ2NjMy40LjMuCgogICAgQ0hBTkdFTE9HCgogICAgKlByZXZlbnQgdGhlIEdDQyBmcm9tIHN0cmlwaW5nIGNvZGUgZm9yIG9wdGltaXphdGlvbiwgT3RoZXJ3aXNlIHRoZSBVRUMKICAgIHdpbGwgdHggZmFpbGVkIHdoZW4geW91IGFyZSB1c2luZyBnY2M0LnguCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTU4ZTRjOWE5YTkxN2NlNzk1ZGQxNmQ0ZWM4ZDUxNWY5ZjdhYTM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEgMjE6MTE6MzYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgS2F0bWFpIDQ0MFNQZSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHJlY2VudGx5IGFkZGVkIEthdG1haSBib2FyZCBzdXBwb3J0LiBUaGUgYmlnZ2VzdAogICAgY2hhbmdlIGlzIHRoZSBzdXBwb3J0IG9mIEVDQyBESU1NIG1vZHVsZXMgaW4gdGhlIDQ0MFNQKGUpIFNQRCBERFIyCiAgICBkcml2ZXIuCgogICAgUGxlYXNlIG5vdGUsIHRoYXQgc3RpbGwgc29tZSBwcm9ibGVtcyBhcmUgbGVmdCB3aXRoIHNvbWUgbWVtb3J5CiAgICBjb25maWd1cmF0aW9ucy4gU2VlIHRoZSBkcml2ZXIgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGMxMjA0NWEzYjA2YzViNjY3NWQzZmUwMmZiYzlmNTQ1OTg4MTI5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxIDA3OjAzOjI1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIG1pc3NpbmcgZGVmYXVsdCBDRkdfUlRDX0JVU19OVU0gJiBDRkdfRFRUX0JVU19OVU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2NiYzcwMzY2NDhlNDY1Njk3Y2EyOThiYTUxZTBlNzZkZGEzNTJhMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRmViIDI4IDAxOjI4OjUzIDIwMDcgKzAxMDAKCiAgICBTQzM6IGZpeCB0eXBvIGluIGRlZmF1bHQgZW52aXJvbm1lbnQKCmNvbW1pdCBlMzQ0NTY4YjFiNDZhZjg1ZWMzMmQ4MTU1ODZmOTFiYzExNWQ2MjIzCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAyMDoxNTozMCAyMDA3ICswMzAwCgogICAgTUNDMjAwOiBGaXhlcyBmb3IgdXBkYXRlIHByb2NlZHVyZQoKICAgIC0gZml4IGxvZ2ljIGVycm9yIGluIGltYWdlIHR5cGUgaGFuZGxpbmcKICAgIC0gbWFrZSBzdXJlIGZpbGUgc3lzdGVtIGltYWdlcyAoY3JhbWZzIGV0Yy4pIGdldCBzdG9yZWQgaW4gZmxhc2gKICAgICAgd2l0aCBpbWFnZSBoZWFkZXIgc3RyaXBwZWQgc28gdGhleSBjYW4gYmUgbW91bnRlZCB0aHJvdWdoIE1URAoKY29tbWl0IDc0MzU3MTE0NWIzNzE4Mjc1N2Q0ZTY4OGE3Nzg2MGIzNmVlNzc1NzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNyAxNDoyNjowNCAyMDA3ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IDYzOGRkMTQ1OGJiZGMyYTU1ZDRiOWUyNWM1YzRlMWY4MzhhNWRjNzIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgRmViIDI3IDEyOjQwOjE2IDIwMDcgKzAzMDAKCiAgICBNQ0MyMDAgdXBkYXRlIC0gYWRkIExDRCBQcm9ncmVzcyBJbmRpY2F0b3IKCmNvbW1pdCA2YzdjYWM4YzRmY2UwZWEyYmY4ZTE1ZWQ4NjU4ZDg3OTc0MTU1YjQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIyIDA3OjQzOjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIGdldF9kZXYoKSBub3cgdW5jb25kaXRpb25hbGx5IHVzZXMgbWFudWFsIHJlbG9jYXRpb24KCiAgICBTaW5jZSB0aGUgcmVsb2NhdGlvbiBmaXggaXMgbm90IGluY2x1ZGVkIHlldCBhbmQgd2UncmUgbm90IHN1cmUgaG93CiAgICBpdCB3aWxsIGJlIGFkZGVkLCB0aGlzIHBhdGNoIHJlbW92ZXMgY29kZSB0aGF0IHJlcXVpcmVkIHJlbG9jYXRpb24KICAgIHRvIGJlIGZpeGVkIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyNzRlYzBiZDAxZDJmZWIyYzdmMDk1ZWJhNzhkNDJlYTAwOTc5OGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjIgMDc6NDA6MjMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIHN5c3RlbWFjZSBkcml2ZXIgdG8gc2VsZWN0IDggJiAxNmJpdCBtb2RlCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEdyYW50IExpa2VseSB0aGlzIHBhdGNoIGVuYWJsZXMgdGhlIFhpbGlueCBTeXN0ZW1BQ0UKICAgIGRyaXZlciB0byBzZWxlY3QgOCBvciAxNmJpdCBtb2RlIHVwb24gc3RhcnR1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2ExOTdiMmZlNDlkNmZhMDM5NzhlNjBhZjIzOTRlZmU5YzcwYjUyNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjEgMTY6NTI6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSCB2M10gQWRkIHN5bmMgdG8gZW5zdXJlIGZsYXNoX3dyaXRlX2NtZCBpcyBmdWxseSBmaW5pc2hlZAoKICAgIFNvbWUgQ1BVcyBsaWtlIFBQQywgQkxBQ0tGSU4gbmVlZCBzeW5jKCkgdG8gZW5zdXJlIGNmaSBmbGFzaCB3cml0ZSBjb21tYW5kCiAgICBpcyBmdWxseSBmaW5pc2hlZC4gVGhlIHN5bmMoKSBpcyBkZWZpbmVkIGluIGVhY2ggQ1BVJ3MgaW8uaCBmaWxlLiBGb3IKICAgIHRob3NlIENQVXMgd2hpY2ggZG8gbm90IG5lZWQgc3luYyBmb3Igbm93LCBhIGR1bW15IHN5bmMoKSBpcyBkZWZpbmVkIGluCiAgICB0aGVpciBpby5oIGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYTA0OTk1YzdkYzY3NzIwMTNhOWEwZGM1Yzc2N2YxOTBjNDAyNDc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDIxIDEzOjQ0OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBwcm9ibGVtIGluIHN5c3RlbWFjZSBkcml2ZXIgKGFjZV93cml0ZXcgaW5zdGVhZCBvZiBhY2Vfd3JpdGUpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1MWJiNTcxMDdkNzg5NzhhZTA4ZTY5N2MzZGViYTgxNmY1YmUwOTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MjE6NTcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IHJlbG9jYXRpb24gcHJvYmxlbSB3aXRoICJuZXciIGdldF9kZXYoKSBmdW5jdGlvbgoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgIm5ldyIgZ2V0X2RldigpIGZ1bmN0aW9uIGZvciBibG9jayBkZXZpY2VzCiAgICBpbnRyb2R1Y2VkIGJ5IEdyYW50IExpa2VseSB0byBiZSB1c2VkIG9uIHN5c3RlbXMgdGhhdCBzdGlsbCBzdWZmZXIKICAgIGZyb20gdGhlIHJlbG9jYXRpb24gcHJvYmxlbXMgKG1hbnVhbCByZWxvY2F0aW9uIG5lZWRlIGJlY2F1c2Ugb2YKICAgIHByb2JsZW1zIHdpdGggbGlua2VyIHNjcmlwdCkuCgogICAgSG9wZWZ1bGx5IHdlIGNhbiByZXNvbHZlIHRoaXMgcmVsb2NhdGlvbiBpc3N1ZSBzb29uIGZvciBhbGwgcGxhdGZvcm0KICAgIHNvIHdlIGRvbid0IG5lZWQgdGhpcyBhZGRpdGlvbmFsIGNvZGUgYW55bW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDkzZTIyMTJmOTYyNjY4YjNkY2UwOTFmZjVlZGMzM2YyMzQ3ZmUzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoxNzo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU3lzdGVtQUNFIGRyaXZlciBmb3IgMTZiaXQgYWNjZXNzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgcHJvYmxlbXMgd2hlbiB0aGUgWGlsaW54IFN5c3RlbUFDRSBkcml2ZXIKICAgIGlzIHVzZWQgd2l0aCAxNmJpdCBhY2Nlc3Mgb24gYW4gYmlnIGVuZGlhbiBwbGF0Zm9ybSAobGlrZSB0aGUKICAgIEFNQ0MgS2F0bWFpKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODc0YmI3Yjg4ZmU5YjQ2NDhlMTI4OGEzODdhZjJlMzEwMTRhNzJmMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoxNTo0MCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhbiB1cCBLYXRtYWkgKDQ0MFNQZSkgbGlua2VyIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NzQ1YWNhYTFhNjAzYjY3ZjZiOWI3OTcwMzY1ZWJhZGQ3ZDY1ODZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjU3OjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciB0aGUgQU1DQyBLYXRtYWkgKDQ0MFNQZSkgZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGMwMThlY2UxM2VmZmM2ODllNDc0NzllYTllYmYxYzk4YTUwN2Y1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjUxOjI2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMgZm9yIFJUQyAmIERUVAoKICAgIFRoaXMgcGF0Y2ggc3dpdGNoZXMgdG8gdGhlIGRlc2lyZWQgSTJDIGJ1cyB3aGVuIHRoZSBkYXRlL2R0dAogICAgY29tbWFuZHMgYXJlIGNhbGxlZC4gVGhpcyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUKICAgIENGR19SVENfQlVTX05VTSBhbmQvb3IgQ0ZHX0RUVF9CVVNfTlVNIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQwMzdlZDNiNjM5MjNjZmNlYzI3Zjc4NGE4OTA1N2MzY2JhYmNlZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6NDM6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBBZGQgNDQwU1AoZSkgRERSMiBTUEQgRElNTSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBERFIyIGNvbnRyb2xsZXIgdXNlZCBvbiB0aGUKICAgIDQ0MFNQIGFuZCA0NDBTUGUuIEl0IGlzIHRlc3RlZCBvbiB0aGUgS2F0bWFpICg0NDBTUGUpIGV2YWwKICAgIGJvYXJkIGFuZCB3b3JrcyBmaW5lIHdpdGggdGhlIGZvbGxvd2luZyBESU1NIG1vZHVsZXM6CgogICAgLSBDb3JzYWlyIENNMlg1MTItNTQwMEM0ICg1MTJNQnl0ZSBwZXIgRElNTSkKICAgIC0gS2luZ3N0b24gVmFsdWVSQU0gS1ZSNjY3RDJONS81MTIgKDUxMk1CeXRlIHBlciBESU1NKQogICAgLSBLaW5nc3RvbiBWYWx1ZVJBTSBLVlI2NjdEMk41SzIvMkcgKDFHQnl0ZSBwZXIgRElNTSkKCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyB0aGUgbmljZSBmdW5jdGlvbmFsaXR5IHRvIGR5bmFtaWNhbGx5CiAgICBjcmVhdGUgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUgU0RSQU0gKHRsYi5jKS4gU28gd2Ugc2hvdWxkCiAgICBuZXZlciBydW4gaW50byBzdWNoIHByb2JsZW1zIHdpdGggd3JvbmcgKHRvbyBzaG9ydCkgVExCCiAgICBpbml0aWFsaXphdGlvbiBhZ2FpbiBvbiB0aGVzZSBwbGF0Zm9ybXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZDgzMGM5ODMwMzc5MDQ1ZjVkYWE5ZjU0MmFjMWM5OTBjNzAwNjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6MzU6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBTcGxpdCA0eHggU1BEIFNEUkFNIGluaXQgcm91dGluZXMgaW50byAyIGZpbGVzCgogICAgU2luY2UgdGhlIGV4aXN0aW5nIDR4eCBTUEQgU0RSQU0gaW5pdGlhbGl6YXRpb24gcm91dGluZXMgZm9yIHRoZQogICAgNDA1IFNEUkFNIGNvbnRyb2xsZXIgYW5kIHRoZSA0NDAgRERSIGNvbnRyb2xsZXIgZG9uJ3QgaGF2ZSBtdWNoIGluCiAgICBjb21tb24gdGhpcyBwYXRjaCBzcGxpdHMgYm90aCBkcml2ZXJzIGludG8gZGlmZmVyZW50IGZpbGVzLgoKICAgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSA0NDAgRERSMiBjb250cm9sbGVyIHN1cHBvcnQgKDQ0MFNQL2UpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OWIyZDBiYjJlYWUwOTYwMjQ0OGY3YTdjYjU2NTMwZDJmMzFlNmM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjI3OjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c3NlcyBvbiB0aGUgUFBDNHh4CiAgICBwbGF0Zm9ybXMuIERlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUyBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKICAgIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KCiAgICBJdCBhbHNvIG1lcmdlcyB0aGUgNDA1IGFuZCA0NDAgaTJjIGhlYWRlciBmaWxlcyBpbnRvIG9uZSBjb21tb24KICAgIGZpbGUgNHh4X2kyYy5oLgoKICAgIEFsc28gdGhlIDR4eCBpMmMgcmVzZXQgcHJvY2VkdXJlIGlzIHJld29ya2VkIHNpbmNlIEkgZXhwZXJpZW5jZWQKICAgIHNvbWUgcHJvYmxlbXMgd2l0aCB0aGUgZmlyc3QgYWNjZXNzIG9uIHRoZSA0NDBTUGUgS2F0bWFpIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjg2N2E3NjIzOGZiMzhlOTUyYzM3ODcxYjE2ZDBkN2ZkNjFjOTVmCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjQ1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggOV85XSBVc2UgInZvaWQgKiIgbm90ICJ1bnNpZ25lZCBsb25nICoiIGZvciBibG9jayBkZXYgcmVhZF93cml0ZSBidWZmZXIgcG9pbnRlcnMKCiAgICBCbG9jayBkZXZpY2UgcmVhZC93cml0ZSBpcyBhbm9ueW1vdXMgZGF0YTsgdGhlcmUgaXMgbm8gbmVlZCB0byB1c2UgYQogICAgdHlwZWQgcG9pbnRlci4gIHZvaWQgKiBpcyBmaW5lLiAgQWxzbyBhZGQgYSBob29rIGZvciBibG9ja19yZWFkIGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1Mzc1OGZhMjBlOTM1Y2M4N2VlYjA1MTllZDM2NWRmNzUzYTZmMjg5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjM4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggOF85XSBBZGQgYmxvY2tfd3JpdGUgaG9vayB0byBibG9ja19kZXZfZGVzY190CgogICAgUHJlcGFyYXRpb24gZm9yIGZ1dHVyZSBwYXRjaGVzIHdoaWNoIHN1cHBvcnQgYmxvY2sgZGV2aWNlIHdyaXRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjQ4NTJlYmU2Y2E5NDZhNTA5NjY3ZWI2OGJlNDIwMjZmODM3YmU3NgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTozMSAyMDA3ICswMTAwCgogICAgW1BBVENIIDdfOV0gUmVwbGFjZSBhY2VfcmVhZHdfYWNlX3dyaXRlYiBmdW5jdGlvbnMgd2l0aCBtYWNyb3MKCiAgICBSZWdpc3RlciByZWFkL3dyaXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBhIGZ1bGwgZnVuY3Rpb24uICBUaGUKICAgIHBhdGNoIHJlcGxhY2VzIHRoZW0gd2l0aCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDNhOGNlOWFmNmZjYjU3NDRhNzg1MWI0NDQwYzA3Njg4YWNjNDA4NDQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MjMgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA2XzldIE1vdmUgY29tbW9uX2NtZF9hY2UuYyB0byBkcml2ZXJzX3N5c3RlbWFjZS5jCgogICAgVGhlIGNvZGUgaW4gdGhpcyBmaWxlIGlzIG5vdCBhIGNvbW1hbmQ7IGl0IGlzIGEgZGV2aWNlIGRyaXZlci4gIFB1dCBpdCBpbgogICAgdGhlIGNvcnJlY3QgcGxhY2UuCVRoZXJlIGFyZSB6ZXJvIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLCBpdAogICAgb25seSBtb3ZlcyB0aGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTg0NjE4ZjNlNzc5NGM3ODNlYzhkMTUxMWU3NGM2ZWUyZDY5YmZlNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNToxNiAyMDA3ICswMTAwCgogICAgW1BBVENIIDVfOV0gV2hpdGVzcGFjZSBmaXh1cCBvbiBjb21tb25fY21kX2FjZS5jICh1c2luZyBMaW5kZW50KQoKICAgIFRoaXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gb2YgYWRkaXRpb25hbCBjaGFuZ2VzIHRvIHRoZSBzeXNhY2UgZHJpdmVyLgogICAgTWF5IGFzIHdlbGwgdGFrZSB0aGlzIG9wcG9ydHVuaXR5IHRvIGZpeHVwIHRoZSBpbmNvbnNpc3RlbnQgd2hpdGVzcGFjZSBzaW5jZQogICAgdGhpcyBmaWxlIGlzIGFib3V0IHRvIHVuZGVyZ28gbWFqb3IgY2hhbmdlcyBhbnl3YXkuCgogICAgVGhlcmUgYXJlIHplcm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoaXMgcGF0Y2guICBJdCBvbmx5IGNsZWFucyB1cCB0aGUKICAgIHRoZSB3aGl0ZXNwYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4MGJhOTgxZDk0MDQ3MWZlN2U1MzllNjRmYTNkMmJkODAwMDJiZWRhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjA3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNF80XSBSZW1vdmUgbG9jYWwgaW1wbGVtZW50YXRpb24gb2YgaXNwcmludCgpIGluIGZ0X2J1aWxkLmMKCiAgICBpc3ByaW50IGlzIGFscmVhZHkgZGVmaW5lZCBpbiBjdHlwZS5jCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGM5NWM0MjgwZDc1MWNhMDc4YzJmZjU4MjI4ZDJmMmI0NGNjZjA2MDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAzXzldIE1vdmUgYnVmZmVyIHByaW50IGNvZGUgZnJvbSBtZCBjb21tYW5kIHRvIGNvbW1vbiBmdW5jdGlvbgoKICAgIFByaW50aW5nIGEgYnVmZmVyIGlzIGEgZGFybiB1c2VmdWwgdGhpbmcuICBNb3ZlIHRoZSBidWZmZXIgcHJpbnQgY29kZQogICAgaW50byBwcmludF9idWZmZXIoKSBpbiBsaWJfZ2VuZXJpYy8KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTliMGYwZmQzZmJmMjU3MmFlMWE3NzIzZGQ5MGNmZmM4ZTg1MTMwYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNDo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIIDJfNF0gVXNlIGNvbmZpZy5oLCBub3QgeHBhcmFtZXRlcnMuaCwgZm9yIHhpbGlueCB0YXJnZXRzCgogICAgQ2hhbmdlIHRoZSB4aWxpbnggZGV2aWNlIGRyaXZlcnMgYW5kIGJvYXJkIGNvZGUgdG8gaW5jbHVkZSBjb25maWcuaAogICAgaW5zdGVhZCBvZiB4cGFyYW1ldGVycy5oIGRpcmVjdGx5Lgljb25maWcuaCBhbHdheXMgaW5jbHVkZXMgdGhlCiAgICBjb3JyZWN0IHhwYXJhbWV0ZXJzIGZpbGUuICBUaGlzIGNoYW5nZSByZWR1Y2VzIHRoZSBwb3NpYmlsaXR5IG9mCiAgICBpbmNsdWRpbmcgdGhlIHdyb25nIGZpbGUgd2hlbiBhZGRpbmcgYSBuZXcgeGlsaW54IGJvYXJkIHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM1ZGQ5N2IxYjIwZTc3N2QwNTljN2IzODlmZTlkNzBjZDNmODBjNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNDozNCAyMDA3ICswMTAwCgogICAgW1BBVENIIDFfNF0gTWVyZ2UgY29tbW9uIGdldF9kZXYoKSByb3V0aW5lcyBmb3IgYmxvY2sgZGV2aWNlcwoKICAgIEVhY2ggb2YgdGhlIGZpbGVzeXN0ZW0gZHJpdmVycyBkdXBsaWNhdGUgdGhlIGdldF9kZXYgcm91dGluZS4gIFRoaXMgY2hhbmdlCiAgICBtZXJnZXMgdGhlbSBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uIGluIHBhcnQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmNWZjYzNjMjBiNjU1NTRlOThhMTY1NTQyYzM2ZWUwYzYxMGEyZDgxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTkgMjM6MDk6NTEgMjAwNyArMDEwMAoKICAgIE1DQzIwMDogU29mdHdhcmUgVXBkYXRlcjogYWxsb3cgYm90aCAicmFtZGlzayIgYW5kICJmaWxlc3lzdGVtIiB0eXBlcwogICAgYXMgcm9vdCBmaWxlIHN5c3RlbSBpbWFnZXMuCgpjb21taXQgNDg5YzY5NmFlNzIxMTIxODk2MWQxNTllNDNlNzIyZDc0YzM2ZmNiYwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTQ6MzA6MjggMjAwNyArMDMwMAoKICAgIE1DQzIwMDogRXh0ZW5zaW9ucyB0byBTb2Z0d2FyZSBVcGRhdGUgTWVjaGFuaXNtCgogICAgVXBkYXRlIC8gZXh0ZW5kIFNvZnR3YXJlIFVwZGF0ZSBNZWNoYW5pc20gZm9yIE1DQzIwMCBib2FyZDoKCiAgICAtIEFkZCBzdXBwb3J0IGZvciByb290ZnMgaW1hZ2UgYWRkZWQuIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgICAgInJvb3Rmc19zdCIgYW5kICJyb290ZnNfbmQiIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0CiAgICAgIHZhbHVlcyBvZiB0aGUgaW1hZ2Ugc3RhcnQgYW5kIGVuZC4KICAgIC0gUmVtb3ZlIGV4Y2Vzc2l2ZSBrZXkgY2hlY2sgY29kZS4KICAgIC0gQ29kZSBjbGVhbnVwLgoKY29tbWl0IDRiZTIzYTEyZjIzZjEzNzI2MzRlZGMzMjE1MTM3YjA5NzY4Yjc5NDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTkgMDg6MjM6MTUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgRUJDIGNvbmZpZ3VyYXRpb24gKE5PUiBGTEFTSCkKCiAgICBBcyBzcG90dGVkIGJ5IE1hdHRoaWFzIEZ1Y2hzLCB0aGUgUkVBRFkgaW5wdXQgc2hvdWxkIG5vdCBiZQogICAgZW5hYmxlZCBmb3IgdGhlIE5PUiBGTEFTSCBvbiB0aGUgU2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwNWU5MGJmNjc2ZDQ4MTIzYWZlNTcxOWE4NDZkMmI1MmIyNGFhYwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNiAwNzo1Nzo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGRlZCBzdXBwb3J0IGZvciB0aGUganVwaXRlciBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA0OTdkMDEyZTViZTAxOTRlMTA4NDA3M2QwMDgxZWIxYTg0NDc5NmIyCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDEyIDEzOjExOjUwIDIwMDcgKzAxMDAKCiAgICBMUEMyMjkyOiBwYXRjaCBmcm9tIFNpZW1lbnMuCgpjb21taXQgYjBiMWE5MjBhZWJlYWQwZDQ0MTQ2ZTczNjc2YWU5ZDgwZmZmYzhlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEZlYiAxMCAwODo0OTozMSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgbWlzc2luZyBwM214LmggZmlsZSB0byByZXBvc2l0b3J5ICh1cHMpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzZDRhNDk4M2ZiOWIzYWU1ZjdiMmYxMGM1OTlhY2EyYjFiNDAzNGEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDkgMTA6NDU6NDIgMjAwNyArMDEwMAoKICAgIFtNb3Rpb24tUFJPXSBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciB0aGUgTW90aW9uLVBSTyBib2FyZC4KCmNvbW1pdCA1YTc1M2Y5OGM2YTAxYmQxYzYxYTlhM2Y5NWU4MzI5YTM1ZjYyOTk0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDcgMTY6NTE6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIHNvbWUgQU1DQyA0eHggYm9hcmQgY29uZmlnIGZpbGVzIChzZXQgaW5pdHJkX2hpZ2gpCgogICAgU29tZSBib2FyZHMgdGhhdCBjYW4gaGF2ZSBtb3JlIHRoYW4gNzY4TUJ5dGVzIG9mIFNEUkFNIG5lZWQgdG8KICAgIHNldCAiaW5pdHJkX2hpZ2giLCBzbyB0aGF0IHRoZSBpbml0cmQgY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZQogICAgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MzcyY2E2ODIyNzkzMGQwM2NmZmE1NDgzMTA1MjRjYWQ1Yjk2NzMzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIgMTI6NDQ6MjIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ29ycmVjdGx5IGRpc3BsYXkgUENJIGFyYml0ZXIgZW4tL2Rpc2FibGVkIG9uIHNvbWUgNHh4IGJvYXJkcwoKICAgIFByZXZpb3VzbHkgdGhlIHN0cmFwcGluZyBEQ1IvU0RSIHdhcyByZWFkIHRvIGRldGVybWluZSBpZiB0aGUgaW50ZXJuYWwgUENJCiAgICBhcmJpdGVyIGlzIGVuYWJsZWQgb3Igbm90LiBUaGlzIHN0cmFwcGluZyBiaXQgY2FuIGJlIG92ZXJyaWRkZW4sIHNvIG5vdwogICAgdGhlIGN1cnJlbnQgc3RhdHVzIGlzIHJlYWQgZnJvbSB0aGUgY29ycmVjdCBEQ1IvU0RSIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyYWE1NGY2NTFhNDJkMTk4NjczMzE4ZjA3YTIwYzg5YTQzZTRkMTk3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIgMTI6NDI6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIGNvbmZpZ3VyYXRpb24gb3V0cHV0IG9mIFN5Y2Ftb3JlLCBZZWxsb3dzdG9uZSAmIFJhaW5pZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjM3NDRkNmI1YmYxNzU5MmViNmEwZWY0ZjMxOGY2MDg5ZjU1OTkzYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxIDEzOjIyOjQxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSBQQ0ktUE5QIGNvbmZpZ3VyYXRpb24gZnJvbSBTZXF1b2lhL1JhaW5pZXIgY29uZmlnIGZpbGUKCiAgICBXaGVuIFBDSSBQTlAgaXMgZW5hYmxlZCB0aGUgcGNpIHBucCBjb25maWd1cmF0aW9uIHJvdXRpbmUgaXMgY2FsbGVkCiAgICB3aGljaCBzZXRzIHRoZSBQQ0lfQ0FDSEVfU0laRV9MSU5FIHRvIDguIFRoaXMgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZQogICAgcHJvYmxlbXMgd2l0aCBzb21lIFBDSSBjYXJkcy4gRm9yIG5vdyBkaXNhYmxlIHRoZSBQQ0kgUE5QIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI5MDJmYWRhZGUzYmU3NjU5NDY3ZThkMDc0MDQ4YzZiNzA2OGY1YzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6NTY6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIDQ0MEVQeC80NDBHUnggY3B1IGRldGVjdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNWVhMjg3YjAyYTY5NDVjMzk3NzQxMGUzNjRhODc5ZGQxYTU1NWM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjM4OjA0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBlc2QgY3BjaTUyMDAgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZWluaGFyZCBBcmx0IDxyZWluaGFyZC5hcmx0QGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgOGI3ZDFmMGFiN2Q3YzRmZTMxNjBiYmY3NGE3ZTk2OTBkOWYzYTNhYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjozNzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgZXNkIG1lY3A1MjAwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDcxYTRlNWZkYThiNjAwNDRhYjlmNDYwNjlmYTFjZmEyNmJkZDA3ZmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTI6Mzg6NTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHVubmVjY2Vzc2FyeSB5ZWxsb3dzdG9uZSBib2FyZCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlODAyNTk0YjZmYTFiMTY2MzA4ODIwYzI3NmI5NmRjMGQ3Y2M3MzFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE3OjA2OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhICg0NDBFUHgpIGNvbmZpZyBmaWxlCgogICAgVGhlIGNvbmZpZyBmaWxlIG5vdyBoYW5kbGVzIHRoZSAybmQgdGFyZ2V0LCB0aGUgUmFpbmllciAoNDQwR1J4KQogICAgZXZhbHVhdGlvbiBib2FyZCBiZXR0ZXIuIEFkZGl0aW9uYWxseSB0aGUgUFBDIGlucHV0IGNsb2NrIHdhcwogICAgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIGNvcnJlY3QgdmFsdWUgb2YgMzMuMCBNSHouCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcwMDIwMGM2N2U3M2I4Mzc1MTQxOGFiZTc4MTU4NDBkY2E4ZmQ2Y2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTc6MDQ6MTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gTWVyZ2UgWW9zZW1pdGUgJiBZZWxsb3dzdG9uZSBib2FyZCBwb3J0cwoKICAgIE5vdyB0aGUgQU1DQyBldmFsIGJvYXJkcyBZb3NlbWl0ZSAoNDQwRVApIGFuZCBZZWxsb3dzdG9uZSAoNDQwR1IpCiAgICBzaGFyZSBvbmUgY29uZmlnIGZpbGUgYW5kIGFsbCBib2FyZCBzcGVjaWZpYyBmaWxlcy4gVGhpcyB3YXkgd2UKICAgIGRvbid0IGhhdmUgdG8gbWFpbnRhaW4gdHdvIGRpZmZlcmVudCBzZXRzIG9mIGZpbGVzIGZvciBuZWFybHkKICAgIGlkZW50aWNhbCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFiYmY1ZWFlMzIyZjVmMWY2NDI3ZWNjM2FjMTNhMGNiN2RiYThhZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTU6MDE6NDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIFNDUFUgKFBETkIzIHZhcmlhbnQpIGJvYXJkCgogICAgU0NQVSBkb2Vzbid0IHVzZSByZWR1bmRhbnQgZW52aXJvbm1lbnQgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzMDQ0MzBlZDY0MmVhOGZhMTVjOWU1YWY5NjVhYzJlMDMzZWVjNDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTI6NTE6MDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gYWxwcjogVXBkYXRlIGFscHIgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjhkYjg0ZjEzMmIxZTMzNWYyMGY5NjEzOGExZjA5ZWQ5N2IwODY2NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDAwOjUwOjQwIDIwMDcgKzAxMDAKCiAgICBMUEMyMjkyIFNPRElNTSBwb3J0IGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDZiZDI0NDdlZTQ3ZWUyM2MxOGQyYjNjN2NjZDVhMjBmNzYyNmY1YjMKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjQgMTI6MTY6NTYgMjAwNyArMDEwMAoKICAgIEFkZCBwb3J0IGZvciB0aGUgbHBjMjI5MnNvZGltbSBldmFsdWF0aW9uIGJvYXJkIGZyb20gRW1iZWRkZWRBcnRpc3RzCgpjb21taXQgMmRhZjA0NmJhNjI3Zjg1ZjQ0MTk1ODE1Nzc4MTQwMDM5NjM2MjQ0ZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTc6MjI6MDYgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBBZGQgTVREIGFuZCBKRkZTMiBzdXBwb3J0LCBhbHNvIGFkZCBkZWZhdWx0IHBhcnRpdGlvbiBkZWZpbml0aW9uLgoKY29tbWl0IGY3ZGIzMzEwMWZiYzljOGYwYTEwNzM4Y2U4NzAzNDg3NWExN2FlYjkKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE0OjIxOjE0IDIwMDcgKzAxMDAKCiAgICBbaURNUl0gRmxhc2ggZHJpdmVyIG9uIGluaXRpYWxpc2F0aW9uIHdyaXRlLXByb3RlY3RzIHNvbWUgc2VjdG9ycywKICAgIGN1cnJlbnRseSBzZWN0b3JzIDAtMy4gU2VjdG9yIDMgZG9lcyBub3QgbmVlZCB0byBiZSBwcm90ZWN0ZWQsIHRob3VnaAogICAgKFUtYm9vdCBvY2N1cGllcyBzZWN0b3JzIDAtMSBhbmQgdGhlIGVudmlyb25tZW50IHNlY3RvciAyKS4gVGhpcyBjb21taXQKICAgIGZpeGVzIHRoaXMsIGkuZS4sIG9ubHkgc2VjdG9ycyAwLTIgYXJlIHByb3RlY3RlZC4KCmNvbW1pdCAwZWQ0N2JiMTE5Y2QyYzRjMTZlZGIyNTQ4Nzg5MTQ4ZjllNmRjOWRlCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNDoxMToyMiAyMDA3ICswMTAwCgogICAgW2lETVJdIFVzaW5nIE1JSS1yZWxhdGVkIGNvbW1hbmRzIG9uIGlEUk0gYm9hcmQgZG9lc24ndCB3b3JrIG5vdyAoZS5nLiwKICAgICJtaWkgZGV2aWNlIiByZXN1bHRzIGluICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiIpLiBGaXhpbmcgdGhpcyBwcm9wZXJseQogICAgcmVxdWlyZXMgc29tZSBjbGVhbi11cCBpbiB0aGUgRkVDIGRyaXZlcnMgaW5mcmFzdHJ1Y3R1cmUgZm9yIENvbGRGaXJlLCBzbwogICAgdGhpcyBjb21taXQgZGlzYWJsZXMgTUlJIGNvbW1hZHMgZm9yIG5vdy4KCmNvbW1pdCAzNjNkMWQ4ZjljOTliNjNkYWVmODFmNTk4NWNhYjNmYzAwZWRkZTVjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxMzoyNToyMiAyMDA3ICswMTAwCgogICAgW0NvbGRGaXJlIE1DRjUyNzEgZmFtaWx5XSBBZGQgQ1BVIGRldGVjdGlvbiBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgQ2hpcAogICAgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIgKENJUikuCgpjb21taXQgZmRlZjM4ODc1ODUwNjc2NWQ0ZDZhNzE1NWM4ZjE1ODRjNjNmZjU4MQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAyMiAxMzoxOToyMSAyMDA3ICswODAwCgogICAgdXNlICBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBIGRlZmluZSBpbnN0ZWFkIG9mIGRlZmluZSBDRkdfRkxBU0hfQ0ZJX1NXQVAKICAgIFRoZSBwYXRjaCBieSBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+IG9uIEphbiwgMTksIDIwMDcKICAgIGZpeGVzIGNmaV9kcml2ZXIgYnVnIGZvciBtcGM3NDQ4aHBjMiBib2FyZC4gVGhlIGRlZmF1bHQgY2ZpX2RyaXZlciBjYW4gc3VwcG9ydAogICAgbXBjNzQ0OGhwYzIgYm9hcmQuCgpjb21taXQgYTQwMTIzOTY2NDU1MzNhZWYyMTgzNTRlZWJhNzU0ZGZmMGRlYWNlOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDIzOjA4OjM5IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZjUzOWI3YmE3ZDdlZjZkZDE4N2M4MjA5NjA5MDAxY2IxY2Q5NWUzOQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAxOTo1NzoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTQzMgYm9hcmQ6IGFkZGVkIENGR19DTURfQVVUT1NDUklQVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBkMGI2ZTE0MDg3ZGRkODc4OWYyMjRhNDhlMWQzM2YyYTVkZjRkMTY3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDE4OjA1OjI2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENGSTogZGVmaW5lIENGR19XUklURV9TV0FQUEVEX0RBVEEgZm9yIHRoZSBDRkktRmxhc2ggZHJpdmVyCgkJIGlmIHlvdSBtdXN0IHN3YXAgdGhlIGJ5dGVzIGJldHdlZW4gcmVhZGluZy93cml0aW5nLgoJCSAoTmVlZGVkIGZvciB0aGUgU0MzIGJvYXJkKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDlkOGQ1YTViZmI2NDc2OGYyOWEwY2I0N2ZjMzdjZDZmNGM0MGUyNzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTY6MDU6NDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIFByb2RyaXZlIFNDUFUgKFBETkIzIHZhcmlhbnQpIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAwNTdkNzU4ZTNlODc0Y2JlN2YyNDc0NWQwY2NlOGMxY2I2YzIwN2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6NTQ6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIFAzTXggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDE2N2EzNmMyOWVlOTQ2YjcyNzQ2NWRiNWMwMTQ3NDZhMDhlOTc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjQ4OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBtaXNzaW5nIFRhaXNoYW4gY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2I0ODIwNzI1ZTlmYzQwOWM1Y2JjOGU4MzA1NGE2ZWQ1MjJkMjExMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMToyODo1MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXg6IENvbXBpbGVyd2FybmluZ3MgZm9yIFNDMyBib2FyZC4KCQkgVGhlIEVCQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIGlzIG5vdyBieSBDRkdfRUJDX0NGRyBkZWZpbmFibGUKCQkgQWRkZWQgSkZGUzIgc3VwcG9ydCBmb3IgdGhlIFNDMyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ZmI2OTJjYWU1N2QxNzEwYzhmNTJhNDI3Y2Y3ZjM5YTM3MzgzZmNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDEwOjI1OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBBTUNDIFRhaXNoYW4gUFBDNDQwR1ggZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZDNlMDEwNzIzNWFhMGU2YTZkY2I3N2Y5ODg0NDk3MjgwYmY4NWFkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTYgMTg6MzA6NTAgMjAwNyArMDEwMAoKICAgIFJhbmFtZSBzb2xpZGNhcmQzIGludG8gc2MzOyBhZGQgcmVkdW5kYW50IGVudiBmb3Igc2MzCgpjb21taXQgMWJiYmJkZDIwZmNlYzk5MzM2OTcwMDBkY2Y1NWZmNzk3MjYyMjU5NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDE2IDEyOjQ2OjM1IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgZGVmYXVsdCBlbnZpcm9ubWVudCBmb3IgU29saWRjYXJkMwoKY29tbWl0IDVhNWM1Njk4NmE5Y2NmNzE2NDJjOGI2Mzc0ZWIxODQ4N2IxNWZlY2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMTUgMDk6NDY6MjkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IDQ0MFNQZSByZXYgQiBkZXRlY3Rpb24gZnJvbSBwcmV2aW91cyBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDQzZDMxNDEwYzU3MWVlOGY5NzBkYTgxOWE0NGQ2OThmZGQ2YjFmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gSmFuIDE0IDEzOjM1OjMxIDIwMDcgKzAxMDAKCglbRklYXSBjb3JyZWN0IEkyQyBXcml0ZXMgZm9yIHRoZSBMTTgxIFNlbnNvci4KCglTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAwYmJhNTQ1MjgzNWYxOWE2MTIwNGVkY2RhM2E1ODExMmZkOGUyMjA4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMTE6MTc6MTAgMjAwNyArMDEwMAoKICAgIFVuZG8gY29tbWl0IDMwMzNlYmIyOiByZXNldCBjb21tYW5kIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cwoKICAgIEhhaXlpbmcgV2FuZydzIG1vZGlmaWNhdGlvbiB0byB0aGUgcmVzZXQgY29tbWFuZCB3YXMgYnJva2VuLCB1bmRvIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTU5ODE3NzhjZmYwMDM4ZmQ5OTQxMDQ0ZDZhM2VkYTgxMGUzMzI1OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAwODowMTowMyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgNDQwU1AoZSkgY3B1IHJldmlzaW9ucwoKICAgIEFsc28gZGlzcGxheSBlbmFibGVkL2Rpc2FibGVkIFJBSUQgNiBzdXBwb3J0IGZvciA0NDBTUC80NDBTUGUgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc3ZGRjNWI5YWZiMzI1MjYyZmQ4ODc1MmJhNDMwYTFkZGVkMWYwYzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTk6NTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFllbGxvd3N0b25lICg0NDBHUikgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBBbHNvIHRoZSBFQkMgaW5pdGlhbGlzaW5nIGlzIG5vdyBkb25lIHZpYSBkZWZpbmVzIGluIHRoZSBib2FyZCBjb25maWcKICAgIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2YWRmZjM2MmMyYzAxNDFmZjhhODEwZDQyYTdlNDc4Zjc3OTEzMGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTk6MTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFlvc2VtaXRlICg0NDBFUCkgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBBbHNvIHRoZSBFQkMgaW5pdGlhbGlzaW5nIGlzIG5vdyBkb25lIHZpYSBkZWZpbmVzIGluIHRoZSBib2FyZCBjb25maWcKICAgIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwYjllYThjOGEyOTRkZTZhNTM1MGFlNjM4ODc5ZDI0YjViNzA5ZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTc6NTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgKDQ0MEVQeCkgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2E0M2JhMThlOTEwMjA2ZWY4MDYzZTRiMjJkMjgyNjMwYmZmM2ZkMgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMSAxNTo0NDo0NCAyMDA3ICswMTAwCgoJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFNPTElEQ0FSRCBJSUkgYm9hcmQgZnJvbSBFdXJvZGVzaWduCgoJU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNmFiYWVlNDI2MjFjMDdlODFhMmNkMTg5YWQ0MzY4YjVlOGM1MDI4MApBdXRob3I6IFJlaW5oYXJkIFRoaWVzIDxSZWluaGFyZC5UaGllc0B3ZWIuZGU+CkRhdGU6CVdlZCBKYW4gMTAgMTQ6NDE6MTQgMjAwNyArMDEwMAoKICAgIEFkanVzdGVkIGRlZmF1bHQgZW52aXJvbm1lbnQgZm9yIGNhbTUyMDAgYm9hcmQuCgpjb21taXQgYmFiNWE5MGQ0Y2NjMWE0NmE4MTI3Yjg2N2ZhNTkwMjhjYzYyM2FkOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDEwIDE1OjM1OjUyIDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgNzg3ZmExNTg2MGE1NzgzM2U1MGJkMzA1NTUwNzlhOWNkNGU1MTliOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDEwIDAxOjI4OjM5IDIwMDcgKzAxMDAKCiAgICBGaXggYXV0b191cGRhdGUgZm9yIE1DQzIwMCBib2FyZC4KCiAgICBUaGUgaW52b2NhdGlvbiBvZiBkb19hdXRvX3VwZGF0ZSgpIGlzIG1vdmVkIHRvIHRoZSBlbmQgb2YgdGhlCiAgICBtaXNjX2luaXRfcigpIGZ1bmN0aW9uLCBhZnRlciB0aGUgZmxhc2ggbWFwcGluZ3MgaGF2ZSBiZWVuCiAgICBpbml0aWFsaXplZC4gUGxlYXNlIGZpbmQgYXR0YWNoZWQgYSBwYXRjaCB0aGF0IGltcGxlbWVudHMgdGhhdAogICAgY2hhbmdlLgoKICAgIEFsc28gY29ycmVjdCB0aGUgZGVjb2Rpbmcgb2YgdGhlIGtleXBhZCBzdGF0dXMuIFdpdGggdGhpcyB1cGRhdGUsIHRoZQogICAga2V5IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSB1cGRhdGUgaXMgQ29sdW1uIDIsIFJvdyAyLgoKY29tbWl0IGQ5Mzg0ZGUyZjU3MTA0NmU3MTA4MWJhZTIyYjQ5ZTNkNWNhMmUzZDUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDEwIDAwOjI2OjE1IDIwMDcgKzAxMDAKCiAgICBDQU01MjAwIGZsYXNoIGRyaXZlciBtb2RpZmljYXRpb25zOgogICAgLSB1c2UgQ0ZJIGRyaXZlciAocmVwbGFjZXMgY3VzdG9tIGZsYXNoIGRyaXZlcikgZm9yIG1haW4gJ2NhbTUyMDAnIHRhcmdldAogICAgLSBhZGQgc2Vjb25kIGJ1aWxkIHRhcmdldCAnY2FtNTIwMF9uaW9zZmxhc2gnIHdoaWNoIHN0aWxsIHVzZXMgY3VzdG9tIGRyaXZlcgoKY29tbWl0IDY3ZmVhMDIyZmE5NTdmNTk2NTNiNTIzOGM3NDk2ZjgwYTZiNzA0MzIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTY6MDI6NDggMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGNsZWFudXAgbWVtb3J5IGNvbnRvbGxlciBzZXR1cAoKY29tbWl0IDhmYzIxMDJmYWEyMzU5M2M4MDM4MTQzN2MwOWY3NzQ1YTE0ZGViNDAKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTQgMjAwNyArMDEwMAoKICAgIEZpeCB0aGUgY3B1IHNwZWVkIHNldHVwIHRvIHdvcmsgd2l0aCBhbGwgYm9hcmRzLgoKY29tbWl0IDkyOTVhY2I3NzQ4MWNmMDk5ZWY5YjQwZTFmYTJkMTQ1YjNjNzQ5MGMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGFkZCBzdXBwb3J0IGZvciB0aGUgRk0xOEwwOCBSYW10cm9uIEZSQU0KCmNvbW1pdCAzOGNjZDJmZGYzMzY0YTUzZmU4MGU5YjM2NTMwM2VjZGFmYzllMjIzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiB1cGRhdGUgdGhlIEhQSSByZWdpc3RlciBhZGRyZXNzZXMgdG8gd29yayB3aXRoIHRoZSBzZWNvbmQKICAgIGdlbmVyYXRpb24gb2YgaGFyZHdhcmUKCmNvbW1pdCA1OTIxZTUzMTNmYzNlYWRkNDI3NzBjMmI5OWJhZGQ3ZmFlNWVjZjFlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgTWlzY2VsbGFuaW91cyBzcGMxOTIwIHJlbGF0ZWQgY2xlYW51cHMKCmNvbW1pdCBlNGMyZDM3YWRjOGJiMWJmNjlkY2Y2MDBjYmM2Yzc1ZjkxNmE2MTIwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEyIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwIEdPL05PR08gbGVkIHNob3VsZCBiZSBzZXQgdG8gY29sb3IgcmVkIGluIFUtQm9vdAoKY29tbWl0IDBiZTYyNzI4YWFjNDU5YmEyNjhkNmQ3NTJlZDQ5ZWMwZTJiYzczNDgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEyIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIERTMzIzMSBSVEMKCmNvbW1pdCA4MTM5NTY3YjYwZDY3ODU4NGIwNWYwNzE4YTY4MWYyMDQ3YzVlMTRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMSAyMDA3ICswMTAwCgogICAgU01DMSB1c2VzIGV4dGVybmFsIENMSzQgaW5zdGVhZCBvZiBCUkcgb24gc3BjMTkyMAoKY29tbWl0IGQ4ZDlkZTFhMDJmYmQ4ODBiNjEzZDYwNzE0M2QxZjU3MzQyYWZmYzcKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgdGhlIFNQQzE5MjAgQ01CIFBMRCBkcml2ZXIKCmNvbW1pdCAzZjM0Zjg2OTE2Mjc1MGU1ZTk5OWZkMTQwZjg4NGY1ZGU5NTJiY2ZlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgQWRkIC8gZW5hYmxlIEkyQyBzdXBwb3J0IG9uIHRoZSBzcGMxOTIwIGJvYXJkCgpjb21taXQgZDI4NzA3ZGJjZTFlOWFjMjAxN2FkMDUxZGE0MTMzYmYyMmI0MjA0ZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgdG1zMzIwNjcxeCBob3N0IHBvcnQgaW50ZXJmYWNlIChIUEkpCgpjb21taXQgZjRlYjU0NTI5YmIzNjY0YzNhNTYyZTQ4OGI0NjBmZTA3NWY3OWQ2NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gSmFuIDcgMDA6MTM6MTEgMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIHJlbGVhc2UgMS4yLjAKCmNvbW1pdCBmMDdhZTdhOWRhZWYyN2EzZDAyMTNhNGYzZmUzOWQ1MzQyMTczYzAyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDYgMTU6NTg6MDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gNDR4OiBGaXggcHJvYmxlbSB3aXRoIEREUiBjb250cm9sbGVyIHNldHVwIChyZWZyZXNoIHJhdGUpCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gd2l0aCBhbiBpbmNvcnJlY3Qgc2V0dXAgZm9yIHRoZSByZWZyZXNoCiAgICB0aW1lciBvZiB0aGUgNDR4IEREUiBjb250cm9sbGVyIGluIHRoZSBmaWxlIGNwdS9wcGM0eHgvc2RyYW0uYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMTZjMWRhOTU3N2YwNmM1ZmMwODY1MWE0MDY1NTM3NDA3ZGU0NjM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDYgMTU6NTY6MTMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFMUFIgYm9hcmQgZmlsZXMKCiAgICBUaGlzIHVwZGF0ZSBicmluZ3MgdGhlIEFMUFIgYm9hcmQgc3VwcG9ydCB0byB0aGUgbmV3ZXN0IHZlcnNpb24uCiAgICBJdCBhbHNvIGZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBOQU5EIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2QxZDkzN2Y5MDI1MGEzMjk4OGMzN2IyYjRhZjgzNjRkMjVkZThlZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDExOjQ2OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwcm9ibGVtIHdpdGggb29ic2l6ZSBjYWxjdWxhdGlvbgoKICAgIEhlcmUgdGhlIGRlc2NyaXB0aW9uIGZyb20gQnJpYW4gQnJlbHNmb3JkIDxCcmlhbl9CcmVsc2ZvcmRAZGVsbC5jb20+OgoKICAgIFRoZSBIeW5peCBwYXJ0IHJldHVybnMgYSAweDFkIGluIHRoZSA0dGggSUQgYnl0ZS4gVGhlIFNhbXN1bmcgcGFydAogICAgcmV0dXJucyBhIDB4MTUuIEluIHRoZSBjb2RlIGZyYWdtZW50IGJlbG93IGJpdHMgWzE6MF0gZGV0ZXJtaW5lIHRoZQogICAgcGFnZSBzaXplLCBpdCBpcyBBTkRlZCB2aWEgIihleHRpZCAmIDB4MykiIHRoZW4gc2hpZnRlZCBvdXQuIFRoZQogICAgbmV4dCBmaWVsZCBpcyBhbHNvIEFORGVkIHdpdGggMHgzLiBIb3dldmVyIHRoaXMgaXMgYSBvbmUgYml0IGZpZWxkCiAgICBhcyBkZWZpbmVkIGluIHRoZSBIeW5peCBhbmQgU2Ftc3VuZyBwYXJ0cyBpbiB0aGUgNHRoIElEIGJ5dGUgdGhhdAogICAgZGV0ZXJtaW5zIHRoZSBvb2JzaXplLCBub3QgYSB0d28gYml0IGZpZWxkLiBJdCB3b3JrcyBvbiBTYW1zdW5nIGFzCiAgICBiaXRzWzM6Ml0gYXJlIDAxLiBIb3dldmVyIGZvciB0aGUgSHluaXggdGhlcmUgaXMgYSAxMSBpbiB0aGVzZSB0d28KICAgIGJpdHMsIHNvIHRoZSBvb2Igc2l6ZSBnZXRzIG1lc3NlZCB1cC4KCiAgICBJIGNoZWNrZWQgdGhlIGNvcnJlY3QgbGludXggY29kZSBhbmQgdGhlIHN1Z2dlc3RlZCBmaXggZnJvbSBCcmlhbiBpcwogICAgYWxzbyBhdmFpbGFibGUgaW4gdGhlIGxpbnV4IG5hbmQgbXRkIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTc4YmM0NDNhZTVhNGE4YmE4NzU5MDU4N2Q1ZTM1YmY1YTc4N2IyZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDEwOjQwOjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFyIFBMQjRBMF9BQ1JbV1JQXSBvbiBTZXF1b2lhICg0NDBFUHgpCgogICAgVGhpcyBmaXggd2lsbCBtYWtlIHRoZSBNQUwgYnVyc3QgZGlzYWJsaW5nIHBhdGNoIGZvciB0aGUgTGludXgKICAgIEVNQUMgZHJpdmVyIG9ic29sZXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMjM4ODk4MzgyODJiNjIzN2I0MDE2NjRmMjJkZDIyZGZiYTJjMDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDUgMTA6Mzg6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEREUjIgb3B0aW1pemF0aW9uIGNvZGUgZm9yIFNlcXVvaWEgKDQ0MEVQeCkgYm9hcmQKCiAgICBUaGlzIGNvZGUgd2lsbCBvcHRpbWl6ZSB0aGUgRERSMiBjb250cm9sbGVyIHNldHVwIG9uIGEgYm9hcmQgc3BlY2lmaWMKICAgIGJhc2lzLgoKICAgIE5vdGU6IFRoaXMgY29kZSBkb2Vzbid0IHdvcmsgcmlnaHQgbm93IG9uIHRoZSBOQU5EIGJvb3RpbmcgaW1hZ2UgZm9yIHRoZQogICAgU2VxdW9pYSBib2FyZCwgc2luY2UgaXQgZG9lc24ndCBmaXQgaW50byB0aGUgNGtCeXRlcyBmb3IgdGhlIFNQTCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2NlNGFjYmI2ODM5ODYzNGI4ZDAxMWVkN2JiMGQxMjI2OWM4NDIzMApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBEZWMgMjggMTk6MDg6MjEgMjAwNiArMDEwMAoKICAgIEZldyBWMzhCIGNoYW5nZXM6CiAgICAgIC0gZml4IGEgdHlwbyBpbiBWMzhCIGNvbmZpZyBmaWxlCiAgICAgIC0gbW92ZSB3YXRjaGRvZyBpbml0aWFsaXNhdGlvbiBlYXJsaWVyIGluIHRoZSBib290IHByb2Nlc3MKICAgICAgLSBhZGQgIndkdD1vZmYiIHRvIGRlZmF1bHQga2VybmVsIGNvbW1hbmQgbGluZSAoZGlzYWJsZXMga2VybmVsIHdhdGNoZG9nKQoKY29tbWl0IDkyZWI3MjliYWQ4NzY3MjVhZWVhOTA4ZDJhZGRiYTA4MDA2MjA4NDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIERlYyAyNyAwMToyNjoxMyAyMDA2ICswMTAwCgogICAgRml4IGJ1ZyBpbiBhZGFwdGlvbiBvZiBTdGVmYW5vIEJhYmljJ3MgQ0ZJIGRyaXZlciBwYXRjaC4KCmNvbW1pdCA5YzBmNDJlY2ZlMjVmN2ZmY2U4ZWM3YTgxNWYwMzg2NGQ3MjNmZmUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBEZWMgMjQgMDE6NDI6NTcgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBkNzg0ZmRiMDU5MDBhZGEzNjg2ZDU3Nzg3ODNlMWZiMzI4ZTlmYjY2CkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTIgMDA6MjI6NDIgMjAwNiArMDEwMAoKICAgIEZpeCBjZmkgZmFpbHVyZSB3aXRoIFNwYW5zaW9uIEZsYXNoIChTcGFuc2lvbiBGbGFzaCBEZXZpY2VzIGhhdmUgYSBkaWZmZXJlbnQgb2Zmc2V0IHRvIGdvIGludG8gQ0ZJIG1vZGUpCgpjb21taXQgMWIzYzM2MGMyMzVkYzY4NGVjMDZjMmQ1ZjE4M2YwYTI4MmNlNDVlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyMiAxNDoyOTo0MCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBGaXggc2VxdW9pYSBmbGFzaCBhdXRvZGV0ZWN0aW9uIChmaW5hbGx5IGNvcnJlY3QpCgogICAgTm93IDMyTUJ5dGUgYW5kIDY0TUJ5dGUgRkxBU0ggaXMga25vdyB0byB3b3JrIGFuZCBvdGhlcgogICAgY29uZmlndXJhdGlvbnMgc2hvdWxkIHdvcmsgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MmU1MjM2YThiNzE5NTQzNjQzZmQyNmQ1ODI3OTM4YWIyYjk0ODE4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjIgMTA6MzA6MjYgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCBmYTIzMDQ0NTY0MDkxZjA1ZDk2OTViZWI3YjViOWE5MzFlN2Y0MWE0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgRGVjIDIxIDE3OjE3OjAyIDIwMDYgKzAxMDAKCiAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUgVFFNODI3MiBib2FyZCBmcm9tIFRRCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNmRlZGYzZDQ5ZGQxNGMzYmY1NDFjOGVjZWU3ZmZhYWM1ZjBlMWQ2YwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyMSAxNjoxNDo0OCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgdGhlIFVDMTAxIGJvYXJkIGZyb20gTUFOLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGM4NGJhZDBlZjYwZTcwNTVhYjBiZDQ5YjkzMDY5NTA5Y2VjYzM4MmEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRGVjIDIwIDAwOjI5OjQzIDIwMDYgKzAxMDAKCiAgICBGaXggdG8gbWFrZSB0aGUgYmF1ZHJhdGUgY2hhbmdlcyBpbW1lZGlhdGUgZm9yIHRoZSBNQ0Y1MngyIGZhbWlseS4KCmNvbW1pdCBkYWE2ZTQxOGJjYzBjNzE3NzUyZThkZTkzOWMyMTNjNzkwMjg2MDk2CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAwMDoyNzozMiAyMDA2ICswMTAwCgogICAgUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIGlETVIgYm9hcmQgKENvbGRGaXJlKS4KCmNvbW1pdCBjZGI5N2E2Njc4ODI2Zjg1ZTdjNjllYWU2YTFjMTEzZDAzNGM5YjEwCkF1dGhvcjogQW5kcmVpIFNhZnJvbm92IDxzYWZyb25vdkBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIERlYyA4IDE2OjIzOjA4IDIwMDYgKzAxMDAKCiAgICBhdXRvbWF0aWMgdXBkYXRlIG1lY2hhbmlzbQoKY29tbWl0IDlkMjdiM2EwNjg1ZmY5OWZjNDc3OTgzZjMxNWMwNGQ0OWY2NTdhOGEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNzo1Njo1OSAyMDA2ICswODAwCgogICAgU2xpZ2h0IGNvZGUgY2xlYW4gdXAuCiAgICBBZGQgY29tbWVudHMsIGRlbGV0ZSBkdXBsaWNhdGUgZGVmaW5lIGFuZCByZW1vdmUgc3BhY2VzLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkYmNkNjllM2UyNzc2ZWEzMzQ1OTBkNTc2OGUzNjkyYzVmYWU1YzEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNzo1NDoyMSAyMDA2ICswODAwCgogICAgSW50cm9kdWNlIFBMTF9DRkdbMDo0XSB0YWJsZSBmb3IgcHJvY2Vzc29yIDc0NDgvNzQ0N0EvNzQ1NS83NDU3LiBUaGUgb3JpZ2luYWwKICAgIG11bHRpcGxpZXIgdGFibGUgY2FuIG5vdCByZWZlY3QgdGhlIHJlYWwgUExMIGNsb2NrIGJlaGF2aW9yIG9mIHRoZXNlCiAgICBwcm9jZXNzb3JzLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGhhcmR3YXJlIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbGVkCiAgICBpbmZvcm1hdGlvbiBvZiB0aGUgY29ycmVzcG9uZGluZyBwcm9jZXNzb3JzLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlZmUyMGM5NTc5MDExZDk5ODdmNjJlZDdkMzVlZThjZGMxY2YwZTAKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNDo0NjoyMyAyMDA2ICswODAwCgogICAgUmVtb3ZlIHRoZSBzdGF0aWMgTUFDIGFkZHJlc3MsIGlwIGFkZHJlc3MsIHNlcnZlciBpcCwgbmV0bWFzayBhbmQKICAgIGdhdGV3YXkgaXAgZm9yIG5ldHdvcmsgc2V0dGluZy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZjEyYzYxY2YzMWVkNzNkNzJkZGZjZmM3MTJhODU0YTNhMTc3YWFmCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTQ6MzM6MDggMjAwNiArMDgwMAoKICAgIFJlbW92ZSB0aGUgZHVwbGljYXRlIG1lbW9yeSB0ZXN0IGNvZGUgZm9yIG1wYzc0NGlocGMyIGJvYXJkLgogICAgSWYgYSBtZW1vcnkgdGVzdCBpcyBuZWVkZWQsIHBsZWFzZSB1c2UgdGhlIGZ1bmN0aW9ucyBpbgogICAgcG9zdC9tZW1vcnkuYyBvciBtZW10ZXN0IGNvbW1hbmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzljMWVlZWQ3ZGQxOTNmYTY1ZmIxOTQ2NTQxMzIwNDBkNDlkNGQzYQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxIDE5OjAxOjI1IDIwMDYgKzA4MDAKCiAgICBGaXggdGhlIGV4Y2VwdGlvbiBvY2N1cmluZyBpbiBSQU0gdGFibGUgc2VhcmNoIGlzc3VlLgogICAgVGhlIG9yaWdpbmFsIHNlYXJjaF9vbmVfdGFibGUoKSBmdW5jdGlvbiBjb2RlIGNhbiBvbmx5IHByb2Nlc3NlcyB0aGUgc2VhcmNoCiAgICBmb3IgdGhlIGV4Y2VwdGlvbiBvY2N1cnJpbmcgaW4gRkxBU0gvUk9NLCBiZWNhdXNlIHRoZSBleGNlcHRpb24gYW5kIGZpeHVwCiAgICB0YWJsZSB1c3VhbGx5IGxvY2F0ZSBpbiBGTEFTSC4gSWYgdGhlIGV4Y2VwdGlvbiBhZGRyZXNzIGlzIGFsc28gaW4KICAgIEZMQVNILCBpdCB3aWxsIGJlIE9LLgogICAgSWYgdGhlIGV4Y2VwdGlvbiBvY2N1cnMgaW4gUkFNLCBhZnRlciB0aGUgdS1ib290IHJlbG9jYXRpb24sIGEKICAgIHJlbG9jYXRpb24gb2Zmc2V0IHNob3VsZCBiZSBhZGRlZC4KCiAgICBjbGVhbiB1cCB0aGUgY29kZSBpbiBjcHUvNzR4eF83eHgvY3B1LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWUzMTEyMTRlMGQyMTZmOTA0ZmVlYTI2OTU5OWQwOTM0YmY3MWYyMwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxIDExOjQ3OjM2IDIwMDYgKzA4MDAKCiAgICBDbGVhbiB1cCB0aGUgY29kZSBhY2NvcmRpbmcgdG8gY29kZXN0eWxlOgogICAgKDEpIHJlbW92ZSBzb21lIEMrKyBjb21tZW50cy4KICAgICgyKSByZW1vdmUgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCiAgICAoMykgcmVtb3ZlIHRyYWlsaW5nIGVtcHR5IGxpbmUuCiAgICAoNCkgSW5kZW50YXRpb24gYnkgdGFibGUuCiAgICAoNSkgcmVtb3ZlIHt9IGluIG9uZSBsaW5lIGNvbmRpdGlvbi4KICAgICg2KSBhZGQgc3BhY2UgYmVmb3JlICcoJyBpbiBmdW5jdGlvbiBjYWxsLgogICAgUmVtb3ZlIHNvbWUgd2VpcmQgcHJpbnRmICgpIG91dHB1dC4KICAgIEFkZCBuZWNlc3NhcnkgY29tbWVudHMuCiAgICBNb2RpZmllZCBNYWtlZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LgoKY29tbWl0IGRkNTIwYmYzMTRjN2FkZDQxODNjNTE5MTY5MjE4MGY1NzZmOTZiNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAzMCAxODowMjoyMCAyMDA2ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLgoKY29tbWl0IDhkOWE4NjEwYjgyNTYzMzExMzIyMjdlOWU2NTg1YzZiZDU3NDI3ODcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAzMCAwMTo1NDowNyAyMDA2ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDcyNmU5MGFhY2YwYjFlY2IwZTcwNTViZTU3NDYyMmZiZTNlNDUwYmEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBOb3YgMjkgMTY6MjM6NDIgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gW01QQzUyeHhdIFVzZSBJUEIgYnVzIGZyZXF1ZW5jeSBmb3IgU09DIHBlcmlwaGVyYWxzCgogICAgVGhlIHNvYyBub2RlIG9mIHRoZSBtcGM1Mnh4IG5lZWRzIHRvIGJlIGxvYWRlZCB3aXRoIHRoZSBJUEIgYnVzIGZyZXF1ZW5jeSwKICAgIG5vdCB0aGUgWExCIGZyZXF1ZW5jeS4KCiAgICBUaGlzIHBhdGNoIGRlcGVuZHMgb24gdGhlIHByZXZpb3VzIHBhdGNoZXMgZm9yIE1QQzUyeHggZGV2aWNlIHRyZWUgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIFNpZ25lZC1vZmYtYnk6IFN5bHZhaW4gTXVuYXV0IDx0bnRAMjQ2dE50LmNvbT4KCmNvbW1pdCAxZWFjMmE3MTQxN2I2Njc1YjExYWFjZTcyMTAyYTJlN2ZkZThmNWM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDE1OjQyOjM3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBQcm9kcml2ZSBQM003NTAgJiBQM003NDQ4IChQM014KSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFByb2RyaXZlIFAzTTc1MCAoUFBDNzUwICYgTVY2NDQ2MCkKICAgIGFuZCB0aGUgUDNNNzQ0OCAoTVBDNzQ0OCAmIE1WNjQ0NjApIFBNQyBtb2R1bGVzLiBCb3RoIG1vZHVsZXMgYXJlCiAgICBxdWl0ZSBzaW1pbGFyIGFuZCBzaGFyZSB0aGUgc2FtZSBib2FyZCBkaXJlY3RvcnkgInByb2RyaXZlL3AzbXgiCiAgICBhbmQgdGhlIHNhbWUgY29uZmlnIGZpbGUgInAzbXguaCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFiZGQ0NjgzMmFlYjU2OWY1ZTA0YjFmMjBmNjQzMTg1MjViNjUyNWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjkgMTI6NTM6MTUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gY29tbW9uL2NtZF9lbGYuYzogRW5hYmxlIGxvYWRhZGRyIGFzIHBhcmFtZXRlciBpbiBib290dnggY29tbWFuZAoKICAgIEluIHRoZSBib290dnggY29tbWFuZCB0aGUgbG9hZCBhZGRyZXNzIHdhcyBvbmx5IHJlYWQgZnJvbSB0aGUgZW52CiAgICB2YXJpYWJsZSAibG9hZGFkZHIiIGFuZCBub3Qgb3B0aW9uYWxseSBwYXNzZWQgYXMgcGFyYW10ZXIgYXMgZGVzY3JpYmVkCiAgICBpbiB0aGUgaGVscC4gVGhpcyBpcyBmaXhlZCB3aXRoIHRoaXMgcGF0Y2guIFRoZSBiZWhhdmlvdXIgaXMgbm93IHRoZQogICAgc2FtZSBhcyBpbiB0aGUgYm9vdGVsZiBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZTI2ZjEwNzRjM2FjMWJkOGZkMDk0ZjBkYzRhMWM0YTBiMTVhNTkyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDEyOjAzOjU3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGluY2x1ZGUvcHBjNDQwLmggbWlub3IgZXJyb3IgYWZmZWN0aW5nIGludGVycnVwdHMKCiAgICBGaXhlZCBpbmNsdWRlL3BwYzQ0MC5jIGZvciBVSUMgYWRkcmVzcyBCdWcKCiAgICBDb3JyZWN0cyBidWcgYWZmZWN0aW5nIHRoZSBhZGRyZXNzZXMgZm9yIHRoZSB1bml2ZXJzYWwgaW50ZXJydXB0CiAgICBjb250cm9sbGVyIFVJQzIgYW5kIFVJQzMgb24gdGhlIFBQQzQ0MCBFcHgsIEdSeCwgYW5kIFNQRSBjaGlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOTM5ZDk2OTQ0M2NjZjMxNmNhYjJiZjMyYWIxMDI3ZDRkYjViYTFhCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MTc6MjcgMjAwNiAtMDYwMAoKICAgIE1ha2UgZnNsLWkyYyBub3QgY29uZmxpY3Qgd2l0aCBTT0ZUIEkyQwoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTQxOThiZjc2OGZkYzk1OGUzYzFhZmQyNDA0ZTUyNjIyMDhlOThkNwpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUdWUgTm92IDI4IDE2OjE3OjE4IDIwMDYgLTA2MDAKCiAgICBGaXggSTJDIG1hc3RlciBhZGRyZXNzIGluaXRpYWxpemF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YzZDA0NWU1MWNhOGRjYzZjZjc1OTgyNzE0MDg2MWQ2YWMyNWMwNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMjM6MzE6MTkgMjAwNiAtMDYwMAoKICAgIEFzc2lnbiBtYWludGFpbmVycyBmb3IgbXBjODM0OWVtZHMgYW5kIG1wYzgzNjBlbWRzCgogICAgRGF2ZSBmb3IgbXBjODM2MGVtZHMsIGFuZCBtZSBmb3IgbXBjODM0OWVtZHMuCgpjb21taXQgMWFhOTM0YzgxYjc3ZjIwODBkM2NhNGIyMjZlYWI2N2IxN2EzMzk2MQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMjM6Mjg6MzMgMjAwNiAtMDYwMAoKICAgIEVsaW1pbmF0ZSBnY2MgNCAndXNlZCB1bmluaXRpYWxpemVkJyB3YXJuaW5ncyBpbiBkcml2ZXJzL3FlL3VjY2YuYwoKICAgIGdpdmUgaW5pdGlhbCB2YWx1ZXMgZm9yIHJlZ19udW0sIHNoaWZ0LCBwX2NteHVjciBpbiB1Y2Nfc2V0X2Nsa19zcmMKICAgIHNpbmNlIHRoZXkgYXJlIHBhc3NlZCBieSByZWZlcmVuY2UgdG8gdWNjX2dldF9jbXh1Y3JfcmVnIGFuZCBhc3NpZ25lZC4KCmNvbW1pdCBlODU3YTViZGIzOTU0Yjg5NmMwOTIwY2I5ZDhkMmIxYjljMTA3Y2U1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyOCAxMjowOTozNSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogTWlzY2VsbGFuZW91cyBjb2RlIHN0eWxlIGZpeGVzCgogICAgSW1wbGVtZW50IHZhcmlvdXMgY29kZSBzdHlsZSBmaXhlcyBhbmQgc2ltaWxhciBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU5NTgxYzU2YWI1ZDZlMDIwN2RkYWMzYjJjMWQ1NWNiMzZlYzcwNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxNzo1NTo0OSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBFbmFibGUgdGhlIEljZUN1YmUvbGl0ZTUyMDAgdmFyaWFudHMgdG8gcGFzcyBhIGRldmljZSB0cmVlIHRvIExpbnV4LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29kZSBhbmQgY29uZmlndXJhdGlvbiBuZWNlc3NhcnkgdG8gYm9vdCB3aXRoIGFuCiAgICBhcmNoL3Bvd2VycGMgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3MzJmYWVjOTVhODNjYjQ2OGI0ODUwYWU4MDdjODMwMWRkZThmNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MDk6MjQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiA0NDBTUCBSZXYuIEMgZGV0ZWN0aW9uIGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU3ZjNlOWZmMDFmYmQ3ZmE3MmViNDJhOTY3NWZiZWQ2YmM0NzM2YjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTE6MDQ6NDUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHBhdGNoIG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNThlM2IxNGMxOGVkMzI4OGNlZWY4ZDA4Njk0NmRiZjNkZjY0Y2NmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxMTowNDo0NSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcGF0Y2ggbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZjRiNjAyZWM3NTI0YTAzMmJkZjNjNmQyOGM3ZjUyNWE0YTY3ZWFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMjI6NTM6NTMgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBmNmU0OTVmNTRjZGI4ZmUzNDBiOWMwM2RlYWI0MGFkNzQ2ZDUyZmFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjQzOjI1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eF9lbmV0LmM6IENvcnJlY3QgdGhlIHNldHRpbmcgb2Ygem1paWZlciByZWdpc3RlcgoKICAgIFBhdGNoIGJlbG93IGNvcnJlY3RzIHRoZSBzZXR0aW5nIG9mIHRoZSB6bWlpZmVyIHJlZ2lzdGVyLCBpdCB3YXMKICAgIG92ZXJ3cml0dGluZyB0aGUgcmVnaXN0ZXIgcmF0aGVyIHRoYW4gT1JpbmcgdGhlIHNldHRpbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5laWwgV2lsc29uIDxOV2lsc29uQGFpcnNwYW4uY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQxYTcyNTQ1Mjk2ODAwYjdlMjE5ZjkzMTA0YWQ1ODM2ZjAwMDNkNjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTc6MzQ6MTAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gU2VsZWN0IE5BTkQgZW1iZWRkZWQgZW52aXJvbm1lbnQgZnJvbSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgVGhlIGN1cnJlbnQgTkFORCBCb290bG9hZGVyIHNldHVwIGZvcmNlcyB0aGUgZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlcyB0byBiZSBpbiBsaW5lIHdpdGggdGhlIGJvb3Rsb2FkZXIuIFRoaXMgY2hhbmdlCiAgICBlbmFibGVzIHRoZSBjb25maWd1cmF0aW9uIHRvIGJlIG1hZGUgaW4gdGhlIGJvYXJkIGluY2x1ZGUKICAgIGZpbGUgaW5zdGVhZCBzbyB0aGF0IGl0IGNhbiBiZSBpbmRpdmlkdWFsbHkgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNTc4NDg2Mjg1N2MzYzIyMTQ0OThkZWZjZmVkODRmZjEzN2ZiODFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjIyOjE5IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmRfd2FpdCgpIHRpbWVvdXQgZml4ZXMKCiAgICBUd28gZml4ZXMgZm9yIHRoZSBuYW5kX3dhaXQoKSBmdW5jdGlvbiBpbgogICAgZHJpdmVycy9uYW5kL25hbmRfYmFzZS5jOgoKICAgIDEuIFVzZSBjb3JyZWN0IHRpbWVvdXRzLiBUaGUgb3JpZ2luYWwgdGltZW91dHMgaW4gTGludXgKICAgIHNvdXJjZSBhcmUgNDAwbXMgYW5kIDIwbXMgbm90IDQwcyBhbmQgMjBzCgogICAgMi4gUmV0dXJuIGNvcnJlY3QgZXJyb3IgdmFsdWUgaW4gY2FzZSBvZiB0aW1lb3V0LiAwIGlzCiAgICBpbnRlcnByZXRlZCBhcyBPSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSdWkgU291c2EgPHJ1aS5zb3VzYUBsYXBvc3RlLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYTU1NTNiMDk1YmYwNGY0ZjEwOWFkN2U1NjVkYWUzYWJhNDdiMjMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjA0OjA2IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFsbG93IENPTkZJR19PRl9GTEFUX1RSRUUgdG8gYm9vdCBhIG5vbi1hcmNoL3Bvd2VycGMga2VybmVsCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgYW4gYXJjaC9wcGMga2VybmVsIHRvIGJlIGJvb3RlZCBieSBqdXN0IHBhc3NpbmcgMSBvciAyCiAgICBhcmd1bWVudHMgdG8gYm9vdG0uICBJdCByZW1vdmVzIHRoZSBnZXRlbnYoImRpc2FibGVfb2YiKSB0ZXN0IHRoYXQgdXNlZAogICAgdG8gYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5Mzk4ZTAxODU5Mzc4MmM1ZmE3ZDA3NDE5NTVmYzEyNTZiMzRjMWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNTozMjo0MiAyMDA2ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDE3MjliOTJjZGU1NzU0NzY2ODRiZmZlODE5ZDBiNzc5MWI1N2JmZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NTI6MDQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBGaXggcHJvYmxlbSB3aXRoIGJvYXJkIHNwZWNpZmljIHJlc2V0IGNvZGUgKG5vdyBmb3IgcmVhbCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2M1ZWU4YTkyYTBlM2NhNmY3MjdhZjcxYjhmZDIwNjQ2MGM3YWZkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0OTo1MSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBhbHByOiByZW1vdmUgdW51c2VkIGJvYXJkIHNwZWNpZmljIGZsYXNoIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZjk0ZDE2MmUyYjVmMGVkYzI4ZDlmYjExNDgyNTAyYzQ0ZDIxOGUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ4OjQxIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogRml4IHByb2JsZW0gd2l0aCBib2FyZCBzcGVjaWZpYyByZXNldCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjMGMyZWM3MjVhZWM5NTI0YTE3N2E3N2NlNzU1NTllNjQ0YTkzMWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDY6MDYgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHRlc3RpbmcgNHh4IGVuZXQgUEhZIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFjMmNlMjI2MjA2OTUxMGYzMWM3ZDNmZDdlZmQzZDU4YjhjMGMxNDgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6MTI6MTcgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIEFMUFIgYm9hcmQgc3VwcG9ydCAoNDQwR1gpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4YjQ4NTc3NjY5OGMzZDcxZWM1YTIxNWUzOTIxMjNiNGMxNWFmYTMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjUxOjIxIDIwMDYgKzAxMDAKCiAgICBBZGQgYSBzbWFsbCBSRUFETUUgd2l0aCBpbmZvcm1hdGlvbiBvbiB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlci4KCmNvbW1pdCBhZTNiNzcwZTRlYWU4ZTk4YjZlOWUyOTY2MmUxOGM0N2ZkZjAxNzFmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0Njo0NiAyMDA2ICswMTAwCgogICAgRml4IHNvbWUgZW5kaWFubmVzcyBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IDdiNTliM2M3YThjZTJlNGI1NjdhYmY5OWMxY2Q2NjdiZjM1Yjk0MTgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjQ0OjU4IDIwMDYgKzAxMDAKCiAgICBJbnRyb2R1Y2VkIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBDT05GSUdfVVNCX09IQ0lfTkVXIGluIG9yZGVyIHRvIGJlIGFibGUKICAgIHRvIGNob29zZSBiZXR3ZWVuIHRoZSBvbGQgYW5kIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVycy4KCmNvbW1pdCA1M2UzMzZlOWZmYzUxMDM1YmRjNGU1ODY3NjMxYjMzNzg3NjFiNGRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0MzowOSAyMDA2ICswMTAwCgogICAgTW9kaWZpZWQgdGhlIG1wYzV4eHggYW5kIHRoZSBwcGM0eHggY3B1IHRvIHVzZSB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlcgogICAgYW5kIGFkYXB0ZWQgYm9hcmQgY29uZmlncyBUUU01MjAwIGFuZCB5b3NlbWl0ZSBhY2NvcmRpbmdseS4gVGhpcyBjb21taXQKICAgIGFsc28gbWFrZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJvb3QgaHViIHBvcnRzIGNvbmZpZ3VyYWJsZQogICAgKENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUykuCgpjb21taXQgNzhkNjIwZWJiNTg3MWQyNTIyNzBkZWRmYWQ2MGM2NTY4OTkzYjc4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGF0bGFzLmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjMgMjI6NTg6NTggMjAwNiArMDEwMAoKICAgIFVwZGF0ZXMgZm9yIFRRTTUyMDAgbW9kdWxlczoKICAgIC0gZml4IG9mZi1ieS1vbmUgZXJyb3IgaW4gYm9hcmQvdHFtNTIwMC9jYW01MjAwX2ZsYXNoLmMgZXJyb3IgbWVzc2FnZQogICAgLSBzaW1wbGlmeSAidWRhdGUiIGRlZmluaXRpb25zCgpjb21taXQgMjA1MzI4MzMwNGVlZGRmMjUwZDEwOWU2NzkxZWI2ZmE0Y2FkMTRmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyMiAxMzoyMDo1MCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHggc3RhcnQuUzogRml4IGZvciBwcm9jZXNzb3IgZXJyYXRhCgogICAgRml4ZWQgY3B1L3BwYzR4eC9zdGFydC5TIGZvciA0NDBFUHggRXJyYXRhOiBmdXJ0aGVyIGNvcnJlY3RzIFBQQzQ0MEVQeAogICAgZXJyYXRhIDEuMTI6IDQ0MF8zMyBieSBtb3ZpbmcgcGF0Y2ggdXAgaW4gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZWY2MjUxNDAzZjYzNzg0MTAwMGUwZmVmOWU4MzJhYTAxMzM5ODIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDIwIDIwOjM5OjUyIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIFNlcXVvaWEgY29uZmlnIGZpbGUgdG8gc3VwcG9ydCA2NE1CeXRlIE5PUiBGTEFTSAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNGJiZDhkYTE2NGI5NzZkMzg2MTZiZDljNjljNWU4NmUxOTNjZGYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjAgMTA6Mjg6MzAgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCAyNjA0MjFhMjFlOTM0YTY4ZDMxZmI2MTI1YjBmYmQyNjMxYThjYTIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDEzIDEzOjU1OjI0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIENGSSBkcml2ZXIgQU1EIENvbW1hbmQgU2V0IFRvcCBib290IGdlb21ldHJ5IHJldmVyc2FsLCBldGMuIFtVcGRhdGVkXQoKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciBBTUQgY29tbWFuZCBzZXQgVG9wIEJvb3QgZmxhc2ggZ2VvbWV0cnkgcmV2ZXJzYWwKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIEpFREVDIE1hbnVmYWN0dXJlciBJRCBhbmQgRGV2aWNlIElECiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgZGlzcGxheWluZyBjb21tYW5kIHNldCwgbWFudWZhY3R1cmVyIGlkIGFuZAoJIGRldmljZSBpZHMgKGZsaW5mbykKICAgICAgICogTWFrZXMgZmxpbmZvIG91dHB1dCB0byBiZSBjb25zaXN0ZW50IHdoZW4gQ0ZHX0ZMQVNIX0VNUFRZX0lORk8gZGVmaW5lZAogICAgICAgKiBSZW1vdmVzIG91dGRhdGVkIGNoYW5nZSBoaXN0b3J5IChyZWZlciB0byBnaXQgbG9nIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogVG9sdW5heSBPcmt1biA8bGlzdG1lbWJlckBvcmt1bi51cz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMjFiNTExZDRjNTA0MDhmNDg1M2Y0NmYwNmI2MDEyNzIxOTYyMjNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTIgMjE6MTM6MjMgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBjZTNmMWE0MGM1MDdhZmJhYjA2YzVlYjU4Y2NkYzY3MTNlZGEzMjQ1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU2F0IE5vdiAxMSAyMjo0ODoyMiAyMDA2ICswMTAwCgogICAgRGlzYWJsZSB0aGUgd2F0Y2hkb2cgaW4gdGhlIGRlZmF1bHQgY29uZmlnIGZvciB0aGUgVjM4QiBib2FyZC4KCmNvbW1pdCA0NGE0N2U2ZGIyNjk0ODQxMjExZjFjOGZkYmFmZDM2OTkyZTljZDFhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU2F0IE5vdiAxMSAyMjo0MzowMCAyMDA2ICswMTAwCgogICAgQ2hhbmdlIHRoZSBHUElPIHBpbiBtdWx0aXBsZXhpbmcgY29uZmlndXJhdGlvbiBmb3IgVjM4Qi4gVGhlIFVTQiBHUElPIHBpbgogICAgZ3JvdXAgaXMgZW5hYmxlZCBmb3IgVVNCIGVhcmxpZXIgKGluIGNwdV9pbml0X2YoKSBpbnN0ZWFkIG9mCiAgICB1c2JfbG93bGV2ZWxfaW5pdCgpKS4KCmNvbW1pdCA5MTY1MGIzZTRkZTY4ODAzOGQ0ZjcxMjc5YzQ0ODU4ZTNlMmM2ODcwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgNiAxNzowNjozNiAyMDA2ICswMTAwCgogICAgU2VxdWVudGlhbCBhY2Nlc3NlcyB0byBub24tZXhpc3RlbnQgbWVtb3J5IG11c3QgYmUgc3luY2hyb25pemVkLAogICAgYXQgbGVhc3Qgb24gRzIgY29yZXMuCgogICAgVGhpcyBmaXhlcyBnZXRfcmFtX3NpemUoKSBwcm9ibGVtcyBvbiBNUEM1MjAwIFJldi4gQiBib2FyZHMuCgpjb21taXQgYmU1ZTYxODE1ZDVhMWZhYzI5MGNlOWMwZWYwOWNiNmE4ZTQyODhmYQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxOToxNTowMCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogVXBkYXRlIDgzeHggdG8gdXNlIGZzbF9pMmMuYwoKICAgIFVwZGF0ZSB0aGUgODN4eCB0cmVlIHRvIHVzZSBJMkMgc3VwcG9ydCBpbiBkcml2ZXJzL2ZzbF9pMmMuYy4gIERlbGV0ZQogICAgY3B1L21wYzgzeHgvaTJjLmMsIGluY2x1ZGUvYXNtLXBwYy9pMmMuaCwgYW5kIGFsbCByZWZlcmVuY2VzIHRvIHRob3NlIGZpbGVzLgogICAgQWRkZWQgbXVsdGlwbGUgSTJDIGJ1cyBzdXBwb3J0IHRvIGZzbF9pMmMuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyMzlkNzRiMWM5Mzc5ODRiYzUxOTA4M2E4ZTdkZTM3M2EzOTBmMDYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTI6MDA6MjggMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgQ0ZHX0lNTVJCQVIgd2l0aCBDRkdfSU1NUgoKICAgIFJlcGxhY2UgYWxsIGluc3RhbmNlcyBvZiBDRkdfSU1NUkJBUiB3aXRoIENGR19JTU1SLCBzbyB0aGF0IHRoZSA4M3h4CiAgICB0cmVlIG1hdGNoZXMgdGhlIG90aGVyIDh4eHggdHJlZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmN2ZiMmU3MDNlYzk2ODg1NDE0MTY5NjI3MjRhZGZmNzBhNzMyMmNiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjQ3OjExIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBMaW5kZW50IGFuZCBjbGVhbiB1cCBjcHUvbXBjODN4eC9zcGVlZC5jCgpjb21taXQgOTBmMzBhNzEwYTNjNjE5YjU0MDU4NjBhNjg2YzRkZGZjNDk1ZDRiNgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODowNTo1MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24KCiAgICBUaGUgODM0eCByZXYxLnggc2lsaWNvbiBoYXMgb25lIENQVTUgZXJyYXRhLgoKICAgIFRoZSBpc3N1ZSBpcyB3aGVuIHRoZSBkYXRhIGNhY2hlIGxvY2tlZCB3aXRoCiAgICBISUQwW0RMT0NLXSwgdGhlIGRjYnogaW5zdHJ1Y3Rpb24gbG9va3MgbGlrZSBuby1vcCBpbnN0LgoKICAgIFRoZSByaWdodCBiZWhhdmlvciBvZiB0aGUgZGF0YSBjYWNoZSBpcyB3aGVuIHRoZSBkYXRhIGNhY2hlCiAgICBMb2NrZWQgd2l0aCBISUQwW0RMT0NLXSwgdGhlIGRjYnogaW5zdHJ1Y3Rpb24gYWxsb2NhdGVzCiAgICBuZXcgdGFncyBpbiBjYWNoZS4KCiAgICBUaGUgODM0eCByZXYzLjAgYW5kIGxhdGVyIGFuZCA4MzYwIGhhdmUgbm90IHRoaXMgYnVnIGluc2lkZS4KCiAgICBTbywgd2hlbiA4MzR4IHJldjMuMC84MzYwIGFyZSB3b3JraW5nIHdpdGggRUNDLCB0aGUgZGNiegogICAgaW5zdHJ1Y3Rpb24gd2lsbCBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZSwgdGhlIHByb2Nlc3NvciB3aWxsCiAgICBjaGVja3N0b3AgcmVzZXQuCgogICAgSG93ZXZlciwgdGhlIDgzNHggcmV2MS54IGNhbiB3b3JrIHdpdGggRUNDIHdpdGggdGhlc2UgY29kZSwKICAgIGJlY2F1c2UgdGhlIHNpbGxpY29uIGhhcyB0aGlzIGNhY2hlIGJ1Zy4gVGhlIGRjYnogd2lsbCBub3QKICAgIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLgogICAgUmVhbGx5LCBpdCBpcyB0aGUgZmF1bHQgY29kZSBydW5uaW5nIG9uIGZhdWx0IHNpbGxpY29uLgoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24uIEluc3RlYWQgb2YKICAgIENQVSBGUCB3cml0aW5nIHRvIGluaXRpYWxpc2UgdGhlIEVDQy4KCiAgICBDSEFOR0VMT0c6CiAgICAqIEZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uIGluc3RlYWQgb2YgQ1BVIEZQCiAgICB3cml0aW5nIHRvIGluaXRpYWxpc2UgdGhlIEVDQyBtZW1vcnkuIE90aGVyd2lzZSwgaXQKICAgIHdpbGwgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUsIFRoZSBwcm9jZXNzb3Igd2lsbCBjaGVja3N0b3AKICAgIHJlc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmYwYjU0MmQ2NzczYTVhMWNiY2U3NzY5MWYwMDliMDZkOWFlYjU3ZApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMDoxMDo0MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIE9GX0ZMQVRfVFJFRSBiaXRzIHRvIDgzeHggYm9hcmRzCgogICAgYWRkIGZ0X3BjaV9zZXR1cCwgT0ZfQ1BVLCBPRl9TT0MsIE9GX1RCQ0xLLCBhbmQKICAgIFNURE9VVF9QQVRIIGNvbmZpZ3VyYXRpb24gYml0cyB0byBtcGM4MzQ5ZW1kcywKICAgIG1wYzgzNDlpdHgsIGFuZCBtcGM4MzYwZW1kcyBib2FyZCBjb2RlLgoKICAgIHJlZG8gZW52aXJvbm1lbnQgdG8gdXNlIGJvb3RtIHdpdGggdGhlIGZkdGFkZHIKICAgIGZvciBib290aW5nIEFSQ0g9cG93ZXJwYyBrZXJuZWxzIGJ5IGRlZmF1bHQsCiAgICBhbmQgcHJvdmlkZSBkZWZhdWx0IGZkdGFkZHIgdmFsdWVzLgoKY29tbWl0IDQ4MDQxMzY1YjM0MjA1ODlhZDQ2NGViYzc3NTJlMDA1MzUzOGI3MjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDEgMDA6MDc6MjUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGNoYW5nZSBmdCBjb2RlIHRvIG1vZGlmeSBsb2NhbC1tYWMtYWRkcmVzcyBwcm9wZXJ0eQoKICAgIFVwZGF0ZSA4M3h4IE9GIGNvZGUgdG8gdXBkYXRlIGxvY2FsLW1hYy1hZGRyZXNzIHByb3BlcnRpZXMKICAgIGZvciBldGhlcm5ldCBpbnN0ZWFkIG9mIHRoZSBvYnNvbGV0ZSAnYWRkcmVzcycgcHJvcGVydHkuCgpjb21taXQgOWNhODgwYTI1MDg3MGE3ZDU1NzU0MjkxYjU1OTFkMmI1ZmU4OWI1NApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMjE6MjM6MTYgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBkdWFsIEkyQyBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUlUWCwgTVBDODM0OUVNRFMsIFRRTTgzNHgsIGFuZCBNUEM4MzYwRU1EUwoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGFuIGltcHJvdmVkIEkyQyBzZXRfc3BlZWQoKSwgd2hpY2ggaGFuZGxlcyBhbGwgY2xvY2sKICAgIGZyZXF1ZW5jaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWM0YjU2MjJjZTA1MGI1ZWUxZTE1NGI5OGRmNjMwZDc3ODY2MTYzMgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6NTQ6NTkgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCB0aGUgUkVBRE1FLm1wYzgzNjBlbWRzCgogICAgYWRkIGRvYy9SRUFETUUubXBjODM2MGVtZHMgdG8gYWNjb21wYW55IHRoZSBuZXcgYm9hcmQgc3VwcG9ydAoKY29tbWl0IDc3MzdkNWM2NThjNjA2Zjk5OWRmYmUzZTg2YjBmZWQ0OWU1YzUwZWYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTI6MTE6MTUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBRRSBldGhlcm5ldCBzdXBwb3J0CgogICAgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBRVUlDQyBFbmdpbmUgYmFzZWQgVUNDIGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlLgoKY29tbWl0IDVmODIwNDM5NGUzOWJiZThjZDlmMDhiOGY4ZDE0NWI2YzAxZjdjNzMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTk6MzM6NDQgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBNUEM4MzYwRU1EUyBiYXNpYyBib2FyZCBzdXBwb3J0CgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODM2MEVNRFMgYm9hcmQuCiAgICBJbmNsdWRlcyBERFIsIERVQVJULCBMb2NhbCBCdXMsIFBDSS4KCmNvbW1pdCAyMzg5MmU0OTM1MmRlNzRmN2ZhYzM2ZmY5MGJiMWJlMTQzZDE5NWUzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOTozMDo0MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIHRoZSBRVUlDQyBFbmdpbmUgKFFFKSBpbW1hcCBmaWxlCgogICAgY29tbW9uIFFFIGltbWFwIGZpbGUuICBBbHNvIHJlcXVpcmVkIGZvciA4MzYwLgoKY29tbWl0IGI3MDE2NTJhNDk5MmJkY2M2MmZiMWE2MDM4YTg1YmVlZjllNTVkYTQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjI1OjM4IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgODM2MCBzcGVjaWZpY3MgdG8gODN4eCBpbW1hcAoKICAgIE1haW5seSBhZGQgUUUgZGV2aWNlIGRlcGVuZGVuY2llcywgd2l0aCBhcHByb3ByaWF0ZSA4MzYwIHByb3RlY3Rpb24uCiAgICBMaW5kZW50IGFsc28gcnVuLgoKY29tbWl0IDk4ODgzMzMyNGE3ZmRhNDgyYzhhYzNjYTIzZWI1MzlmODIzMmU0MDQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjE0OjQxIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggUENJLCBVU0IsIGJvb3RhcmdzIGZvciBNUEM4MzQ5RS1tSVRYCgogICAgUFJFUkVRVUlTSVRFIFBBVENIRVM6CgogICAgKiBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkOgoKICAgICAgMSkgRE5YIzIwMDYwOTIxNDIwMDAwMTUgIkFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWCAgMS8yIgogICAgICAyKSBETlgjMjAwNjA5MjE0MjAwMDAyNCAiQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYICAyLzIiCgogICAgQ0hBTkdFTE9HOgoKICAgICogRm9yIHRoZSA4MzQ5RS1tSVRYLCBmaXggc29tZSBzaXplIHZhbHVlcyBpbiBwY2lfaW5pdF9ib2FyZCgpLCBlbmFibGUKICAgICAgdGhlIGNsb2NrIGZvciB0aGUgMm5kIFVTQiBib2FyZCAoTGludXgga2VybmVsIHdpbGwgaGFuZyBvdGhlcndpc2UpLAogICAgICBhbmQgZml4IHRoZSBDT05GSUdfQk9PVEFSR1MgbWFjcm8uCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWQ2YjUxM2IzMTA3MGJkMGMwMDM3OTJlZDFjM2U3ZjVkNzQwMzU3CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxODo0NDo0MiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYCgogICAgUFJFUkVRVUlTSVRFIFBBVENIRVM6CgogICAgKiBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkOgoKICAgICAgMSkgRE5YIzIwMDYwOTA3NDIwMDAwMjQgIkFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMiCiAgICAgIDIpIEROWCMyMDA2MDkwNzQyMDAwMDMzICJNdWx0aS1idXMgSTJDIGltcGxlbWVudGF0aW9uIG9mIE1QQzgzNHgiCiAgICAgIDMpIEROWCMyMDA2MDkxMjQyMDAwMDQxICJBZGRpdGlvbmFsIE1QQzgzNDkgc3VwcG9ydCBmb3IgbXVsdGlidXMgaTJjIgogICAgICA0KSBETlgjMjAwNjA5MTI0MjAwMDA3OCAiQWRkIHN1cHBvcnQgZm9yIHZhcmlhYmxlIGZsYXNoIG1lbW9yeSBzaXplcyBvbiA4M3h4IHN5c3RlbXMiCiAgICAgIDUpIEROWCMyMDA2MDkxMjQyMDAwMDY5ICJBZGQgc3VwcG9ydCBmb3IgRXJyYXRhIEREUjYgb24gTVBDIDgzNHggc3lzdGVtcyIKCiAgICBDSEFOR0VMT0c6CgogICAgKiBBZGQgc3VwcG9ydCBmb3IgdGhlIEZyZWVzY2FsZSBNUEM4MzQ5RS1tSVRYIHJlZmVyZW5jZSBkZXNpZ24gcGxhdGZvcm0uCiAgICAgIFRoZSBzZWNvbmQgVFNFQyAoVml0ZXNzZSA3Mzg1IHN3aXRjaCkgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODNkYTZkOWI0NDZjYzEyMTIzNDU1ODQ0YWQxMTg3ZTIzNzU2MjZmCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVR1ZSBTZXAgMTIgMTA6MTU6NTMgMjAwNiAtMDQwMAoKICAgIEFkZGl0aW9uYWwgTVBDODM0OSBzdXBwb3J0IGZvciBtdWx0aWJ1cyBpMmMKCiAgICBIZWxsbywKCiAgICBIZXJlIGlzIGEgcGF0Y2ggZm9yIGEgZmlsZSB0aGF0IHdhcyBhY2NpZGVudGFsbHkgbGVmdCBvdXQgb2YgYSBwcmV2aW91cwogICAgYXR0ZW1wdC4KCiAgICBJdCBhY2NvbXBhbmllcyB0aGUgcGF0Y2ggd2l0aCB0aWNrZXQgRE5YIzIwMDYwOTA3NDIwMDAwMjQKCiAgICBDSEFOR0VMT0c6CgkgICAgQ2hhbmdlIFBDSSBpbml0aWFsaXphdGlvbiB0byB1c2UgbmV3IG11bHRpLWJ1cyBJMkMgQVBJLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiMjRmMTE5ZDY3MmI3MDlkMTUzZmYyYWMwOTFkNGFhNjNlYzY4NzdkCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBTZXAgNyAxNjo1MTowNCAyMDA2IC0wNDAwCgogICAgTXVsdGktYnVzIEkyQyBpbXBsZW1lbnRhdGlvbiBvZiBNUEM4MzR4CgogICAgSGVsbG8sCgogICAgQXR0YWNoZWQgaXMgYSBwYXRjaCBpbXBsZW1lbnRpbmcgbXVsdGlwbGUgSTJDIGJ1c2VzIG9uIHRoZSBNUEM4MzR4IENQVQogICAgZmFtaWx5IGFuZCB0aGUgTVBDODM0OUVNRFMgYm9hcmQgaW4gcGFydGljdWxhci4KICAgIFRoaXMgcGF0Y2ggcmVxdWlyZXMgUGF0Y2ggMSAoQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcykuCiAgICBUZXN0aW5nIHdhcyBwZXJmb3JtZWQgb24gYSA1MzNNSHogYm9hcmQuCgogICAgLyoqKiBOb3RlOiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRpY2tldCBETlgjMjAwNjA4MzA0MjAwMDAyNyAqKiovCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CgogICAgQ0hBTkdFTE9HOgoJICAgIEltcGxlbWVudGVkIGRyaXZlci1sZXZlbCBjb2RlIHRvIHN1cHBvcnQgdHdvIEkyQyBidXNlcyBvbiB0aGUKICAgIE1QQzgzNHggQ1BVIGZhbWlseSBhbmQgdGhlIE1QQzgzNDlFTURTIGJvYXJkLiAgQXZhaWxhYmxlIEkyQyBidXMgc3BlZWRzCiAgICBhcmUgNTBrSHosIDEwMGtIeiBhbmQgNDAwa0h6IG9uIGVhY2ggYnVzLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiYjk5YWQ2ZDgyNTdiZjgyOGYxNTBkNDBmNTA3YjMwZDgwYTRhN2FlCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBTZXAgNyAxNjo1MDo1NCAyMDA2IC0wNDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcwoKICAgIEhlbGxvLAoKICAgIEF0dGFjaGVkIGlzIGEgcGF0Y2ggcHJvdmlkaW5nIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcyBhdCB0aGUKICAgIGNvbW1hbmQgbGV2ZWwuICBUaGUgc2Vjb25kIHBhcnQgb2YgdGhlIHBhdGNoIGluY2x1ZGVzIGFuIGltcGxlbWVudGF0aW9uCiAgICBmb3IgdGhlIE1QQzgzNHggQ1BVIGFuZCBNUEM4MzQ5RU1EUyBib2FyZC4KCiAgICAvKioqIE5vdGU6IFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGlja2V0IEROWCMyMDA2MDgzMDQyMDAwMDE4ICoqKi8KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCiAgICBPdmVydmlldzoKCiAgICAxLiBJbmNsdWRlIG5ldyAnaTJjJyBjb21tYW5kIChiYXNlZCBvbiBVU0IgaW1wbGVtZW50YXRpb24pIHVzaW5nCiAgICBDT05GSUdfSTJDX0NNRF9UUkVFLgoKICAgIDIuIEFsbG93IG11bHRpcGxlIGJ1c2VzIGJ5IGRlZmluaW5nIENPTkZJR19JMkNfTVVMVElfQlVTLiAgTm90ZSB0aGF0CiAgICB0aGUgY29tbWFuZHMgdG8gY2hhbmdlIGJ1cyBudW1iZXIgYW5kIHNwZWVkIGFyZSBvbmx5IGF2YWlsYWJsZSB1bmRlciB0aGUKICAgIG5ldyAnaTJjJyBjb21tYW5kIG1lbnRpb25lZCBpbiB0aGUgZmlyc3QgYnVsbGV0LgoKICAgIDMuIFRoZSBvcHRpb24gQ0ZHX0kyQ19OT1BST0JFUyBoYXMgYmVlbiBleHBhbmRlZCB0byB3b3JrIGluIG11bHRpLWJ1cwogICAgc3lzdGVtcy4gIFdoZW4gQ09ORklHX0kyQ19NVUxUSV9CVVMgaXMgdXNlZCwgdGhpcyBvcHRpb24gdGFrZXMgdGhlIGZvcm0KICAgIG9mIGFuIGFycmF5IG9mIGJ1cy1kZXZpY2UgcGFpcnMuICBPdGhlcndpc2UsIGl0IGlzIGFuIGFycmF5IG9mIHVjaGFyLgoKICAgIENIQU5HRUxPRzoKCSAgICBBZGRlZCBuZXcgJ2kyYycgbWFzdGVyIGNvbW1hbmQgZm9yIGFsbCBJMkMgaW50ZXJhY3Rpb24uICBUaGlzIGlzCiAgICBjb25kaXRpb25hbGx5IGNvbXBpbGVkIHdpdGggQ09ORklHX0kyQ19DTURfVFJFRS4gIE5ldyBjb21tYW5kcyBhZGRlZCBmb3IKICAgIHNldHRpbmcgSTJDIGJ1cyBzcGVlZCBhcyB3ZWxsIGFzIGNoYW5naW5nIHRoZSBhY3RpdmUgYnVzIGlmIHRoZSBib2FyZAogICAgaGFzIG1vcmUgdGhhbiBvbmUgKGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgd2l0aAogICAgQ09ORklHX0kyQ19NVUxUSV9CVVMpLiAgVXBkYXRlZCBOT1BST0JFIGxvZ2ljIHRvIGhhbmRsZSBtdWx0aXBsZSBidXNlcy4KICAgIFVwZGF0ZWQgUkVBRE1FLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiZWQ4NWNhZjg3MjcxNGViZjUzMDEzOTY3YTY5NWM5ZDYzYWNmYzY4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxODoxMzozNiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIEVycmF0YSBERFI2IG9uIE1QQyA4MzR4IHN5c3RlbXMKCiAgICBDSEFOR0VMT0c6CgogICAgKiBFcnJhdGEgRERSNiwgd2hpY2ggYWZmZWN0cyBhbGwgY3VycmVudCBNUEMgODM0eCBwcm9jZXNzb3JzLCBsaXN0cyBjaGFuZ2VzCiAgICAgIHJlcXVpcmVkIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCB2YXJpb3VzIHR5cGVzIG9mIEREUiBtZW1vcnkuICBUaGlzCiAgICAgIHBhdGNoIGltcGxlbWVudHMgdGhvc2UgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmZDZlNDcwZjYzOTg4MzAwMmM3YzU5ZDU2MjY5MGE1Y2IwZjQ4NjUKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDI1IDE4OjQ1OjIzIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggVFFNIGJ1aWxkIGJ5IGRlZmluaW5nIGEgQ0ZHX0ZMQVNIX1NJWkUgZm9yIGl0Cgpjb21taXQgMzEwNjhiN2M0YWJlZWZjYjJjOGZkNGZiZWNjYzhlYzZjNmQwNDc1YQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTc6MDc6MDAgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBmbGFzaCBtZW1vcnkgc2l6ZXMgb24gODN4eCBzeXN0ZW1zCgogICAgQ0hBTkdFTE9HOgoKICAgICogT24gODN4eCBzeXN0ZW1zLCB1c2UgdGhlIENGR19GTEFTSF9TSVpFIG1hY3JvIHRvIHByb2dyYW0gdGhlIExCQyBsb2NhbCBhY2Nlc3MKICAgICAgIHdpbmRvdyByZWdpc3RlcnMsIGluc3RlYWQgb2YgdXNpbmcgYSBoYXJkLWNvZGVkIHZhbHVlIG9mIDhNQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJmYzM0YWU2NmU3M2ZhNzg0MWQxYTAwNmRjMWI1ZGNiYzFmNzg5NjUKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM4OjEzIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBVbmlmaWVkIFRRTTgzNHggdmFyaWFibGUgbmFtZXMgd2l0aCA4M3h4IGFuZCBjb25zb2xpZGF0ZWQgbWFjcm9zCgogICAgVW5pZmllZCBUUU04MzR4IHZhcmlhYmxlIG5hbWVzIHdpdGggODN4eCBhbmQgY29uc29saWRhdGVkIG1hY3JvCiAgICBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIDgzNjAgYW5kIG90aGVyIHVwY29taW5nIDgzeHggZGV2aWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNmVkYTdmODBjY2MxM2Q2NTgwMjAyNjhjNTA3ZDcxNzNjZjJlOGFhCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxNDo0MToyMSAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogQ2hhbmdlZCB0byB1bmlmaWVkIG1weDgzeHggbmFtZXMgYW5kIGFkZGVkIGNvbW1vbiA4M3h4IGNoYW5nZXMKCiAgICBJbmNvcnBvcmF0ZWQgdGhlIGNvbW1vbiB1bmlmaWVkIHZhcmlhYmxlIG5hbWVzIGFuZCB0aGUgY2hhbmdlcyBpbiBwcmVwYXJhdGlvbgogICAgZm9yIHJlbGVhc2luZyBtcGM4MzYwIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODk0YzQ2YzI3YzY0ODkxZjkzYWMwNGVkZGU4NmE5ZmE5NzU4ZDkyCkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozNjowMiAyMDA2ICswODAwCgogICAgbXBjODN4eDogRml4IG1pc3NpbmcgYnVpbGQgZm9yIG1wYzgzNDllbWRzIHBjaS5jCgogICAgTWFrZSBwY2kgYnVpbGQgZm9yIG1wYzgzNDllbWRzCgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDlhODFmZjc0MGIyOWRlZWExZTJhYjA4YTNjMmFjMTM2YzJlNjIxOQpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6Mzk6NDkgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZWQgdW51c2VkIGZpbGUgcmVzZXR2ZWMuUyBmb3IgbXBjODN4eCBjcHUKCiAgICBSZW1vdmVkIHVudXNlZCBmaWxlIHJlc2V0dmVjLlMgZm9yIG1wYzgzeHggY3B1CgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDRmODk5ZmM0NjVjM2U0NGYyYjU1ZWNjNzA2MThmNTY5NmZjMGRkZgpBdXRob3I6IE5pY2sgU3BlbmNlIDxOaWNrLlNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgU2VwIDMwIDAwOjMyOjU5IDIwMDYgLTA3MDAKCiAgICBOQU5EIEZsYXNoIHZlcmlmeSBhY3Jvc3MgYmxvY2sgYm91bmRhcmllcwoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJvYmxlbSB3aGVuIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMKICAgIGRlZmluZWQKICAgIGFuZCB0aGUgd3JpdGUgY3Jvc3NlcyBhIGJsb2NrIGJvdW5kYXJ5LiBUaGUgcG9pbnRlciB0byB0aGUgdmVyaWZpY2F0aW9uCiAgICBidWZmZXIgKGJ1ZnN0YXJ0KSBpcyBub3QgYmVpbmcgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBzdGFydGluZyBvZiB0aGUKICAgIG5ldwogICAgYmxvY2sgc28gdGhlIHZlcmlmaWNhdGlvbiBvZiB0aGUgc2Vjb25kIGJsb2NrIGZhaWxzLgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEZpeCBOQU5EIEZMQVNIIHBhZ2UgdmVyaWZpY2F0aW9uIGFjcm9zcyBibG9jayBib3VuZGFyaWVzCgpjb21taXQgZjQ4NGRjNzkxYTM5MzI1MzcyMTNjNDNjNjU0Y2MxMjk1YzY0Yjg0YwpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDcgMDc6Mzk6NDYgMjAwNiAtMDcwMAoKICAgIEFkZGVkIFJHTUlJIHN1cHBvcnQgdG8gdGhlIFRTRUNzIGFuZCBNYXJ2ZWxsIDg4MTExMSBQaHkKCiAgICBBZGRlZCBhIHBoeSBpbml0aWFsaXphdGlvbiB0byBhZGp1c3QgdGhlIFJHTUlJIFJYIGFuZCBUWCB0aW1pbmcKICAgIEFsd2F5cyBzZXQgdGhlIFIxMDAgYml0IGluIDEwMCBCYXNlVCBtb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIFRTRUMgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4MzFjOGI4YTk3Nzk5ZGE3NzkyM2Q2YmJiNGMyNjBjMGQ0NTUyMWMKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMzoxMDowMCAyMDA2ICswODAwCgogICAgUmVtb3ZlIHNvbWUgdW51c2VkIENGRyBkZWZpbmUuCiAgICB1bmRlZiBDRkdfRFJBTV9URVNUCgpjb21taXQgOTljMDljNGRlYzM0Zjc3YzI0M2JmNTFiZWE1MzJlM2YzMzk0MTBhZApBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEzOjA3OjM2IDIwMDYgKzA4MDAKCiAgICBDaGFuZ2UgdGhlIFRFWFRfQkFTRSBmcm9tIDB4RkZGMDAwMDAgdG8gMHhGRjAwMDAwMC4KICAgIEJvdGggd29yay4gMHhGRjAwMDAwMCBzZWVtcyBtb3JlIHJlYXNvbmFibGUuCgpjb21taXQgYzU5MjAwNDQzMDcyMzUzMDQ0YWE0YmY3MzdhNWE2MGY5YTlhZjIzMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTm92IDIgMTU6MTU6MDEgMjAwNiArMDEwMAoKICAgIFJlbGVhc2UgVS1Cb290IDEuMS42Cgpjb21taXQgYzFmYmU0MTAzYTBkNmM4OTU3ZjkxMmFmOTAyZDcwNWJhNjc4MzZmMgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjE0OjQ4IDIwMDYgKzA4MDAKCiAgICBUaGlzIHBhdGNoIGNvbWVzIGZyb20gWXVsaSdzIHBvc3RlZCBwYXRjaCBvbiA4LzgvMjAwNgogICAgdGl0bGVkICJDRkkgRHJpdmVyIExpdHRsZS1FbmRpYW4gd3JpdGUgSXNzdWUiLgoKICAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvbWVzc2FnZS5waHA/bXNnX2lkPTM2MzExOTk5CgogICAgSWYgdGhhdCBwYXRjaCBhcHBsaWVkLCBwbGVhc2UgZGlzY2FyZCB0aGlzIG9uZS4KICAgIFVudGlsIG5vdyAsIEkgZG8gbm90IHNlZSBoaXMgcGF0Y2ggaXMgYXBwbGllZC4gU28gcGxlYXNlIGFwcGx5IHRoaXMgb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1bGkgQmFyY29oZW4gPHl1bGlAYXJhYmVsbGFzdy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjgyNWYxNThlNDQ5ZTFlOWNmNzRjMDhlNTcyOTU1ZTEyMjM5NGM5NgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjEyOjMxIDIwMDYgKzA4MDAKCiAgICBUc2kxMDggb24gY2hpcCBpMmMgc3VwcG9ydC4KCiAgICBUaGUgaTJjICBJbnRlcmZhY2UgcHJvdmlkZXMgYSBtYXN0ZXItb25seSwgc2VyaWFsIGludGVyZmFjZSB0aGF0IGNhbiBiZQogICAgdXNlZCBmb3IgaW5pdGlhbGl6aW5nIFRzaTEwOC9Uc2kxMDkgcmVnaXN0ZXJzIGZyb20gYW4gRUVQUk9NIGFmdGVyIGEKICAgIGRldmljZSByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyMjZlN2Q2ZjA5YjlhMWFjMDc0Y2Q5MThjODEyMjVhNDY4OWJiYTgKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxMTowNiAyMDA2ICswODAwCgogICAgVHNpMTA4IG9uIGNoaXAgcGNpIGNvbnRyb2xsZXIgc3VwcG9ydC4KCiAgICBJZiB0aGVyZSBpcyBubyBwY2kgY2FyZCwgdGhlIHRzaTEwOC8xMDkgcGNpIGNvbmZpZ3VyZSByZWFkIHdpbGwKICAgIGNhdXNlIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gdG8gdGhlIHByb2Nlc3Nvci4gUENJIGVycm9yIHNob3VsZAogICAgYWxzbyBiZSBjbGVhcmVkIGFmdGVyIHRoZSByZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDE5MjdjZWU5NzcxMjZlNTQ3Y2VlYmEyM2U0Zjk3OGYzNzdjZmI4ZgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjA4OjU1IDIwMDYgKzA4MDAKCiAgICBUdW5kcmEgdHNpMTA4IG9uIGNoaXAgRXRoZXJuZXQgY29udHJvbGxlciBzdXBwb3J0LgoKICAgIFRoZSBmb2xsb3dpbmcgaXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgRXRoZXJuZXQgY29udHJvbGxlcjoKICAgIFRoZSBUc2kxMDgvOSBFdGhlcm5ldCBDb250cm9sbGVyIGNvbm5lY3RzIFN3aXRjaCBGYWJyaWMgdG8gdHdvIGluZGVwZW5kZW50CiAgICBHaWdhYml0IEV0aGVybmV0IHBvcnRzLEUwIGFuZCBFMS4gIEl0IHVzZXMgYSBzaW5nbGUgTWFuYWdlbWVudCBpbnRlcmZhY2UKICAgIHRvIG1hbmFnZSB0aGUgdHdvIHBoeXNpY2FsIGNvbm5lY3Rpb24gZGV2aWNlcyAoUEhZcykuICBFYWNoIEV0aGVybmV0IHBvcnQKICAgIGhhcyBpdHMgb3duIHN0YXRpc3RpY3MgbW9uaXRvciB0aGF0IHRyYWNrcyBhbmQgcmVwb3J0cyBrZXkgaW50ZXJmYWNlCiAgICBzdGF0aXN0aWNzLiAgRWFjaCBwb3J0IHN1cHBvcnRzIGEgMjU2LWVudHJ5IGhhc2ggdGFibGUgZm9yIGFkZHJlc3MKICAgIGZpbHRlcmluZy4JSW4gYWRkaXRpb24sIGVhY2ggcG9ydCBpcyBicmlkZ2VkIHRvIHRoZSBTd2l0Y2ggRmFicmljCiAgICB0aHJvdWdoIGEgMi1LYnl0ZSB0cmFuc21pdCBGSUZPIGFuZCBhIDQtS2J5dGUgUmVjZWl2ZSBGSUZPLgoKICAgIEVhY2ggRXRoZXJuZXQgcG9ydCBhbHNvIGhhcyBhIHBhaXIgb2YgaW50ZXJuYWwgRXRoZXJuZXQgRE1BIGNoYW5uZWxzIHRvCiAgICBzdXBwb3J0IHRoZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSBkYXRhIGZsb3dzLiAgVGhlIEV0aGVybmV0IERNQSBjaGFubmVscwogICAgdXNlIGRlc2NyaXB0b3JzIHNldCB1cCBpbiBtZW1vcnksIHRoZSBtZW1vcnkgbWFwIG9mIHRoZSBkZXZpY2UsIGFuZAogICAgYWNjZXNzIHZpYSB0aGUgU3dpdGNoIEZhYnJpYy4gIFRoZSBFdGhlcm5ldCBDb250cm9sbGVyP3MgRE1BIGFyYml0ZXIKICAgIGhhbmRsZXMgYXJiaXRyYXRpb24gZm9yIHRoZSBTd2l0Y2ggRmFicmljLglUaGUgQ29udHJvbGxlciBhbHNvCiAgICBoYXMgYSByZWdpc3RlciBidXNpbnRlcmZhY2UgZm9yIHJlZ2lzdGVyIGFjY2Vzc2VzIGFuZCBzdGF0dXMgbW9uaXRvcgogICAgY29udHJvbC4KCiAgICBUaGUgUE1EIChQaHlzaWNhbCBNZWRpYSBEZXZpY2UpIGludGVyZmFjZSBvcGVyYXRlcyBpbiBNSUksIEdNSUksIG9yIFRCSQogICAgbW9kZXMuICBUaGUgTUlJIG1vZGUgaXMgdXNlZCBmb3IgY29ubmVjdGluZyB3aXRoIDEwIG9yIDEwMCBNYml0L3MgUE1Ecy4KICAgIFRoZSBHTUlJIGFuZCBUQkkgbW9kZXMgYXJlIHVzZWQgdG8gY29ubmVjdCB3aXRoIEdpZ2FiaXQgUE1Ecy4gIEludGVybmFsCiAgICBkYXRhIGZsb3dzIHRvIGFuZCBmcm9tIHRoZSBFdGhlcm5ldCBDb250cm9sbGVyIHRocm91Z2ggdGhlIFN3aXRjaCBGYWJyaWMuCgogICAgRWFjaCBFdGhlcm5ldCBwb3J0IHVzZXMgaXRzIHRyYW5zbWl0IGFuZCByZWNlaXZlIERNQSBjaGFubmVscyB0byBtYW5hZ2UKICAgIGRhdGEgZmxvd3MgdGhyb3VnaCBidWZmZXIgZGVzY3JpcHRvcnMgdGhhdCBhcmUgcHJlZGVmaW5lZCBieSB0aGUKICAgIHN5c3RlbSAodGhlIGRlc2NyaXB0b3JzIGNhbiBleGlzdCBhbnl3aGVyZSBpbiB0aGUgc3lzdGVtIG1lbW9yeSBtYXApLgogICAgVGhlc2UgZGVzY3JpcHRvcnMgYXJlIGRhdGEgc3RydWN0dXJlcyB0aGF0IHBvaW50IHRvIGJ1ZmZlcnMgZmlsbGVkCiAgICB3aXRoIGRhdGEgcmVhZHkgdG8gdHJhbnNtaXQgb3ZlciBFdGhlcm5ldCwgb3IgdGhleSBwb2ludCB0byBlbXB0eQogICAgYnVmZmVycyByZWFkeSB0byByZWNlaXZlIGRhdGEgZnJvbSBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc4YWEwYzM0MjdmM2VjZGViMzRhYWJmYmJlMmRkMjNiNmFkOGY0MGUKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTowMTozMyAyMDA2ICswODAwCgogICAgVHVuZHJhIHRzaTEwOCBoZWFkZXIgZmlsZS4KCiAgICBUaGUgVHVuZHJhIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24gKFR1bmRyYSkgVHNpMTA4IGlzIGEgaG9zdCBicmlkZ2UgZm9yCiAgICBQb3dlclBDIHByb2Nlc3NvcnMgdGhhdCBvZmZlcnMgbnVtZXJvdXMgc3lzdGVtIGludGVyY29ubmVjdCBvcHRpb25zIGZvcgogICAgZW1iZWRkZWQgYXBwbGljYXRpb24gZGVzaWduZXJzLiBUaGUgVHNpMTA4IGNhbiBpbnRlcmNvbm5lY3QgNjB4IG9yCiAgICBNUFggcHJvY2Vzc29ycyB0byBQQ0kvWCBwZXJpcGhlcmFscywgRERSMi00MDAgbWVtb3J5LCBHaWdhYml0IEV0aGVybmV0LAogICAgYW5kIEZsYXNoLiBQcm92aWRlZCB0aGUgbWFjcm8gZGVmaW5lIGZvciB0c2kxMDggY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3YzRkYjA5Njk5YzZiODkxNzZiMzEwMDRhZmNiODNlYjE1ODVkNDcKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1OToxNSAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgaGlnaCBsZXZlbCBjb2RlOnRzaTEwOCBpbml0ICsgbXBjNzQ0OGhwYzIuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNzgwMWI4YWIxMWM2MWI1NzdlNDU3NDJhNTE1YmIzYjIzYjgwMjQxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTc6MjEgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBNYWtlICxjb25maWcubWsgYW5kIGxpbmsgZmlsZSBmb3IgdGhlIG1wYzc0NDhocGMyIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0MTFjMGMzYmJjNzlmOWJhOGFlZjU4Mjk2YTQyZDhmOWQ4YTBhNgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU1OjA0IDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgVGhlIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MjViYjVkZGI1MGIyNDNmOTMxMjYyY2E4YzQ2OTU2NDA5NDcxOTE3CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTI6MjEgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBUaGUgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydCBsb3cgbGV2ZWwgYXNzZW1ibGUgbGFuZ3VhZ2UgaW5pdCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGM1Mjc4M2IzZDAyNGUxNTNjNDk3MmI5NzMzMmUzMTRiYzNiZGM0NgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjQ5OjUxIDIwMDYgKzA4MDAKCiAgICBHZW5lcmFsIGNvZGUgbW9kaWZpY2F0aW9uIGZvciBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0LgogICAgMS4gQWRkIDc0NDdBIGFuZCA3NDQ4IHByb2Nlc3NvciBzdXBwb3J0LgogICAgMi4gQWRkIHRoZSBmb2xsb3dpbmcgZmxhZ3MuCgogICAgQ0ZHX0NPTkZJR19CVVNfQ0xLIDogSWYgdGhlIDc0eHggYnVzIGZyZXF1ZW5jeSBjYW4gYmUgY29uZmlndXJlZCBkeW5hbWljYWxseQogICAgKHN1Y2ggYXMgYnkgc3dpdGNoIG9uIGJvYXJkKSwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgQ0ZHX0VYQ0VQVElPTl9BRlRFUl9SRUxPQ0FURTogSWYgYW4gZXhjZXB0aW9uIG9jY3VycyBhZnRlciB0aGUgdS1ib290CiAgICByZWxvY2F0ZXMgdG8gUkFNLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBDRkdfU0VSSUFMX0hBTkdfSU5fRVhDRVBUSU9OOiBJZiB0aGUgcHJpbnQgb3V0IGZ1bmN0aW9uIHdpbGwgY2F1c2UgdGhlCiAgICBzeXN0ZW0gaGFuZyBpbiBleGNlcHRpb24sIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIFRoZXJlIGlzIGEgZGVzaWduIGlzc3VlIGZvciB0c2kxMDgvMTA5IHBjaSBjb25maWd1cmUgIHJlYWQuIFdoZW4gcGNpIHNjYW4KICAgIHRoZSBzbG90cywgaWYgdGhlcmUgaXMgbm8gcGNpIGNhcmQsIHRoZSB0c2kxMDgvOSB3aWxsIGNhdXNlIGEgbWFjaGluZQogICAgY2hlY2sgZXhjZXB0aW9uIGZvciBtcGM3NDQ4IHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5MzY2YmY0MmYyMmQ2N2VmY2U4ZGEzZjhjNDBhNDNkNGEzYzI2OTUKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODozNDo0NyAyMDA2ICswODAwCgogICAgQWRkIFJFQURNRSBmaWxlIGZvciBtcGM3NDQ4aHBjMiBib2FyZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNTcyMWI1Y2VjMmJlNGJjZTc5Y2ZhZGUxN2VjOGY2YWExZTY3NTI2CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAyOjA0OjM4IDIwMDYgKzAxMDAKCiAgICBGaW5pc2ggdXAgc3VwcG9ydCBmb3IgTWFyZWxWMzhCIGJvYXJkCiAgICAgLSBhZGQgd2F0Y2hkb2cgc3VwcG9ydAogICAgIC0gZW5hYmxlIEdQSU9fV0tVUF83IHBpbiBmb3IgaW5wdXQKICAgICAtIGNvZGUgY2xlYW51cAoKY29tbWl0IGZmYTE1MGJjOTBjOTQzY2EyNjUxNzBiZDFiZTNmMjkzNjc0ZGQ1YzcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6NDU6NDYgMjAwNiArMDEwMAoKICAgIC0gRml4IGlzc3VlcyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgRUxESyA0IHdoZW4gY29tcGlsaW5nIGZvciBNYXJlbFYzOEI6CgkgICogcmVtb3ZlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIGV0aGFkZHIuYwoJICAqIGFkanVzdCBsaW5rZXIgc2NyaXB0IChmaXhlcyBhIGNyYXNoIHJlc3VsdGluZyBmcm9tIGluY29ycmVjdAoJICBkZWZpbml0aW9uIG9mIF9fdV9ib290X2NtZF9zdGFydCkKICAgIC0gU29tZSBNYXJlbFYzOEIgY29kZSBjbGVhbnVwLgoKY29tbWl0IGRhZTgwZjNjYWY5NzU0YTZkZDNkZGYzY2Y5MDNkMGM0NmNiZDQzODUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6Mzg6MTYgMjAwNiArMDEwMAoKICAgIC0gQWRkIE1QQzVYWFggcmVnaXN0ZXIgZGVmaW5pdGlvbiBNUEM1WFhYX1dVX0dQSU9fREFUQV9JIGFuZCBjaGFuZ2UgdGhlCiAgICAgIE1QQzVYWFhfV1VfR1BJT19EQVRBIG1hY3JvIHRvIE1QQzVYWFhfV1VfR1BJT19EQVRBX08gKHBlciBNUEM1MjAwIFVzZXIncwogICAgICBNYW51YWwpLiBSZXBsYWNlIHRoZSB1c2VzIG9mIE1QQzVYWFhfV1VfR1BJT19EQVRBIHdpdGgKICAgICAgTVBDNVhYWF9XVV9HUElPX0RBVEFfTyBmb3IgYWZmZWN0ZWQgYm9hcmRzLgoKICAgIC0gQWRkIGRlZmludGlvbnMgZm9yIHNvbWUgTVBDNVhYWCBHUElPIHBpbnMuCgpjb21taXQgODJkOWM5ZWMyOWExYmVjMWIwM2JhNjE2NDI1ZWJhZWQyMzEwNzJjOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMTozNDoyOSAyMDA2ICswMTAwCgogICAgQ2hhbmdlZCBNYXJlbFYzOEIgYm9hcmQgbWFrZSB0YXJnZXQgdG8gbG93ZXJjYXNlLiBDb25maWcgZmlsZSBjbGVhbnVwLgoKY29tbWl0IDE5NTRiZTZlOWM5NDIxYjQ1ZDBhOWQwNWIxMDM1NmFjYzc1NjMxNTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyOSAwMTowMzo1MSAyMDA2ICswMjAwCgogICAgQXV0b21hdGljYWxseSBhZGp1c3QgQVJGTEFHUyBzbyAibWFrZSAtcyIgaXMgcmVhbGx5IHNpbGVudC4KCmNvbW1pdCBmYWU2ODRlODk4NDQ4NTYzODNiZGYxMDE0NDA4ODk1NTdkZjNlNmIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE2OjQ1OjAwIDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIG9tYXA5MjUuYzogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTI2NTU4MTUwMmFiOGVhOGMwOGU4ZWRiZTliZjY0ZmJkNjJmZDc3NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNzoxMjo1OCAyMDA2ICswMjAwCgogICAgW1BBVENIXSBBZGQgc29tZSBtaXNzaW5nIG1hY2h0eXBlcyBmb3IgbmV0c3RhciAmIHZvaWNlYmx1ZSBib2FyZHMKCiAgICBVc2UgTUFDSF9UWVBFX05FVFNUQVIgYW5kIE1BQ0hfVFlQRV9WT0lDRUJMVUUgZGVmaW5lcyBpbnN0ZWFkIG9mCiAgICBudW1iZXJzIGluIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg1NmYwNTQ0MTBjZWY1MmQ4NjhmZWIzMzAxNjhiMmE0YzQwOTEzMjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTU6NTU6NTIgMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gTkFORDogUGFydGl0aW9uIG5hbWUgc3VwcG9ydCBhZGRlZCB0byBOQU5EIHN1YnN5c3RlbQoKICAgIGNocGFydCwgbmJvb3QgYW5kIE5BTkQgc3Vic3lzdGVtIHJlbGF0ZWQgY29tbWFuZHMgbm93IGFjY2VwdCBhbHNvIHBhcnRpdGlvbgogICAgbmFtZSB0byBzcGVjaWZ5IG9mZnNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDdhNjlhMThjMmVjZmRhOTA0MjMxZmRmMjNlMjUyM2VhNzc5MmViNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI5OjQ0IDIwMDYgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDI3NTFhOTVhYmQxYjk2OTExMDgxYzM1N2U5NmExMmZhOTdiNDBkZWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyOToxNCAyMDA2ICswMjAwCgogICAgRW5hYmxlIGNvbW1hbmRsaW5lIGVkaXRpbmcgYW5kIGh1c2ggc2hlbGwgb24gYWxsIFRRTSBib2FyZHMuCgpjb21taXQgODA3OGYxYTVmNjNhNzM5Yjg1MzM0NzhmNmMyYjYyZmIxZTJmNzlkNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI4OjAyIDIwMDYgKzAyMDAKCiAgICBSRUFETUUgc2F5cyBDRkdfQVVUT19DT01QTEVURSwgYnV0IG9jZGUgdXNlcyBDT05GSUdfQVVUT19DT01QTEVURQoKY29tbWl0IDQ3MWE3YmU3YTA0MmU5NWU0NDBmNWRlOTY5Yzk3NjUyMTRhZThkNmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAxOjE0OjMyIDIwMDYgKzAyMDAKCiAgICBDaGVjayBmb3IgaWxsZWdhbCBjaGFyYWN0ZXIgJz0nIGluIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVzLgoKICAgIE1ha2Ugc3VyZSB0aGUgc3RyaW5nIHBhc3NlZCBhcyB2YXJpYWJsZSBuYW1lIGRvZXMgbm90IGNvbnRhaW4gYSAnPScKICAgIGNoYXJhY3Rlci4gVGhpcyBub3Qgb25seSBwcmV2ZW50cyB0aGUgY29tbW9uIGVycm9yIG9yIHR5cGluZwogICAgInNldGVudiBmb289YmFyIiBpbnN0ZWFkIG9mICJzZXRlbnYgZm9vIGJhciIsIGJ1dCAobW9yZSBpbXBvcnRhbnRseSkKICAgIGFsc28gY2xvc2VzIGEgYmFja2Rvb3Igd2hpY2ggYWxsb3dlZCB0byBkZWxldGUgd3JpdGUtcHJvdGVjdGVkCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGZvciBleGFtcGxlIGJ5IHVzaW5nICJzZXRlbnYgZXRoYWRkcj0iLgoKY29tbWl0IDE5OTczYjZhZDk4NjNhNTZmNWM1ZmJjZmQ5MGUyMGFiMjQ5MGEyYzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMDozODozOSAyMDA2ICswMjAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGUxMTg4N2E3N2Q4MTA3NzQxNmEyZDFjNWUwMzU0OTE2ZmVlOGMwMzQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNzo1NTozMSAyMDA2ICswMjAwCgogICAgRG9uJ3QgcGFzcyBhbnkgZGVidWcgb3B0aW9ucyBkaXJlY3RseSB0byB0aGUgYXNzZW1ibGVyCgogICAgV2hlbiBwYXNzaW5nIHRoZSAtZyBvcHRpb24gdG8gZ2NjLCBnY2MgYXV0b21hdGljYWxseSBzZWxlY3RzIGEKICAgIHN1aXRhYmxlIC0tZzxmb3JtYXQ+IG9wdGlvbiB0byBwYXNzIG9uIHRvIHRoZSBhc3NlbWJsZXIuCiAgICBUaHVzLCB0aGVyZSdzIG5vIHBvaW50IGluIGZvcmNpbmcgYSBzcGVjaWZpYyBkZWJ1ZyBvcHRpb24gb24gdGhlCiAgICBhc3NlbWJsZXIgdXNpbmcgdGhlIC1XYSBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZWEwOGZmNmUxNGY5ZWJiOGMwN2NmYTc5YzUxZWY1NDBlYjA4NzM5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjcgMDc6NDc6MjIgMjAwNiAtMDUwMAoKICAgIE1QQzg2eHg6IENsZWFuZWQgdXAgdW51c2VkIGFuZCBjb25kaXRpb25hbGx5IHVzZWQgbG9jYWwgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDM4OTM2Y2RhZTQ2YmZkMjYyM2ZmODNmNmNlOWI2MTZkMzZhYjBmOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgT2N0IDI3IDExOjU1OjIxIDIwMDYgKzAyMDAKCiAgICBGaXggImFyIiBmbGFncyBpbiBzb21lIE1ha2VmaWxlcyB0byBhbGxvdyBmb3Igc2lsZW50ICJtYWtlIC1zIgoKY29tbWl0IDQ2NTNmOTFjMTNlZDUxYzIxY2M0YzM4NTU3NDVkNjlhM2ZiMTgxN2YKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNDozODoyNSAyMDA2IC0wNDAwCgogICAgRml4IFRTRUMgZHJpdmVyIChub3cgZm9yIHJlYWwpOiBhdm9pZCBjcmFzaGVzIGlmIFBIWSBpcyBub3QgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyAoZS5nLiBhIHN3aXRjaCBpcyBjb25uZWN0ZWQgdmlhIFJNSUkpIG9yCiAgICBpZiB0aGUgUEhZIGlzIGRlZmVjdGl2ZS9pbmNvcnJlY3RseSBjb25maWd1cmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGI5ODViNWQ2ZTRmYjg4ZjUwOGY3YWEwZjEyNmMyZTI3YWRhMmI5OTkKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNDozODoyNSAyMDA2IC0wNDAwCgogICAgRml4IFRTRUMgZHJpdmVyOiBhdm9pZCBjcmFzaGVzIGlmIFBIWSBpcyBub3QgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyAoZS5nLiBhIHN3aXRjaCBpcyBjb25uZWN0ZWQgdmlhIFJNSUkpIG9yCiAgICBpZiB0aGUgUEhZIGlzIGRlZmVjdGl2ZS9pbmNvcnJlY3RseSBjb25maWd1cmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDJiMmE0MGJlYmJmMTgyMjUwNmU4MGU2MzFkNzI1M2U2MGYwZTBmZTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAyNiAxNjoyNDozMSAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwLgoKY29tbWl0IDVlM2IwYmMxOWYwN2VkMjc3ZDg1MzI0YWQwNDI3NjQyYzg5ODFiYWYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxNTo0ODo1OSAyMDA2ICswMjAwCgogICAgRmluaXNoIHVwIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDAvQVRTVEsxMDAyIGJvYXJkcwoKICAgIEFkZCBhdHN0azEwMDJfY29uZmlnIHRhcmdldCB0byBNYWtlZmlsZSBhbmQgbW92ZSB0aGUgQVZSMzIgc2VjdGlvbgogICAgZG93biBiZWxvdyBCbGFja2ZpbiBzbyB0aGF0IGl0IGRvZXNuJ3QgZW5kIHVwIGluIHRoZSBtaWRkbGUgb2YKICAgIE1JUFMuCgogICAgRHJvcCB0aGUgYXV0b2dlbmVyYXRlZCBsaW5rZXIgc2NyaXB0IHRoaW5nIGZvciBub3cuIFdpbGwgaGF2ZSB0bwogICAgcmV2aXNpdCBob3cgdG8gaGFuZGxlIGNoaXBzIHdpdGggZGlmZmVyZW50IGZsYXNoIGFuZCBSQU0gbGF5b3V0CiAgICBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjNzZmOTUxYTc0N2NmYjg3YmE4MjZlZjQ1YjVhZWE4MmQ1YjVkYmI0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyNCAyMzo0NzozNyAyMDA2IC0wNTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgTXVsdGktSW1hZ2UgZmlsZXMgdGhhdCBjb250YWluIGEgZGV2aWNlIHRyZWUKCiAgICBJZiBhIE11bHRpLUltYWdlIGZpbGUgY29udGFpbnMgYSB0aGlyZCBpbWFnZSB3ZSB0cnkgdG8gdXNlIGl0IGFzIGEKICAgIGRldmljZSB0cmVlLiAgVGhlIGRldmljZSB0cmVlIGltYWdlIGlzIGFzc3VtZWQgdG8gYmUgdW5jb21wcmVzc2VkIGluIHRoZQogICAgaW1hZ2UgZmlsZS4gIFdlIGF1dG9tYXRpY2FsbHkgYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBkZXZpY2UgdHJlZSBpbiBtZW1vcnkKICAgIGFuZCBwcm92aWRlIGFuIDhrIHBhZCB0byBhbGxvdyBtb3JlIHRoYW4gYSByZWFzb25hYmxlIGFtb3VudCBvZiBncm93dGguCgogICAgQWRkaXRpb25hbGx5LCBhIGRldmljZSB0cmVlIHRoYXQgd2FzIGNvbnRhaW5lZCBpbiBmbGFzaCB3aWxsIG5vdyBhdXRvbWF0aWNhbGx5CiAgICBnZXQgY29waWVkIHRvIHN5c3RlbSBtZW1vcnkgYXMgcGFydCBvZiBib290LiAgUHJldmlvdXNseSBhbiBlcnJvciB3YXMKICAgIHJlcG9ydGVkIGlmIG9uZSB0cmllZCB0byBib290IGEgZGV2aWNlIHRyZWUgdGhhdCB3YXMgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3YzUyYzRiOTQzZmY1MmJiZTg3OTZhN2UyZDNlNDc2Y2VhZjNmNTEyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAyMTozNTo1NSAyMDA2ICswMjAwCgogICAgU3dpdGNoIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIENIQU5HRUxPRyBmaWxlLgogICAgKHVzZSAibWFrZSBDSEFOR0VMT0ciIHRvIHVwZGF0ZSBpdCBmcm9tIHRpbWUgdG8gdGltZSkKCmNvbW1pdCA3YWRlMGM2MzRhOTc5YzMyZmE5MWE3NGU4ZjU3NzVmMjQ2NTFmYmU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE4OjA2OjQ4IDIwMDYgKzAyMDAKCiAgICBGaXggYnVnIGluIFBQQzQ0MCBOQU5EIGRyaXZlciBjcHUvcHBjNHh4L25kZmMuYwogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAyNCBPY3QgMjAwNgoKY29tbWl0IDhhZTNiNzEzYjIyODZlMGMzMjEzYjc4MDIwNjJlNGMxNTk5MDEwZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNzoyNDo1NSAyMDA2ICswMjAwCgogICAgTWVyZ2Ugd2l0aCAvaG9tZS93ZC9naXQvdS1ib290L21hc3RlcgoKY29tbWl0IDQ3YTY5ODljMTA2ODVkMmFiM2VmY2Y5NTIyOGNlNTBkMmE0OTZkM2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNTozMjo1NyAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwCgpjb21taXQgM2E3OGUzZTc1YjYzM2VjYjY0MTMxMTRmZmQxMWUyZjAwMGM0ZjExZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjUxOjM2IDIwMDYgKzAyMDAKCiAgICBNb3ZlIGF0c3RrMTAwMCBmaWxlcyBpbnRvIHZlbmRvciBzcGVjaWZpYyBkaXJlY3RvcnkuCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDEyIFNlcCAyMDA2Cgpjb21taXQgNmNjZWM0NDkyZTc3NDI4ZmQ2ZWFmZDNkZmU5NGZiZGYwOGU5MWQzNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjQyOjM3IDIwMDYgKzAyMDAKCiAgICBBZGQgQVRTVEsxMDAwIGFuZCBBVFNUSzEwMDIgYm9hcmQgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAwIHdpdGggdGhlIEFUU1RLMTAwMiBDUFUKICAgIGRhdWdodGVyYm9hcmQuCgogICAgQVRTVEsxMDAwIGlzIGEgZnVsbC1mZWF0dXJlZCBkZXZlbG9wbWVudCBib2FyZCBmb3IgQVQzMkFQIENQVXMuIEl0CiAgICBoYXMgdHdvIGV0aGVybmV0IHBvcnRzLCBhIGhpZ2ggcXVhbGl0eSBRVkdBIExDRCBwYW5lbCwgYSBsb3Vkc3BlYWtlciwKICAgIGFuZCBjb25uZWN0b3JzIGZvciBVU0FSVCwgUFMvMiwgVkdBLCBVU0IsIE1NQy9TRCBjYXJkcyBhbmQKICAgIENvbXBhY3RGbGFzaCBjYXJkcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhpcyBwYWdlOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy90b29scy5hc3A/ZmFtaWx5X2lkPTY4MgoKICAgIFRoZSBBVFNUSzEwMDIgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciB0aGUgQVRTVEsxMDAwIHN1cHBvcnRpbmcgdGhlCiAgICBBVDMyQVA3MDAwIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZjkzYWU3ODhjMzY0MGZjZGU1ZGIzODM0NzFkNDU1NDhmZjQwNjBkMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjMxOjI0IDIwMDYgKzAyMDAKCiAgICBBZGQgY29tbW9uIHNlcmlhbCBkcml2ZXIgZm9yIEF0bWVsIEFUMzIgYW5kIEFUOTEgY2hpcHMKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIGlzIGEgZmlyc3QgYXR0ZW1wdCBhdCBjcmVhdGluZyBhIGNvbW1vbiBzZXJpYWwgZHJpdmVyIGZvciBBdG1lbAogICAgY2hpcHMuIEZvciBub3csIGl0IHN1cHBvcnRzIHRoZSBBVDMyQVA3MDAwIEFWUjMyIGNoaXAsIGJ1dCBpdCBzaG91bGQKICAgIGJlIHBvc3NpYmxlIHRvIHN1cHBvcnQgQVQ5MVJNOTIwMCBhbmQgb3RoZXIgQVJNLWJhc2VkIGNoaXBzIHdpdGggc29tZQogICAgbWlub3IgbW9kaWZpY2F0aW9ucy4KCiAgICBUaGVyZSdzIG5vdGhpbmcgZnVuZGFtZW50YWxseSBBVlIzMi1zcGVjaWZpYyBpbiB0aGlzIGRyaXZlciwgYnV0IGl0CiAgICBkb2VzIHVzZSBzb21lIGZlYXR1cmVzIHdoaWNoIGFyZSBjdXJyZW50bHkgb25seSBkZWZpbmVkIGZvciB0aGUKICAgIEFUMzJBUCBDUFUgcG9ydDoKICAgICAgKiBwbV9nZXRfY2xvY2tfZnJlcTogT2J0YWluIHRoZSBjbG9jayBmcmVxdWVuY3kgb2YgYSBnaXZlbiBkb21haW4KICAgICAgKiBnZC0+Y29uc29sZV91YXJ0OiBBICJzdHJ1Y3QgZGV2aWNlIiBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0CglyZWdpc3RlciBtYXBwaW5ncywgZ3BpbyByZXNvdXJjZXMgYW5kIGNsb2NrcyBhc3NvY2lhdGVkIHdpdGggdGhlCglVQVJUIGRldmljZS4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBmZWF0dXJlcywgcGxlYXNlIHNlZSB0aGUgIkFUMzJBUAogICAgQ1BVIiBwYXRjaC4KCmNvbW1pdCA3MmEwODdlMDQ3MDVjMjZjYWQ5ODI4NzllYmQwNmI1MjgxYmY4MjVhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6Mjc6MzUgMjAwNiArMDIwMAoKICAgIEFkZCBBVDMyQVAgQ1BVIGFuZCBBVDMyQVA3MDAwIFNvQyBzdXBwb3J0CiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVDMyQVAgQ1BVIGZhbWlseSBhbmQgdGhlIEFUMzJBUDcwMDAKICAgIGNoaXAsIHdoaWNoIGlzIHRoZSBmaXJzdCBjaGlwIGltcGxlbWVudGluZyB0aGUgQVZSMzIgYXJjaGl0ZWN0dXJlLgoKICAgIFRoZSBBVDMyQVAgQ1BVIGNvcmUgaXMgYSBoaWdoLXBlcmZvcm1hbmNlIGltcGxlbWVudGF0aW9uIGZlYXR1cmluZyBhCiAgICA3LXN0YWdlIHBpcGVsaW5lLCBzZXBhcmF0ZSBpbnN0cnVjdGlvbi0gYW5kIGRhdGEgY2FjaGVzLCBhbmQgYSBNTVUuCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUgIkFWUjMyIEFQIFRlY2huaWNhbCBSZWZlcmVuY2UiOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9yZXNvdXJjZXMvcHJvZF9kb2N1bWVudHMvZG9jMzIwMDEucGRmCgogICAgSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlIEFUMzJBUDcwMDAgY2hpcCBjb21lcyB3aXRoIGEgbGFyZ2Ugc2V0IG9mCiAgICBpbnRlZ3JhdGVkIHBlcmlwaGVyYWxzLCBtYW55IG9mIHdoaWNoIGFyZSBzaGFyZWQgd2l0aCB0aGUgQVQ5MSBzZXJpZXMKICAgIG9mIEFSTS1iYXNlZCBtaWNyb2NvbnRyb2xsZXJzIGZyb20gQXRtZWwuIEZ1bGwgZGF0YSBzaGVldCBpcwogICAgYXZhaWxhYmxlIGhlcmU6CgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Jlc291cmNlcy9wcm9kX2RvY3VtZW50cy9kb2MzMjAwMy5wZGYKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3YjY0ZmVmMzNjNjZiZTY0ODgyNmMwZmY5NzU4Mjk4ZWYxM2QwNjA0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6MjE6MTYgMjAwNiArMDIwMAoKICAgIEFkZCBBVlIzMiBhcmNoaXRlY3R1cmUgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCA2IFNlcCAyMDA2IDE2OjIzOjAyICswMjAwCgogICAgVGhpcyBwYXRjaCBhZGRzIGNvbW1vbiBpbmZyYXN0cnVjdHVyZSBjb2RlIGZvciB0aGUgQXRtZWwgQVZSMzIKICAgIGFyY2hpdGVjdHVyZS4gU2VlIGRvYy9SRUFETUUuQVZSMzIgZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmRhMmQ5YTQ3NjYwNjNiOTg0OGYzYTM1YWQ2MDI1NDk5Y2Y4NzI2NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDEzOjU3OjMzIDIwMDYgKzAyMDAKCiAgICBVc2UgLWcgaW5zdGVhZCBvZiAtZ3N0YWJzIGluIEFGTEFHU19ERUJVRwogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAzMCBBdWcgMjAwNgoKICAgIEluIGNvbmZpZy5taywgLVdhLC1nc3RhYnMgaXMgdW5jb25kaXRpb25hbGx5IGFwcGVuZGVkIHRvIEFGTEFHUyBubwogICAgbWF0dGVyIHdoYXQgdGhlIHRhcmdldCdzIHByZWZlcnJlZCBkZWJ1Z2dpbmcgZm9ybWF0IGlzLiBUaGlzIHBhdGNoCiAgICBzaW1wbHkgcmVwbGFjZXMgLWdzdGFicyB3aXRoIC1nLCBzbyB0aGF0IHRoZSBkZWZhdWx0IGRlYnVnZ2luZyBmb3JtYXQKICAgIGZvciB0aGUgYXJjaGl0ZWN0dXJlIGlzIHVzZWQuCgpjb21taXQgOTY1ODI5ODcyMTY5YzI5OTYwMjM4NDBkOThlMWQ4NWFkMTQ4ZDYyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDEzOjU1OjE4IDIwMDYgKzAyMDAKCiAgICBGaXgvd29ya2Fyb3VuZCBicm9rZW4gZGVwZW5kZW5jeSBoYW5kbGluZyB3aXRoIG1ha2UgMy44MQogICAgQmFzZWQgb24gcGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAyOSBBdWcgMjAwNiAxMToyMDozOSArMDIwMAoKY29tbWl0IDgzMThmYmY4Y2MzMDQxOGI2MjFlYTlmMzliODRiNGMxYTA4ZjAwM2EKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gT2N0IDIzIDIyOjE3OjA1IDIwMDYgKzAyMDAKCiAgICBGaXggc2VxdW9pYSBzZXBhcmF0ZSBvYmplY3QgZGlyZWNvcnkgYnVpbGRpbmcgcHJvYmxlbXMuCgpjb21taXQgM2RmYTljZmRjZWU3OGIzMGRhMzQzMjMxOGIzMjgyMWZmYWJlOTc0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTc6MTY6MzUgMjAwNiAtMDUwMAoKICAgIFVzZSBnZW5lcmljIEkyQyByZWdpc3RlciBibG9jayBvbiA4NXh4IGFuZCA4Nnh4LgoKICAgIFJlcGxhY2UgcHJpdmF0ZSBJTU1BUCBJMkMgc3RydWN0dXJlcyB3aXRoIGdlbmVyaWMgcmVnIGJsb2NrCiAgICBhbmQgYWxsb3cgODZ4eCB0byBoYXZlIG11bHRpcGxlIEkyQyBkZXZpY2UgYnVzc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjUwMTI4MjdkZjExY2EwYzliZTFkZjVmOGIxNTNlMTg4ZGMyZmE3YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTU6NTQ6MzQgMjAwNiAtMDUwMAoKICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncyBvbiBhIGZldyA4NXh4IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwNDc2NzI2ODRjZjg1Y2I2Zjk2YTFmYmM5OTMxODBhYWFmMTlhOTkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE1OjUwOjE1IDIwMDYgLTA1MDAKCiAgICBDb252ZXJ0ZWQgYWxsIDg1eHggYm9hcmRzIHRvIHVzZSBhIGNvbW1vbiBGU0wgSTJDIGRyaXZlci4KICAgIEludHJvZHVjZWQgQ09GSUdfRlNMX0kyQyB0byBzZWxlY3QgdGhlIGNvbW1vbiBGU0wgSTJDIGRyaXZlci4KICAgIEFuZCByZW1vdmVkIGhhcmQgaTJjIHBhdGggZnJvbSBhIGZldyB1LWJvb3QubGRzIHNjaXB0cyB0b28uCiAgICBNaW5vciB3aGl0ZXNwYWNlIGNsZWFudXBzIGFsb25nIHRoZSB3YXkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDQ1ZjY5ZTM2MmIwNTg5MmM5ZTkyYTc5MDdlNTgyMDk5NTYxMmFhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMjowMjoyNCAyMDA2IC0wNTAwCgogICAgUmV3cml0ZSBhIHNlcmllcyBvZiBnb3RvIHN0YXRlbWVudHMgYXMgYSBzZXF1ZW5jZXMgb2YKICAgIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIGluc3RlYWQuCgogICAgVXNlIGNvbnNpc3RlbnQgcmV0dXJuIGNvZGUgMC8tMSBmb3IgZ29vZC9iYWQgaW5kaWNhdG9ycy4KCiAgICBJbmNsdWRlIG9uZSBmZXdlciBmaWxlIGlmIHRoZSBkcml2ZXIgaXNuJ3QgdXNlZCBhdCBhbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MjM3YzAzM2IwMmZlMjk1ODgwNDM1ZjFlYjgwODE5YTBjOTg3NTMyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMTowMjoxNiAyMDA2IC0wNTAwCgogICAgTW92ZWQgaTJjIGRyaXZlciBvdXQgb2YgY3B1L21wYzg2eHgvaTJjLmMgaW50byBkcml2ZXJzL2ZzbF9pMmMuYwoKICAgIGluIGFuIGVmZm9ydCB0byBiZWdpbiB0byB1bmlmeSB0aGUgdW1wdGVlbiBGU0wgSTJDIGRyaXZlcnMgdGhhdAogICAgYXJlIGFsbCBvdGhlcndpc2UgdmVyeSBzaW1pbGFyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTNhN2ZjZGYzN2Y2ZWE5NDI5YWUwNGM5ZGY2N2Y4OTMzNjRjZmU0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTE6MzM6NTIgMjAwNiAtMDUwMAoKICAgICogRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MgZm9yIGdjYyA0LjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmOWUxZjViOWU2ZjljZTgxMGY1ZThiZjI5NjFjOTU0MmE1ODY1YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMTcgMDY6MTQ6MzEgMjAwNiArMDIwMAoKICAgIEFkZCBtb25pdG9yIGZ1bmN0aW9ucyBmb3IgaW5kaXJlY3QgYWNjZXNzIHRvIFBQQzQ0MCBEQ1IncwogICAgUGF0Y2ggYnkgTGVvbmlkIEJhcnl1ZGluLCAxMiBPY3QgMjAwNgoKY29tbWl0IDVmMzI0OWEwYTE2OGU0NDZhNGNjOTY2OWIyYmNlMGJjNDU2ZjBhMDkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDEzIDE2OjQ3OjUzIDIwMDYgLTA1MDAKCiAgICBGaXhlZCBsZWFkaW5nIHdoaXRlc3BhY2UgaXNzdWVzLgogICAgUmVtb3ZlZCBzcHVyaW91cyBMQVdBUiB0aGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlZTkwY2I3N2UwMWQ2ZThjY2QzN2UxYmQ5NjY3ODU5Nzg3NWMzOTEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDEyIDEwOjQyOjM2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWVkZWQgaW5jbHVkZSBmaWxlcyBhbmQgbG9jYWwgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZWFmM2E1ZmY0OTYwYTQ2ZjNhOTA2MzU2OGJhMmFmNzg4M2YwN2M1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgT2N0IDEwIDAwOjIzOjMyIDIwMDYgLTA2MDAKCiAgICBGaXggcG9zc2libGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nLgoKICAgIFdoZW4gQ09ORklHX09GX0ZMQUdfVFJFRSBpcyBzZXQsIHRoZSBjb21waWxlciBjb21wbGFpbnMgdGhhdCAnbGVuJyBpbgogICAgZG9fYm9vdG1fbGludXgoKSBtYXkgYmUgdW5pbml0aWFsaXplZC4gIFRoZXJlIGlzIG5vIHBvc3NpYmlsaXR5IGluIHRoZQogICAgY3VycmVudCBjb2RlIHRoYXQgbGVuIHdpbGwgZ2V0IHVzZWQgdW5pbml0aWFsaXplZCwgYnV0IHRoaXMgZml4IGZvbGxvd3MKICAgIHRoZSBleGlzdGluZyBjb252ZW50aW9uIG9mIHNldHRpbmcgYm90aCBsZW4gYW5kIGRhdGEgdG8gemVybyBhdCB0aGUgc2FtZQogICAgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM3NmViODdhYWE2MDFmNzI4ZjliOGU1ZTljZDI3MTFhNjdmNTI5ZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMTEgMTU6MTM6MDEgMjAwNiAtMDUwMAoKICAgICogRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MgZm9yIGdjYyA0LjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmNjUxYmFhMzY1ZTU0NDcyNDZhYWQ2YTYzM2NjZDY2N2NmMjRhMzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDExIDEwOjEwOjQzIDIwMDYgLTA1MDAKCiAgICBNb3ZlICJhciIgZmxhZ3MgdG8gY29uZmlnLm1rIHRvIGFsbG93IGZvciBzaWxlbnQgIm1ha2UgLXMiCgpjb21taXQgMWZkNTY5OWE0YTI0ZjVjMWRhYjFiMzJmNDgwYmFjZTFlYmI5ZmMzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTk6MDMgMjAwNiAtMDUwMAoKICAgIENvZGluZyBzdHlsZSBjaGFuZ2VzIHRvIHJlbW92ZSBsb2NhbCB2YXJpYmxlIGJsb2NrcwogICAgYW5kIHJlZm9ybWF0IGEgYml0IG5pY2VyLgoKY29tbWl0IDhiMjgzZGJiM2EwOGQxYjhkNDA2YmMxNWYxMTllMDgxYjNlMjYwNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE2OjA0IDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgN2IzODJiNzEyNWYyMzk3Y2NlNjMyNTNkZjYyZjE4M2UzZGZhMjc3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTQ6NDUgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCBlMTAzOTBkZGQ3MzZiMGRhZDE1MjhlZWM0YjBmZTM1YzA4MjcxMzlhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowNjo1MyAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IDg5ODc1ZTk2YmEzZjAyMzE1N2JmNTBkNWY4ZTMzYmYyNTQ5NjRhNzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjAzOjQzIDIwMDYgLTA1MDAKCiAgICBSYW4gbGluZGVudCBhbmQgY2xlYW5lZCB1cCB3aGl0ZXNwYWNlIGlzc3Vlcy4KICAgIEZvcm1hdCBmb3IgODAtY29sdW1ucyB0b28uCgpjb21taXQgMzMzOTYxYWU3MDk1ZmM2NmQ4YTA0MWZjZTFhYzllZTg3M2IwOWQ4NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDI6MjIgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGFuZCA4MC1jb2wgaXNzdWVzLgoKY29tbWl0IDVjOTEyY2IxYzMxMjY2YzY2Y2E1OWIzNmY5YjZmODcyOTY0MjFkNzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozNjo1MSAyMDA2ICswMjAwCgogICAgQ0ZHX05BTkRfUVVJRVRfVEVTVCBhZGRlZCB0byBub3Qgd2FybiB1cG9uIG1pc3NpbmcgTkFORCBkZXZpY2UKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCA1YmM1MjhmYTRkYTc1MWQ0NzIzOTdiMzA4MTM3MjM4YTY0NjVhZmQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzU6MjUgMjAwNiArMDIwMAoKICAgIFVwZGF0ZSBBTFBSIGNvZGUgKE5BTkQgc3VwcG9ydCB3b3JraW5nIG5vdykKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCA3N2Q1MDM0ODQ3ZDMyODc1M2I4MGM0NmI4M2Y5NjBhMTRhMjZmNDBlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzM6MDMgMjAwNiArMDIwMAoKICAgIFJlbW92ZSBjb21waWxlIHdhcm5pbmdzIGluIGZwZ2EgY29kZQogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAwNyBPY3QgMjAwNgoKY29tbWl0IGYzNDQzODY3ZTkwZDI5NzlhN2RkMWM2NWIwZDUzNzc3N2UxZjk4NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozMDo1MiAyMDA2ICswMjAwCgogICAgQWRkIENPTkZJR19CT0FSRF9SRVNFVCB0byBjb25maWd1cmUgYm9hcmQgc3BlY2lmaWMgcmVzZXQgZnVuY3Rpb24KICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCBmNTVkZjE4MTg3ZTdhNDVjYjczZmVjNDM3MGQxMjEzNWU2NjkxYWUxCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBTZXAgMjkgMDg6MjM6MTIgMjAwNiArMDEwMAoKICAgIEZpeCBtaXNzaW5nIHRDeWNsZS9tb2RmcmVxIGNhbGN1bGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgyNzJkYzJmNThmMjQ3M2Q4OTk1ZmNjOWI5MTY0NDBjZmJhMDgwZjAKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzM6MzUgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZWQgY29uZmlnIGhlYWRlcnMgdG8gYWRkIGRlZmF1bHQgRkRULWJhc2VkIGJvb3RpbmcKCmNvbW1pdCAwOWYzZTA5ZTllYmNmYTc5MTljYTg5MzFhNGI1NTA0ZmFkZDFmMWQzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjM0OjE4IDIwMDYgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgZVRTRUMgMyAmIDQgb24gODU0OCBDRFMKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIGVUU0VDIDMgYW5kIGVUU0VDIDQgb24gdGhlIDg1NDggQ0RTLgogICAgICBUaGlzIHdpbGwgb25seSB3b3JrIG9uIHJldiAxLjMgYm9hcmRzIChidXQgZG9lc24ndCBicmVhayBvbGRlciBib2FyZHMpCiAgICAqIENsZWFuZWQgdXAgc29tZSBjb21tZW50cyB0byByZWZsZWN0IHRoZSBleHBhbmRlZCByb2xlIG9mIHRzZWMKICAgICAgaW4gb3RoZXIgc3lzdGVtcwoKY29tbWl0IDA4NGQ2NDhiMTA5Yzg5ODRmODM2NzQwNDNjMWE3ZmEzODg1ZWY4MDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzM6NTYgMjAwNiAtMDUwMAoKICAgIEFkZGVkIGNvZGUgdG8gc3VwcG9ydCAyLjYuMTggUENJIGNoYW5nZXMgaW4gdS1ib290CgogICAgKiBBZGRlZCBjb2RlIHRvIHN3aXp6bGUgdGhlIElSUSBtYXAgZm9yIHRoZSBQQ0kKCmNvbW1pdCBhZmJkYzY0OWY4NzUxZTRmNGYxYTZmNTI3ZWRmZTEzOTc3M2YyYzE1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOSAwOTozNDoxMCAyMDA2IC0wNTAwCgogICAgTW9kaWZpZWQgbWFrZWZpbGUgZm9yIG5ldyBidWlsZCBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTRiYTZhNzk4YmViNzUzZTdhODY0NTAwNDE0ZmNjMmQxOThiOGJjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxNCAwODo0MDozNiAyMDA2IC0wNTAwCgogICAgSGFuZGxlIDg2eHggU1ZSIHZhbHVlcyBhY2NvcmRpbmcgdG8gdGhlIG5ldyBSZWZlcmVuY2UgTWFudWFsLgogICAgQm90aCA4NjQxIGFuZCA4NjQxRCBoYXZlIFNWUiA9PSAweDgwOTAsIGFuZCBhcmUgZGlzdGluZ3Vpc2hlZAogICAgYnkgdGhlIGJ5dGUgaW4gYml0cyAxNi0yMyBpbnN0ZWFkLgogICAgVGhhbmtzIHRvIEphc29uIEppbiBmb3Igbm90aWNpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OGM4ZjQ5MjFmYzQ3ZmIwZWIyMzg0YjE2NTg2ZjFiZDdmMjc1YmU3CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyOCAxNDoyNTozMSAyMDA2ICswODAwCgogICAgRml4ZWQgYW4gT0YtdHJlZSBvZmYtYnktb25lIGJ1ZyB3aGVuIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBuYW1lLgogICAgVGhpcyBidWcgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJvb3RpbmcgdG8gcGF1c2UgYSBsb25nIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIChjaGVycnkgcGlja2VkIGZyb20gMmYxNTc3NmNjYzZkYzMyMzc3ZDhiYTk2NTJiOGY1ODA1OWMyN2M2ZCBjb21taXQpCgpjb21taXQgOWJmZjdhNjlhODg1YWRlYmJkMmJkNDU5OTA0OTRlYzRjZjk5OGEzMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMTE6MDU6MDkgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSB0cmFpbGluZyBlbXB0eSBsaW5lcy4KCmNvbW1pdCBjZDZkNzNkNWI4OTVhNTkzNWFjNGZkZTBhMzU2Mjg4MTQyYTU4NGUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAwOTo0ODo0OSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIGJvZ3VzIG1zeW5jIGFuZCB1c2Ugdm9sYXRpbGUgYXNtLgoKY29tbWl0IDc3OGQ0NTA0OWNlNTkyN2I2NWIzZmYxZDhlNjY5MmI2NTRiZGQ0OWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDA4OjE3OjE0IDIwMDYgLTA1MDAKCiAgICBBZGQgbXlzZWxmIGFzIG1haW50YWluZXIgZm9yIE1QQzg2NDFIUENOLgoKY29tbWl0IDJmMTU3NzZjY2M2ZGMzMjM3N2Q4YmE5NjUyYjhmNTgwNTljMjdjNmQKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI4IDE0OjI1OjMxIDIwMDYgKzA4MDAKCiAgICBGaXhlZCBhbiBPRi10cmVlIG9mZi1ieS1vbmUgYnVnIHdoZW4gYWRkaW5nIGEgbmV3IHByb3BlcnR5IG5hbWUuCiAgICBUaGlzIGJ1ZyB3aWxsIGNhdXNlIHRoZSBrZXJuZWwgYm9vdGluZyB0byBwYXVzZSBhIGxvbmcgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU1Njc4MDZiNjdkMGFlODM0OTNhYTg4MjNhZDNiNmM5MTRmNTgxZDcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDI1IDE0OjM4OjM0IDIwMDYgLTA0MDAKCiAgICBDaGFuZ2UgcmFtZGlza2FkZHIgYW5kIGR0YmFkZHIKICAgIFJlbW92ZSBQRVggZmx1ZmYgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJiNzg0MjFkOWRiNDljMjFhODIxYWY4YTE5YzIxYzFmN2RmYjI5ZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTM6MzI6NDUgMjAwNiAtMDUwMAoKICAgICogQW5vdGhlciBzbWFsbCBmaXggZm9yIGJvb3Rpbmcgd2l0aCBkaXNhYmxlX29mCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YTdjYzBmMjE5MThlNmVjZjA3ZWQ1NzA3NWQ2N2RmMmM0YTEyOTljCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMyAxMTowNDo0MyAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBhbmQgbGluZGVudCBuZXcgQUhDSSBkcml2ZXIuCgpjb21taXQgZGFiZjllZjhjMTBiNGRlYWQ1ZWYyMTA2ZWY3NDJiMWMwNmI1NDJkZQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxqYXNvbkBidXMuYXAuZnJlZXNjYWxlLm5ldD4KRGF0ZToJV2VkIEF1ZyAyMyAxOToxNToxMiAyMDA2ICswODAwCgogICAgQWRkIEFIQ0kgZGVmaW5lIGFuZCBzYXRhIHN1cHBvcnQgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ3ODJhYzgwYjAyZjBkMDFhZmQzMDllMjIwMGRkM2M3MDM3ZjJiYTQKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8amFzb25AYnVzLmFwLmZyZWVzY2FsZS5uZXQ+CkRhdGU6CVdlZCBBdWcgMjMgMTk6MTA6NDQgMjAwNiArMDgwMAoKICAgIEFkZCBBSENJIHN1cHBvcnQgdG8gdS1ib290CgogICAgQWRkIEFIQ0kgc3VwcG9ydCBpbiB1LWJvb3QsIGVuYWJsZSB0aGUgc2F0YSBkaXNrIGNvbnRyb2xsZXJzIHdoaWNoCiAgICBmb2xsb3dpbmcgdGhlIEFIQ0kgcHJvdG9jb2wuCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW48amFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDhlYTJhY2Y1ZjEzN2NhZTk5NDE3ZGY0ZjU3M2QwMzZlZTM4NDY2OApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTc6NTQ6MzIgMjAwNiArMDgwMAoKICAgIEFkZCBkdGIgYm9vdC11cCBwYXJhbWV0ZXIgdG8gZGVmYXVsdCBib290IGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjkzNzc1YzIwMzZiOTliYWEzOTBlYTQyNWM0NzcxODk1YmJjNjNjNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTg6MjY6MDggMjAwNiAtMDUwMAoKICAgIENsZWFudXAgZXZlbiBtb3JlIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgYWU2MjQxNjg1Y2JjZjBjNzlhMzYzNjUzMGQyY2VhYjFmYjI5MWE5NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTg6MDc6MDAgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgbW9yZSBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IDJjMzNlOGExYzUzNWIzYWU5MWNmMGIyODQ0ODA2MDBiZjNmNTdjNTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE3OjU0OjA1IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgODBlOTU1YzdkZDk4ZjRiNGZkMjNjMjExM2NhZjc1ZWQyYjc3YjViMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTI6MjU6MjcgMjAwNiAtMDUwMAoKICAgIEdlbmVyYWwgaW5kZW50IGFuZCB3aGl0ZXNwYWNlIGNsZWFudXBzLgoKY29tbWl0IGZmZmYzYWU1NmY1ODQyY2EzNjc5ZTRjZTc5MjJiODE5YTg3YWFkOWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEyOjA2OjE4IDIwMDYgLTA1MDAKCiAgICBHZW5lcmFsIGluZGVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwcy4KCmNvbW1pdCA0MWEwZThiMzA0ZDNmZjU1ZmUyN2EyMzA1MDdhYWM3OTY4NDAxNmFjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMDo0MjoyMSAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBjb21waWxlciB3YXJuaW5ncy4KCmNvbW1pdCA1ZGU2MmM0N2E4NjI4YjNkYTRkNzNmN2MwNzAyN2YzMmEzMzQyZDQwCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAwOTozMTo1OSAyMDA2IC0wNTAwCgogICAgRml4IGRpc2FibGVfb2YgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODdhNDQ5YzhhYzM5NjQyMGNiMjQyNjBmNzE3ZWE5ZTZmYWE4MjA0NwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMDk6MjM6NTUgMjAwNiAtMDUwMAoKICAgIFN1cHBvcnQgZm9yIEZEVCBpbiB1SW1hZ2UgZm9ybWF0LCBlcnJvciB3aGVuIHVzaW5nIEZEVCBmcm9tIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NWMyOTljMzgzNjlkMDFhZGRkNWUwNTRiOGExNjIxN2I3MGY0YTg2CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMjo1NSAyMDA2IC0wNDAwCgogICAgVW5sb2NrIGNhY2hlIGJlZm9yZSBrZXJuZWwgc3RhcnRzIHVwIGZvciBNUEM4Nnh4Cgpjb21taXQgNjcyNTY2NzhmMDBjMDliMGE3ZjE5ZTg2MmU1YzE4NDc1NTNkMzFiYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTM6MTUgMjAwNiAtMDQwMAoKICAgIENvcHkgR2xvYmFsIERhdGEgUG9pbnRlciB0byByMjkgZm9yIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSCgpjb21taXQgMWM4ZjZkOGZiMDI4ZjE1NjA5NGQwNWYyZDE0Mjk4ZTY0NzkzNjRhYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTI6NTUgMjAwNiAtMDQwMAoKICAgIFVubG9jayBjYWNoZSBiZWZvcmUga2VybmVsIHN0YXJ0cyB1cCBmb3IgTVBDODZ4eAoKY29tbWl0IDBkOWNjYzU1ZWRmOWE3ZjNjNWIyYjYyNjM1ODBhNmVhOGQ3MDJhMDQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEzOjE1IDIwMDYgLTA0MDAKCiAgICBDb3B5IEdsb2JhbCBEYXRhIFBvaW50ZXIgdG8gcjI5IGZvciBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgoKY29tbWl0IDg2YzhlMTdmMjVlOTcyYTdlMjcyOTUwYTA3MzVmYWQ4NGUwODJiODgKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE2IDEzOjU5OjQ3IDIwMDYgLTA1MDAKCiAgICAqIEZpeCBkaXNhYmxlX29mIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1Yzc1MWU5YWRjODZlMjJmZTNiNWI0N2NmMjgwNjM3OWI1NzVkYjcKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE2IDEwOjU0OjA5IDIwMDYgLTA1MDAKCiAgICAqIFN1cHBvcnQgZm9yIEZEVCBpbiB1SW1hZ2UgZm9ybWF0LCBlcnJvciB3aGVuIHVzaW5nIEZEVCBmcm9tIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OTk2MjBjMmQ2NmQ0ZWVmM2IyYTAwMzRkMDYyZTcxZDQ1ZDg4NmM5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE1IDE0OjIyOjM1IDIwMDYgKzAyMDAKCiAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgQUxQUiBib2FyZCBmcm9tIFByb2RyaXZlCiAgICBOQU5EIG5lZWRzIHNvbWUgYWRkaXRpb25hbCB0ZXN0aW5nCiAgICBQYXRjaCBieSBIZWlrbyBTY2hvY2hlciwgMTUgQXVnIDIwMDYKCmNvbW1pdCBmMGZmNDY5MmZmMzM3MmRlYzU1MDc0YThlYjQ0NDk0M2FiMDk1YWJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE1IDE0OjE1OjUxIDIwMDYgKzAyMDAKCiAgICBBZGQgRlBHQSBBbHRlcmEgQ3ljbG9uZSAyIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhlaWtvIFNjaG9jaGVyLCAxNSBBdWcgMjAwNgoKY29tbWl0IGZlY2YxYzdlNGRlMWIyNzc5ZWRjMTg3NDJiOTFjMjJiZGMzMmI2OGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDE0IDE1OjMzOjM4IDIwMDYgLTA1MDAKCiAgICBGaXggQkFUMCB0byBhY3R1YWxseSBiZSBjYWNoZWFibGUsIG5vbi1ndWFyZGVkIGFzIGRvY3VtZW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGJjODM1NTlkYjU3NDU2ODE5MDlmZDczODJhZTUwOTU2N2UxMTZkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA5IDE1OjMyOjE2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmVkIE1QQzg2NDFIUENOIERUUyBzb3VyY2UgZmlsZSBmcm9tIGJ1aWxkLgogICAgSXQgaXMgbm8gbG9uZ2VyIGxpbmtlZCBpbnRvIFUtQm9vdDsgaXRzIHNvdXJjZXMgYXJlCiAgICBub3cgbG9jYXRlZCBpbiB0aGUga2VybmVsIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNGMzYzBlMDFkYmYxZjhjYzJiZDA4ZGU5MmYyYjg5YmE4NDkyMWViCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NzowMyAyMDA2IC0wNTAwCgogICAgKiBTd2l0Y2hlZCBkZWZhdWx0IFBDSSBzcGVlZCBmb3IgODU0MCBBRFMgYmFjayB0byAzM01IegoKICAgICogQWRkZWQgY29tbWVudHMgYW5kIGEgcHJpbnRmIHRvIHdhcm4gdGhhdCBQQ0ktWCB3b24ndAogICAgICB3b3JrIGF0IDMzTUh6CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNmM1ZTEzNzNiNmVhMGJiMzdhMThlNGFlZWNlYzAwNjEzZDFjZDM5CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjozNSAyMDA2IC0wNTAwCgogICAgKiBGaXhlZCBhIGJ1ZyB3aGVyZSA4NTU1IFBDSSBjb2RlIHVzZWQgdGhlIG9sZCB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXMgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMWRmZmZkOGMyNmY4ZWNkZDYzMGEwYWU0YzgzNGU3NTFlNGU0NTIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjEzIDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFZJQSBjb25maWd1cmF0aW9uIHRhYmxlCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBQQ0kyIG9uIENEUwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzg4ZjlmZTY2YjY0MjQ3ZTViNmEzODQxMGJhMzE1Y2EyNTU5NmQxNgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6NDEgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgUENJIG1lbW9yeSBkZWZpbml0aW9ucyBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTcwNzRlZDk2NTUzMDliNjQyMzFiYzJjZWU2OWZlODUzOTlmODA1NQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6MTcgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgaW5pdGlhbGl6aW5nIHNlY29uZCBQQ0kgYnVzIG9uIDg1eHggUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYwZTZmNTdmNzFiM2M0ZmRkMTMwMjhlYjAzYzNmM2U5MTkyNmRkYTIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjQ5IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFBDSS1YICNkZWZpbmVzIGZvciBQQ0ktWCBpbml0aWFsaXphdGlvbiBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTRlMTE1NThiODEwZWYyY2RkZmZkZjdiOWQ4NmJjMTEzMDQ0MTk2MApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6MjMgMjAwNiAtMDUwMAoKICAgICogTWFkZSBzdXJlIHRoZSBjb2RlIHdoaWNoIGRpc2FibGVzIHByZWZldGNoIGZvciBQQ0kgZGV2aWNlcyBzZXRzIHRoZSBzaXplIG9mIHRoZSBwcmVmZXRjaCByZWdpb24gdG8gMCBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGUxNjM4N2RiMWQ0YWFjZDViZjM1Y2I2ZDdjMTk0Mjc2NWMwMzQ3YgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MzYgMjAwNiAtMDUwMAoKICAgICogQWRkIEZsYXQgRGV2IFRyZWUgY29uc3RydWN0aW9uIGZvciBNUEM4NXh4IEFEUyBhbmQgQ0RTIGJvYXJkcyBQYXRjaCBieSBKb24gTG9lbGlnZXIgMTctSmFuLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1NWU2ZmIwNzNmOWQwNGZlNGE3ZjA2YzEwN2VjYmFjNjM0NGRkZDQKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjAwIDIwMDYgLTA1MDAKCiAgICAqIFJlbW92ZWQgdGhlIG9mdHJlZS5kdHMgZm9yIHN0eHh0eCBpbiBsaWdodCBvZiB0aGUgY2hhbmdlcyB0byB0aGUgZmxhdCBkZXZpY2UgdHJlZSBoYW5kbGluZyBjb2RlIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA1NDk4ZDkwMzEyYWFkOWY2YmRiZjA0Nzk4NjAyN2MzNWIwM2NkMTYzCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MjoyNCAyMDA2IC0wNTAwCgogICAgKiBQYXRjaCB0byBtb2RpZnkgZnRfYnVpbGQuYyB0byB1cGRhdGUgZmxhdCBkZXZpY2UgdHJlZXMgaW4gcGxhY2UgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDAyNjc3NjhlZGRjNWNhN2JjMTg2NWJjNDBjODY2ODI5YWM1ZWZiZmUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQxOjM3IDIwMDYgLTA1MDAKCiAgICAqIE1vZGlmeSBib290bSBjb21tYW5kIHRvIHN1cHBvcnQgYm9vdGluZyB3aXRoIGZsYXQgZGV2aWNlIHRyZWVzIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA4ZmM4YmQyY2M0NzliNmNkMTg4ZmRlZGU0MDEwZTBlMDUyOTcwYjhhCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOSAxNDozMzo1MCAyMDA2ICswMTAwCgogICAgQWRkIFJhcGlkaW8gc3VwcG9ydCBmb3IgdGhlIE1QQzg2NDFIUENOCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTFhNDE0YzdkMWZiMGVhYzkxMjU5MmNkOTk1YjMwYzlmMjMwNDVjOQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDggMTE6MzI6NDMgMjAwNiArMDEwMAoKICAgIEZpeCBjYXNsYXQgY2FsY3VsYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDlkMzA3M2U3NDE1MzI3OGU3OTA0YTcwODE5YmJlZjdkZjUwZTFhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE2OjE3OjU2IDIwMDYgLTA1MDAKCiAgICBDb252ZXJ0IHRvIG1hYy1hZGRyZXNzIGluIGV0aGVybmV0IG5vZGVzLgoKY29tbWl0IDcxNzQ4YWY4MzNjYTEwMTdlZGYxNDE1YmUzNzYzNjZmZjI5MzdkMTcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjM1IDIwMDYgLTA0MDAKCiAgICBDb3JyZWN0IHRoZSBpcnEgdmFsdWUgb2YgRFVBUlQyCgpjb21taXQgOWNiM2U4ODE2YWU0ZDg1NGU3ZGMyMjEyOGMzZWVhM2Q3MGJiOTgyYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6NDEgMjAwNiAtMDQwMAoKICAgIENoYW5nZSB0aGUgc3BhY2Ugc2l6ZSBvZiBQRVggSU8gaW4gUkVBRE1FCgpjb21taXQgMjM5ZGIzN2M5NGY3YTkyOTQxYzQ0NjVmZWNlYjg2N2M2MDkyNDFjNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6MTggMjAwNiAtMDQwMAoKICAgIE1vdmUgZ2V0X2JvYXJkX3N5c19jbGsgdG8gYm9hcmQgZGlyZWN0b3J5Cgpjb21taXQgNDkyOTAwYjk4NTQzOWZiY2UxYTExOGFmZGUxZTM1ZGVmODcwZGIwMwpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDA5OjAzOjU0IDIwMDYgKzAxMDAKCiAgICBGaXggODY0MUhQQ04gcG9sbHV0aW9uCgpjb21taXQgNTE1YWI4YTYyZTg1NzRlMmJhYmM2ZThkY2M0MzU0NGFkMjIxYzViMgpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDA4OjE2OjA2IDIwMDYgKzAxMDAKCiAgICBGaXggODY0MUhQQ04gdGltZWJhc2UKCmNvbW1pdCBjODYzNjBiODMwZjFlZWNkN2E3MjIwODU3NWRkZTRmNTc4NzlmYWVhCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwMDowMTozNCAyMDA2ICswODAwCgogICAgRml4ZWQgT0YgZGV2aWNlIHRyZWUgb2YgbXBjODZ4eGhwY24gYm9hcmQuCgogICAgVGhlIGNoYW5nZXMgd29ya3MgaW4gd2l0aCBrZXJuZWwgaXJxIG1hcHBpbmcgcmV3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmVhM2YyOGQyODU5NDJiZjNmN2FiMzM5Y2U4NTE3OGRlZDU0NDIyNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTIgMTA6NDg6MDUgMjAwNiAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciByZWFkaW5nIGFuZCB3cml0aW5nIG1hYyBhZGRyZXNzZXMgdG8gb3IgZnJvbSBJRCBFRVBST00uCgogICAgQWRkZWQgY29kZSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBNYWMgYWRkcmVzc2VzIHRvL2Zyb20gSUQgRUVQUk9NKDB4NTcpLgogICAgV2l0aCBhdHRhY2hlZCBwYXRjaCwgd2UgY2FuIHVzZSBjb21tYW5kICJtYWMvbWFjIHJlYWQvbWFjIHNhdmUvIgogICAgdG8gcmVhZCBhbmQgd3JpdGUgRUVQUk9NIHVuZGVyIHUtYm9vdCBwcm9tcHQuCgogICAgVS1ib290IHdpbGwgY2FsY3VsYXRlIHRoZSBjaGVja3N1bSBvZiBFRVBST00gd2hpbGUgYm9vdHVwLAogICAgaWYgaXQgaXMgcmlnaHQsIHRoZW4gdS1ib290IHdpbGwgY2hlY2sgd2hldGhlciB0aGUgbWFjIGFkZHJlc3MKICAgIG9mIGVUU0VDMC8xLzIvMyBpcyBhdmFpbGFsYmUgKG5vbi16ZXJvKS4KCiAgICBJZiB0aGVyZSBpcyBtYWMgYWRkcmVzcyBhdmFpbGFiZSBpbiBFRVBST00sIHUtYm9vdCB3aWxsIHVzZSBpdCwKICAgIG90aGVyZXdpc2UsIHUtYm9vdCB3aWxsIHVzZSB0aGUgbWFjIGFkZHJlc3MgZGVmaW5lZCBpbgogICAgTVBDODY0MUhQQ04uaC4gVGhpcyBtYXRjaGVzIHRoZSByZXF1aXJlbWVudCB0byBzZXQgdW5pcXVlIG1hYyBhZGRyZXNzCiAgICBmb3IgZWFjaCBUU0VDIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNiMjhlNzYzNDE1ZTBlNGU2NmIwZjQ1ODQyZDE1NTdhZTE5OGU1ZQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCAxMyAxMDozNToxMCAyMDA2IC0wNTAwCgogICAgRml4ZWQgaW5pdHJkIGlzc3VlIGJ5IGRlZmluZSBiaWcgUkFNCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2Y2QyYTE3ODVkNzRlYzNkMzBhODZmMWNiMzYwYmU4ZGU0NzgxNTEKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDcgMTA6MDE6NDUgMjAwNiAtMDUwMAoKICAgIFdlIG1hZGUgYSB1LWJvb3QgcGF0Y2ggdG8gZml4IHRoZSBoYW5nIHVwIGlzc3VlCiAgICB3aGVuIGJvb3RpbmcgZmlsZXN5c3RlbSBmcm9tIHJhbWRpc2suCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NDMzY2NjNTg1MGVlNzA1NDlhZjBiMmJjNWI5MjAzNTVlZjUzODgKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ3OjAzIDIwMDYgLTA1MDAKCiAgICAqIFN3aXRjaGVkIGRlZmF1bHQgUENJIHNwZWVkIGZvciA4NTQwIEFEUyBiYWNrIHRvIDMzTUh6CiAgICAqIEFkZGVkIGNvbW1lbnRzIGFuZCBhIHByaW50ZiB0byB3YXJuIHRoYXQgUENJLVggd29uJ3QKICAgICAgd29yayBhdCAzM01IegogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTRjMmEwZWIwYzNlM2ZmYmY4MjQ4MDAxODRlZTQyYmRjOTlkNWIxOQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MzUgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgYSBidWcgd2hlcmUgODU1NSBQQ0kgY29kZSB1c2VkIHRoZSBvbGQgdmFyaWFibGUgYW5kCiAgICAgIGZ1bmN0aW9uIG5hbWVzCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYmZjN2NlNzU2Yjg4ZWIyNmU1NTM3YmM3YjYyNWM0NDVjNmRjZmFjCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjoxMyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBWSUEgY29uZmlndXJhdGlvbiB0YWJsZQogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBQQ0kyIG9uIENEUwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTJjN2E2OGI4ZDU4N2ViY2Y1YTZiMDUxYjU4YjNkM2ZmYTM3N2RkYwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6NDEgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgUENJIG1lbW9yeSBkZWZpbml0aW9ucwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDg3NDU0NjA5ZTQ3Mjk1NDQzYWY3OTNhMjgyY2RkY2Q5MWE1ZjQ5YwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6MTcgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgaW5pdGlhbGl6aW5nIHNlY29uZCBQQ0kgYnVzIG9uIDg1eHgKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI2MzZhYWViNmZkNTE2YTQ0MmZiNjExYmJlZWRkZjMwNzdhNjg3ZmIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjQ5IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFBDSS1YICNkZWZpbmVzIGZvciBQQ0ktWCBpbml0aWFsaXphdGlvbgogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjBhYmJjNmZmZmExMTU2OTAxMDdjYzk0MmM3YWJmODRiZGMwM2ExYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6MjMgMjAwNiAtMDUwMAoKICAgICogTWFkZSBzdXJlIHRoZSBjb2RlIHdoaWNoIGRpc2FibGVzIHByZWZldGNoIGZvciBQQ0kgZGV2aWNlcwogICAgICBzZXRzIHRoZSBzaXplIG9mIHRoZSBwcmVmZXRjaCByZWdpb24gdG8gMAogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBkNWZhMzVkMDJkZjIyNTgwNTkzYmYwMDM5YWIxNzMzNjdlOGVmMApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MzYgMjAwNiAtMDUwMAoKICAgICogQWRkIEZsYXQgRGV2IFRyZWUgY29uc3RydWN0aW9uIGZvciBNUEM4NXh4IEFEUyBhbmQgQ0RTIGJvYXJkcwogICAgICBQYXRjaCBieSBKb24gTG9lbGlnZXIgMTctSmFuLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlN2U4YjBjYjVhMGM0OWRjMTgwMDc1Yjk2ZGYyOTZhODkzYmYxNDYKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjAwIDIwMDYgLTA1MDAKCiAgICAqIFJlbW92ZWQgdGhlIG9mdHJlZS5kdHMgZm9yIHN0eHh0eCBpbiBsaWdodCBvZiB0aGUgY2hhbmdlcwogICAgICB0byB0aGUgZmxhdCBkZXZpY2UgdHJlZSBoYW5kbGluZyBjb2RlCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCAxYjM4MGVjMjI1NjY1ZTczOTU5Njc3ZjM4OTNkYzY1OGM1OTI1ZTA1CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MjoyNCAyMDA2IC0wNTAwCgogICAgKiBQYXRjaCB0byBtb2RpZnkgZnRfYnVpbGQuYyB0byB1cGRhdGUgZmxhdCBkZXZpY2UgdHJlZXMgaW4gcGxhY2UKICAgICAgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDk4YTljNGQ0NjhhOTQyYTA5ZWJlODk3OWJlYzUwODAxN2YzZTQ0NjIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQxOjM3IDIwMDYgLTA1MDAKCiAgICAqIE1vZGlmeSBib290bSBjb21tYW5kIHRvIHN1cHBvcnQgYm9vdGluZyB3aXRoIGZsYXQgZGV2aWNlIHRyZWVzCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCBkYTAxMmFiNjYxZmQ0YWIxNjlkZDdiOWIzMjIwMWE0ZGY2MmNmMzRhCkF1dGhvcjogSmluIFpoZW5neGlvbmcgPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDA4OjQzOjU2IDIwMDYgLTA1MDAKCiAgICBDaGFuZ2UgSWQgdG8gc3ltYm9saWMgbmFtZSBmb3IgUlRMODEzOQoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmMwOWNmM2MyYmZiOGQ1NGM2NTljYmIzMzJmNzlkMDk1MDk4MmZkMApBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MTAgMjAwNiArMDgwMAoKICAgIEZpeCBSVEw4MTM5IGluIGJpZyBlbmRpYW4KCiAgICBzaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgogICAgc2lnbmVkLW9mZi1ieTogV2VpIFpoYW5nIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmY2ZiOWE1Nzk0N2ZjMjAzYjk5ZmU4MWFiMDU3OGY3Mjg2MjYxZjlmCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjoyMyAyMDA2ICswODAwCgogICAgRml4IFRzZWMgYnVnIHdoZW4gbm8gbGluawoKICAgICBXaGVuIHRmdHAgYSBub24tZXhpc3QgZmlsZSBmcm9tIHRoZSB0ZnRwIHNlcnZlciwgdS1ib290IHdpbGwgY2hlY2sKICAgICB0aGUgbGluayBvZiBhbGwgZXRoIHBvcnQuIFRoZSBvcmlnaW5hbCBmaWxlIHdpbGwgcmV0dXJuIHdyb25nIGxpbmsKICAgICBzdGF0ZSBvbiB0aGUgbm8gbGluayBwb3J0cy4KCiAgICBzaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJkMjJjMmI5NzUxNGZiZmIwZTAzYmQ5YzcyYjM0NDVlNGRiZDU3ZTIKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjAyIDIwMDYgKzA4MDAKCiAgICBGaXggYnVnIGZvciBpb19iYXIgc2l6ZSBkdXJpbmcgcGNpIHNjYW4KCiAgICBEdXJpbmcgdGhlIHBjaSBzY2FuIHByb2Nlc3MsIFNvbWUgZGV2aWNlcyByZXR1cm4gYmFyX3JlcG9uc2Ugd2l0aCB0aGUKICAgIGhpZ2hlc3QgYnl0ZXMgMCwgc3VjaCBhcyB0aGUgcGNpIGJyaWRnZSBpbiB1bGkxNTc1IHJldHVybiBiYXJfcmVzcG9uc2UKICAgIHdpdGggMHhmZmZmZmYsIFNvIHRoZSBiYXJfc2l6ZSBzaG91bGQgYmUgbWFudWFsbHkgc2V0IHVuZGVyIDY0Sy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhN2RiOWMzNzdiYzIzNTNhMTdiZjFkMzgxZDY1YTZjNDE4NzI4ZjAKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjExOjU0IDIwMDYgKzA4MDAKCiAgICBFbmFibGUgUENJRTEgZm9yIE1QQzg2NDFIUENOIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OWQ3MGUzYTQ3YWZmYjliYWUwNDFhMmNhZWNlN2NkNTE2ZTIxM2IzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjYgMTE6MDY6MDAgMjAwNiArMDIwMAoKICAgIE1vcmUgY29kZSBjbGVhbnVwCgpjb21taXQgNjg0NjIzY2U5MmM1ZmQzMmU3ZGIyZDZlMDE2OTQ1YTY3YzVmZmFiYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMjIgMDg6NTE6NDYgMjAwNiAtMDUwMAoKICAgIEZpeCBidWcgaW4gODY0MWhwY24gcmVzZXQgY29tbWFuZCB3aXRoIG5vIGFyZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZTQyOWE1ZGRiZjBlYmUyZDk0MTc0YmE1OGZjZmM3YTI0Mjg1ZGMKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDIwIDE3OjQ3OjE1IDIwMDYgKzA4MDAKCiAgICBSZXdvcmtlZCBJUlEgbWFwcGluZyBpbiBPRi10cmVlLgoKY29tbWl0IDBlNGMyYTE3Y2EzNDAwMWVkMzZkMjU5ZjEzY2I4OGFkYTQ2MTFhOGMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDE1IDIxOjMzOjM3IDIwMDYgLTA1MDAKCiAgICBEbyBub3QgZW5hYmxlIGFkZHJlc3MgdHJhbnNsYXRpb24gb24gc2Vjb25kYXJ5IENQVXMuCiAgICBEbyBub3Qgc2V0IHVwIEJBVHMgb24gc2Vjb25kYXJ5IENQVXMuICBMZXQgTGludXggZG8gdGhlIG5hc3R5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg2ZWRhMDIyNDczMzk0YWQ4ZjM2Yjg2ZjJiZGM5YjRjYjgxNjI5MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVuIDE0IDE4OjE0OjU2IDIwMDYgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAKCmNvbW1pdCAxNmM4ZDVlNzZhZTBmNzhmMzlhNjA2MDg1NzRhZGZlMGZlYjljYzcwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMTQgMTc6NDU6NTMgMjAwNiArMDIwMAoKICAgIFZhcmlvdXMgVVNCIHJlbGF0ZWQgcGF0Y2hlcwogICAgLSBBZGQgc3VwcG9ydCBmb3IgbXBjOHh4IFVTQiBkZXZpY2UuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBDb21tb24gRGV2aWNlIENsYXNzIC0gQWJzdHJhY3QgQ29udHJvbCBNb2RlbCBVU0IgY29uc29sZS4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIGZsb3cgY29udHJvbCBpbiBVU0Igc2xhdmUgZGV2aWNlcy4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIGdzZXJpYWwgYW5kIGNkY19hY20gdXNpbmcgZW52aXJvbm1lbnQuCiAgICAtIE1pbm9yIGNoYW5nZXMgdG8gdXNiZGNvcmVfb21hcDE1MTAuYyB1c2JkY29yZV9vbWFwMTUxMC5oCiAgICAtIFVwZGF0ZSB1c2Jjb3JlIHNsaWdodGx5IHRvIGVhc2UgaG9zdCBlbnVtZXJhdGlvbi4KICAgIC0gRml4IG5vbi1wb3J0YWJsZSBlbmRpYW4gcHJvYmxlbXMgaW4gdXNiZGNvcmUgYW5kIHVzYmRjb3JlX2VwMC4KICAgIC0gQWRkIEFkZGVyVVNCX2NvbmZpZyBhcyBhIGRlZmNvbmZpZyB0byBlbmFibGUgdXNhZ2Ugb2YgdGhlIFVTQiBjb25zb2xlCiAgICAgIGJ5IGRlZmF1bHQgd2l0aCB0aGUgQWRkZXI4N3ggVS1Cb290IHBvcnQuCiAgICBQYXRjaGVzIGJ5IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4sIDI5IE1heSAyMDA2Cgpjb21taXQgOGVjYzk3MTYxOGY1NjAyOWFkOTlkMzUxNmY4YjI5N2E2ZWQ1ODk3MQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gNyAxMDo1Mzo1NSAyMDA2IC0wNTAwCgogICAgRml4IGEgZ2V0X2JvYXJkX3N5c19jbGsoKSB1c2UtYmVmb3JlLWRlZiB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgZDliZjQ4NThmY2E1YWE0ZDY1MWIyODMyNzBmNzdkYTcyZWJhZGZkNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gNyAxMDo1Mjo0OSAyMDA2IC0wNTAwCgogICAgQWxsb3cgRFRDIHBhdGggdG8gYmUgcGFzc2VkIGluLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgYzgzYWU5ZWE2ZDkzYWJiZTc1MWJmOGEzMzk2MjM2YTA4NGU1NmY4NwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNiAxNjo1NDoyOSAyMDA2IC0wNDAwCgogICAgTW9kaWZ5IHRoZSBJUlEgb2YgRFVBUlQyCgpjb21taXQgYzkzNGY2NTVmOWFlY2E3MGE1YzVmODhiNDY1ZDllOWQ1N2E4ZDIyZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTM6NTU6MzUgMjAwNiAtMDUwMAoKICAgIFJldmlldyBjbGVhbnVwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiNTk2NWZiOTViNzdhNDlmNGU2YWY5NTI0OGUwYzg0OWY0YWYwM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEyOjQ0OjQ0IDIwMDYgLTA1MDAKCiAgICBXaGl0ZSBzcGFjZSBjbGVhbnVwLgogICAgU29tZSA4MC1jb2x1bW4gY2xlYW51cHMuCiAgICBDb252ZXJ0IHByaW50ZigpIHRvIHB1dHMoKSB3aGVyZSBwb3NzaWJsZS4KICAgIFVzZSAjaW5jbHVkZSAic3BkX3NkcmFtLmgiIGFzIG5lZWRlZC4KICAgIEVuaGFuY2VkIHJlc2V0IGNvbW1hbmQgdXNhZ2UgbWVzc2FnZSBhIGJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkNWM1YmU1NDc0NDVkZDNiZDJlYjczNjhkODBkZjAzZWE0Mzc5NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDExOjM5OjM0IDIwMDYgLTA1MDAKCiAgICBSZW1vdmVkIHVubmVlZGVkIGxvY2FsX2J1c19pbml0KCkgZnJvbSA4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkM2Q3MjljMTZjMzkyZDI5ODJkMzI2NmI2NTlkMzMzYzkyNzY5N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDExOjI0OjI4IDIwMDYgLTA1MDAKCiAgICBNb3ZlZCBtcGM4NjQxaHBjbl9ib2FyZF9yZXNldCgpIG91dCBvZiBjcHUvIGludG8gYm9hcmQvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJhOTQxZGUwNjAzNTBhZDE1ODc4ZDgyMTk4MjVmNDk1MGU5YmI4ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTA6MDc6MjggMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBkZWFkIGRlYnVnIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAxMjZhYTcwZjEwYmEzZDIwZTBhNmY0ZDMyMzI4MjUwNTEzYjc3NzcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAxNzo0NzowMCAyMDA2IC0wNTAwCgogICAgTW92ZSBtcGM4Nnh4IFBJWElTIGNvZGUgdG8gYm9hcmQgZGlyZWN0b3J5CgogICAgRmlyc3QgY3V0IGF0IG1vdmluZyB0aGUgUElYSVMgcGxhdGZvcm0gY29kZSBvdXQgb2YKICAgIHRoZSA4Nnh4IGNwdSBkaXJlY3RvcnkgYW5kIGludG8gYm9hcmQvbXBjODY0MWhwY24KICAgIHdoZXJlIGl0IGJlbG9uZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGY4M2EyZmNlZjFhNjcwYzQ1ZmM1ODUxMTlkY2MxZmUwNjJjNGE5CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAzMCAxNjo1NjoxNCAyMDA2ICswMjAwCgogICAgU3VwcG9ydCBnZW5lcmljIE9IQ0kgc3VwcG9ydCBmb3IgdGhlIHMzYzI0eDAgY3B1LgoKY29tbWl0IDM4Y2VlMTJkY2ZjYzI1NzM3MWM5MDFjN2UxM2U1OGVjYWIwYTM1ZDgKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDA5OjEwOjMyIDIwMDYgLTA1MDAKCiAgICBJbXByb3ZlICJyZXNldCIgY29tbWFuZCdzIGludGVyYWN0aW9uIHdpdGggd2F0Y2hkb2cuCgoJInJlc2V0IGFsdGJhbmsiIHdpbGwgcmVzZXQgYW5vdGhlciBiYW5rIFdJVEhPVVQgd2F0Y2ggZG9nIHRpbWVyIGVuYWJsZWQKCSJyZXNldCBhbHRiYW5rIHdkIiB3aWxsIHJlc2V0IGFub3RoZXIgYmFuayBXSVRIIHdhdGNoIGRvZyBlbmFibGVkCgkiZGlzd2QiIHdpbGwgZGlzYWJsZSB3YXRjaCBkb2cgYWZ0ZXIgdS1ib290IGJvb3RzIHVwIHN1Y2Nlc3NmdWxseQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzAyMDVlNWE2ZGRjODUyOGIxMWRiOWViNGQzZmEwMjA5ZDlmY2UyYQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMDg6NTE6MTkgMjAwNiAtMDUwMAoKICAgIEZpeCB0d28gU0RSQU0gc2V0dXAgYnVncy4KCglGaXggRUNDIHNldHVwIGJ1Zy4KCUVuYWJsZSAxVC8yVCBiYXNlZCBvbiBudW1iZXIgb2YgRElNTXMgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxMWZlYzUwMTUzMzRkZWIyMDEwZTM2Y2UwMGJiMTE4Y2M1NDI5YTUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjI0OjQ4IDIwMDYgLTA1MDAKCiAgICBBZGQgZmlyc3QgZHJhZnQgb2YgdGhlIE1QQzg2NDFIUENOIGRvYy9SRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCBlZDQ1ZDZjOTMwYjU5Mzk3MThhODdlZTEyZTI1Y2Y5YTA1OTc4ZDRhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDoxMzowNCAyMDA2IC0wNTAwCgogICAgQWRkZWQgcGNpQDgwMDAgYmxvY2suCiAgICBVcGRhdGVkIGV0aGVybmV0IGludGVycnVwdCBtYXBwaW5ncyAobW92ZWQgdXAgNDgpLgogICAgQ2xlYW5lZCB1cCBhIGZldyBjb21tZW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IDMwMzNlYmIyMGZkN2MzNzJjN2JjYTNjOTk1NWE0NjkyYmIyMjQwYjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjAxOjE2IDIwMDYgLTA1MDAKCiAgICBBbGxvdyBhcmdzIG9uIHJlc2V0IGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAzMDFmMWFhMzg0ZDBlZGNhZTZhMjJmZDlhZGI5MzNhZDcxNjk1ZWNjCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMyAxMzozODozNSAyMDA2ICswMjAwCgogICAgQ2hhbmdlZCB0aGUgbXAydXNiIChhdDkxcm05MjAwKSBib2FyZCB0byB1c2UgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXIuIFNvbWUKICAgIGZpeGVzIHRvIHRoZSBsYXR0ZXIuCgpjb21taXQgMjRlMzc2NDVlNzM3OGIyMGZhOGYyMGUyOTk2YzhmYjhlOTBjNzBjOQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjMgMTA6MzM6MTEgMjAwNiArMDIwMAoKICAgIE1vcmUgY2xlYW51cCBmb3IgdGhlIGRlbHRhIGJvYXJkIGFuZCB0aGUgZ2VuZXJpYyB1c2Jfb2hjaSBkcml2ZXIuIEFkZGVkCiAgICBDRkdfVVNCX0JPQVJEX0lOSVQgYW5kIENGR19VU0JfQ1BVX0lOSVQgZm9yIGVuYWJsaW5nIGJvYXJkIGFuZCBjcHUgc3BlY2lmaWMKICAgIGluaXRpYWxpemF0aW9uIGFuZCBjbGVhbnVwIGhvb2tzIHJlc3BlY3RpdmVseS4KCmNvbW1pdCAzZTMyNmVjZTllYmE4MTg0ZjVkNDhhYTRmYjg3NzYwYThmNmYwZjEwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAyMiAxNjozMzo1NCAyMDA2ICswMjAwCgogICAgVGhpcyBwYXRjaCBhZGRzIFVTQiBzdG9yYWdlIHN1cHBvcnQgZm9yIHRoZSBkZWx0YSBib2FyZC4gVGhpcyBpcyB0aGUgZmlyc3QKICAgIGJvYXJkIHRvIG1ha2UgdXNlIG9mIGEgZ2VuZXJpYyBPSENJIGRyaXZlciwgdGhhdCBjYWxscyBob29rcyBmb3IgYm9hcmQKICAgIGRlcGVuZGFudCBpbml0aWFsaXphdGlvbi4KCmNvbW1pdCAxNGUzNzA4MWZmM2NhYzdlYmU2ZTkzODM2NTIzNDI5ODUzYjZiMjkyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyODozOSAyMDA2IC0wNTAwCgogICAgQ2hhbmdlIGFyYml0cmF0aW9uIHRvIHJvdW5kLXJvYmluIGZvciBTTVAgbGludXguCgpjb21taXQgOWE2NTU4NzZlNTk5NWJlODBmNDkwNTRlMjUwOTUwMGU4NzFlNGQzYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MjY6MzQgMjAwNiAtMDUwMAoKICAgIEVuYWJsZSBkdWFsIEREUiBjb250cm9sbGVycyBhbmQgaW50ZXJsZWF2aW5nLgoKY29tbWl0IDU4NmQxZDVhYmQzZTUyNWYxZTFkOWI4MWU1YTYxYTRkYTZiMmZhM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjIyOjQ0IDIwMDYgLTA1MDAKCiAgICBVcGRhdGUgODZ4eCBhZGRyZXNzIG1hcCBhbmQgTEFXQkFScy4KCmNvbW1pdCBjY2NjZTVkMDU4MWJiMGJhNDYwMjc5OWE0YjUxMTJlNThkMTU3OWNiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoxNDoxNSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIEwyIENhY2hlIGludmFsaWRhdGUgcG9sbGluZy4KCmNvbW1pdCBmMzVlYzY4ZmIwNjZjZWMwZTM2Mjk0YmZlMDdkZWMyZDRlOGFkM2E4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMjozMzowOSAyMDA2IC0wNTAwCgogICAgRW5hYmxlIDJuZCBDUFUgYW5kIEkyQy4KCmNvbW1pdCBiZjY5MGRjYjUxMmQzNGM0ZmNlZWMwZWIxZTVjMGU4OGE5ZGI1ZDU0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSAxNSAwNzoyNjo1NiAyMDA2IC0wNTAwCgogICAgVXBkYXRlIGludGVycnVwdCBtYXBwaW5nLgoKY29tbWl0IDZjZmVhMzM0NzdiMDRiNjNlZDQ3Mzg2ZWQxNjI5NTI5NDg0YzMzYmEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDEwIDA5OjM4OjA2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWVkZWQgSU5JVF9SQU1fTE9DSyBjYWNoZSB0d2lkZGxpbmcuCiAgICBDb3JyZWN0bHkgdHJhY2tzIHIyOSBhcyBnbG9iYWwgZGF0YSBwb2ludGVyIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ0ZGQzMTdiNThjMTI2YTJhN2U3M2Y0NzY0ZWNjMWE3Yzk3Zjg3NmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDEwIDA5OjMzOjA3IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZmxhc2guYyBmaWxlLgoKY29tbWl0IDE4YjZjOGNkOGFmNmNjN2YzNTE4MGNlZGM0YWRiMzIzNmNjMWExYjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDkgMDg6MjM6NDkgMjAwNiAtMDUwMAoKICAgIEdldCBNUEM4NjQxSFBDTiBmbGFzaCBpbWFnZXMgd29ya2luZy4KCglFbmFibGUgdGhlIENGSSBkcml2ZXIuCglSZW1vdmUgYm9ndXMgTEFXQkFSNyBjcnVmdC4KCVVzZSBjb3JyZWN0IFRFWFRfQkFTRSwgRml4dXAgbG9hZCBzY3JpcHQuCglFbmFibGUgU1BEIEVFUFJPTSBkdXJpbmcgRERSIHNldHVwLgoJVXNlIGdlbmVyaWMgUkZDIDE5MTggSVAgYWRkcmVzc2VzIGJ5IGRlZmF1bHQuCgpjb21taXQgNWM5ZWZiMzZhNmI1NDMxNDIzZjUyODg4YTBlM2I0YjUxNWZlN2VjYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMjcgMTA6MTU6MTYgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgd2hpdGVzcGFjZXMgYW5kIHN0eWxlIGlzc3Vlcy4KICAgIFJlbW92ZWQgLy8tc3R5bGUgY29tbWVudHMuCiAgICBVc2UgODAtY29sdW1uIGxpbmVzLgogICAgUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICBSZW1vdmUgZGVhZCBjb2RlIGFuZCBkZWJ1ZyBjcnVmdC4KCmNvbW1pdCBhMjMyMGE2YmY4MTEzYTA5NTQ0YzQyZDE2MGQxMGFjNjlkMDQ5YTAzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAyNyAwODoyMjozOSAyMDA2IC0wNTAwCgogICAgUmV2ZXJ0IGJhZCBQQ0kgcHJlZmV0Y2ggbGltaXQgY2hhbmdlLgoKY29tbWl0IGRlYmI3MzU0ZDFlYTRmNjk0MTU0ODE4ZGY1ZTViNTIzZjVjMWNjMWQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDI2IDE3OjU4OjU2IDIwMDYgLTA1MDAKCiAgICBJbml0aWFsIHN1cHBvcnQgZm9yIE1QQzg2NDEgSFBDTiBib2FyZC4K